"userName": "MAM",\r
"password": "7RKZYBzumKjL40SJwuwiFCvX57xuCN8zay6OttUm2wbrgImyYZBHyZTUUYrXX31Ge2Uwew07HYsqh2uzdJeDBDwcVntxaHg3nIpv9Dyq/odVoiC4tUF/K+lgvKWANcrZ",\r
"timeout": 1000\r
+ },\r
+ "local": {\r
+ "address": "file://10.10.1.100/OCTOPUS",\r
+ "userName": "mediacube",\r
+ "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+ "timeout": 1000\r
}\r
},\r
{\r
{\r
"title": "Lebony betöltő",\r
- "active": true,\r
+ "active": false,\r
"startInTray": false,\r
"enableCustomMetadataId": true,\r
"player": {\r
{\r
"title": "Stúdió",\r
- "active": true,\r
+ "active": false,\r
"startInTray": false,\r
"enableCustomMetadataId": true,\r
"filter": "avi",\r
this.treeFolders.Visible = false;\r
this.treeFolders.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.OnBeforeExpandFolder);\r
this.treeFolders.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.OnAfterSelectFolder);\r
+ this.treeFolders.MouseDown += new System.Windows.Forms.MouseEventHandler(this.OnFolderMouseDown);\r
// \r
// ilFolders\r
// \r
this.ilFolders.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilFolders.ImageStream")));\r
this.ilFolders.TransparentColor = System.Drawing.Color.Transparent;\r
- this.ilFolders.Images.SetKeyName(0, "ic_folder_open_black_24dp_1x.png");\r
+ this.ilFolders.Images.SetKeyName(0, "ic_folder_open_black_24dp_1x.jpg");\r
// \r
// pSourceFilter\r
// \r
MetadataProvider config = null;\r
MetadataType metadataType = GuessMetadataType(id);\r
switch (metadataType) {\r
- case MetadataType.TrafficAD:\r
case MetadataType.TrafficMaterial:\r
+ config = Configuration.GetMetadataProvider<TrafficMetadata>();\r
+ if (config == null)\r
+ return;\r
+ trafficIDSelector.LookupByMaterialID(id);\r
+ break;\r
case MetadataType.TrafficPromo:\r
config = Configuration.GetMetadataProvider<TrafficMetadata>();\r
if (config == null)\r
return;\r
+ trafficIDSelector.LookupByPromoID(id);\r
+ break;\r
+ case MetadataType.TrafficAD:\r
+ config = Configuration.GetMetadataProvider<TrafficMetadata>();\r
+ if (config == null)\r
+ return;\r
+ trafficIDSelector.LookupByADID(id);\r
break;\r
case MetadataType.OctopusPlaceHolder:\r
config = Configuration.GetMetadataProvider<OctopusMetadata>();\r
private List<ITargetProcessor> CreateProcessors(Target target, CheckBox checkBox) {\r
List<ITargetProcessor> result = null;\r
foreach (ISourceItem sourceItem in selectedSourceItems) {\r
- //ISourceItem sourceItem = actualRow.DataBoundItem as ISourceItem;\r
if (sourceItem == null)\r
continue;\r
if (!EnsureSegments(target)) {\r
result = new List<ITargetProcessor>();\r
result.Add(processor);\r
\r
- //var beforeProcessors = new Dictionary<CheckBox, List<ITargetProcessor>>(currentProcessors);\r
HandleCheckBoxReferences(target.Reference, true);\r
- //var diff = beforeProcessors.Except(currentProcessors).Concat(currentProcessors.Except(beforeProcessors));\r
}\r
return result;\r
}\r
}\r
}\r
\r
+ private void OnFolderMouseDown(object sender, MouseEventArgs e) {\r
+ if (e.Button == MouseButtons.Right)\r
+ treeFolders.SelectedNode = treeFolders.GetNodeAt(e.X, e.Y);\r
+ }\r
}\r
}\r
<value>\r
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w\r
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0\r
- ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACc\r
- BwAAAk1TRnQBSQFMAwEBAAFAAQABQAEAARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA\r
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACU\r
+ BwAAAk1TRnQBSQFMAwEBAAFYAQABWAEAARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA\r
AUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA\r
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA\r
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm\r
AQAB/wGZAf8BAAH/AcwCAAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEA\r
AcwB/wFmAQAC/wGZAQAC/wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEA\r
ASEBAAGlAQADXwEAA3cBAAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7\r
- Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/+CAAH/AQcK7wEHAfQyAAEH\r
- DAABETIAAe8LAAHvMwAB7wsAAe8zAAHvCwAB7zMAAe8LAAHvMwAB7wsAAe8zAAHvCwAB7zMAAe8BAArv\r
- AW0BDjIAAe8LAAEOAfEyAAHxAQ4EAAHv+AABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGA\r
- FwAD/wEAAv8GAAL/BgABgAEBBgABgAEBBgABnwH5BgABnwH5BgABnwH5BgABnwH5BgABnwH5BgABnwH5\r
- BgABgAEBBgABgAEBBgABgAH/BgAC/wYAAv8GAAL/BgAL\r
+ Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/8BABD/MAAQ/zAAAf8B8wzv\r
+ AfMB/zAAAf8B7AwAAewB/zAAAf8B6gEPChIBDwHqAf8wAAH/AhIK/wISAf8wAAH/AhIK/wISAf8wAAH/\r
+ AhIK/wISAf8wAAH/AhIK/wISAf8wAAH/AhIK/wISAf8wAAH/AhIK/wISAf8wAAH/ARIBDwoSAQ8B6gH/\r
+ MAAB/wHqBQABDwUSAeoB8QH/MAAB/wH3AQ4DAAEPAe8I/zAAEP8wABD/MAABQgFNAT4HAAE+AwABKAMA\r
+ AUADAAEQAwABAQEAAQEFAAGAFwAD/4EACw==\r
</value>\r
</data>\r
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />\r
public class OctopusMetadata : MetadataProvider {\r
public bool DisablePlaceHolderCheck { get; set; }\r
public bool DisableStoryCheck { get; set; }\r
+ public Connection Local { get; set; }\r
}\r
\r
public class TrafficMetadata : MetadataProvider {\r
this.treeOctopus.Size = new System.Drawing.Size(300, 322);\r
this.treeOctopus.TabIndex = 5;\r
this.treeOctopus.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeContent_KeyDown);\r
+ this.treeOctopus.MouseDown += new System.Windows.Forms.MouseEventHandler(this.treeOctopus_MouseDown);\r
// \r
// pSearch\r
// \r
if (lookupPlaceHolderId != null && lookupPlaceHolderId.Equals(mosObject.ObjID)) {\r
placeHolderNode.Checked = true;\r
storyNode.Expand();\r
+ placeHolderNode.EnsureVisible();\r
}\r
}\r
}\r
SendMessage(tvw.Handle, TVM_SETITEM, IntPtr.Zero, ref tvi);\r
}\r
\r
- public bool LookupByStory(string storyId) {\r
+ public void LookupByStory(string storyId) {\r
if (String.IsNullOrEmpty(storyId))\r
- return false;\r
+ return;\r
var rundown = client.GetRundownsByStoryID(storyId)?.FirstOrDefault();\r
if (rundown == null) {\r
var storyFolder = client.GetStoryFoldersByStoryID(storyId)?.FirstOrDefault();\r
lookupStoryId = null;\r
if (selectedNode == null)\r
MessageBox.Show("Nincs találat.");\r
- return selectedNode != null;\r
}\r
\r
- public bool LookupByPlaceHolder(string placeHolderId) {\r
+ public void LookupByPlaceHolder(string placeHolderId) {\r
if (String.IsNullOrEmpty(placeHolderId))\r
- return false;\r
+ return;\r
var rundown = client.GetRundownsByPlaceHolderId(placeHolderId)?.FirstOrDefault();\r
if (rundown == null) {\r
var storyFolder = client.GetStoryFoldersByPlaceHolderId(placeHolderId)?.FirstOrDefault();\r
lookupPlaceHolderId = null;\r
if (selectedNode == null)\r
MessageBox.Show("Nincs találat.");\r
- return selectedNode != null;\r
}\r
\r
private void OnTypeCheckChanged(object sender, EventArgs e) {\r
else\r
LookupByStory(txtFilter.Text);\r
}\r
+\r
+ private void treeOctopus_MouseDown(object sender, MouseEventArgs e) {\r
+ if (e.Button == MouseButtons.Right)\r
+ treeOctopus.SelectedNode = treeOctopus.GetNodeAt(e.X, e.Y);\r
+ }\r
}\r
\r
public class OctopusAPIMessage : IMessage {\r
private void tableLayoutPanelSearch_Paint(object sender, PaintEventArgs e) {\r
ControlPaint.DrawBorder(e.Graphics, e.ClipRectangle, Color.LightGray, ButtonBorderStyle.Solid); // dotted border\r
}\r
+\r
+ public bool LookupByMaterialID(string id) {\r
+ //TrafficItem result = trafficAPI.GetMaterials(id, false);\r
+ return false;\r
+ }\r
+\r
+ public bool LookupByPromoID(string id) {\r
+ return false;\r
+ }\r
+\r
+ public bool LookupByADID(string id) {\r
+ return false;\r
+ }\r
}\r
\r
public class TrafficItem {\r
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>\r
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>\r
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory -Dorg.eclipse.equinox.http.jetty.http.port=8080 -Dorg.eclipse.epp.logging.aeri.skipReports=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djobengine.jobsteps.root="${workspace_loc}/user.jobengine.executors/config" -Djobengine.jobtemplates.root="${workspace_loc}/user.jobengine.executors/jobtemplates" -Djobengine.db.url=jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.db.user=db2admin -Djobengine.db.password=password -Djobengine.loglevel=INFO -Dlog4j.configurationFile="${workspace_loc}/-configuration/log4j2.xml" -Djobengine.jobsteps.alternate.root="${workspace_loc}/user.jobengine.executors/bin/user/jobengine/server/steps" -Djetty.home="${workspace_loc:}/-configuration/jetty" -Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml -Djobengine.octopus.api.address=http://10.10.1.11/api/v1 -Djobengine.octopus.api.user=mam -Djobengine.octopus.api.password=napocska -Djobengine.nosql.db.url=jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.nosql.db.user=db2admin -Djobengine.nosql.db.password=password -Djobengine.nosql.db.schema=test -Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl -Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC_v4.zenium -Djobengine.jobscheduling.config="${workspace_loc}/-configuration/scheduledjobs.json" -Dnexio.host=10.10.1.55"/>\r
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory -Dorg.eclipse.equinox.http.jetty.http.port=8080 -Dorg.eclipse.epp.logging.aeri.skipReports=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djobengine.jobsteps.root="${workspace_loc}/user.jobengine.executors/config" -Djobengine.jobtemplates.root="${workspace_loc}/user.jobengine.executors/jobtemplates" -Djobengine.db.url=jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.db.user=db2admin -Djobengine.db.password=password -Djobengine.loglevel=INFO -Dlog4j.configurationFile="${workspace_loc}/-configuration/log4j2.xml" -Djobengine.jobsteps.alternate.root="${workspace_loc}/user.jobengine.executors/bin/user/jobengine/server/steps" -Djetty.home="${workspace_loc:}/-configuration/jetty" -Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml -Djobengine.octopus.api.address=http://10.10.1.11/api/v1 -Djobengine.octopus.api.user=mam -Djobengine.octopus.api.password=napocska -Djobengine.nosql.db.url=jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.nosql.db.user=db2admin -Djobengine.nosql.db.password=password -Djobengine.nosql.db.schema=test -Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl -Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC_v4.zenium -Djobengine.jobscheduling.config="${workspace_loc}/-configuration/scheduledjobs.json" -Dnexio.host=10.10.1.555"/>\r
<stringAttribute key="pde.version" value="3.3"/>\r
<booleanAttribute key="show_selected_only" value="false"/>\r
<stringAttribute key="target_bundles" value="cglib@default:default,com.auth0.java-jwt@default:default,com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-joda@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.fasterxml.jackson.module.jackson-module-jaxb-annotations@default:default,com.google.guava@default:default,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,com.sun.el.javax.el@default:default,commons-logging@default:default,javassist@default:default,javax.annotation-api@default:default,javax.inject@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.servlet.jsp-api@default:default,javax.validation.api@default:default,javax.ws.rs-api@default:default,jcifs@default:default,joda-time@default:default,org.apache.aries.spifly.dynamic.bundle@default:default,org.apache.aries.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang3@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.jasper.glassfish@default:default,org.apache.logging.log4j.api@1:true,org.apache.logging.log4j.core@default:default,org.apache.logging.log4j.slf4j-impl@default:default,org.apache.servicemix.bundles.quartz@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.util@default:default,org.eclipse.jdt.core.compiler.batch@default:default,org.eclipse.jetty.client@default:default,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.jsp@default:default,org.eclipse.jetty.osgi.boot.jsp@default:false,org.eclipse.jetty.osgi.boot@default:true,org.eclipse.jetty.schemas@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jetty.webapp@default:default,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.websocket.server@default:default,org.eclipse.jetty.websocket.servlet@default:default,org.eclipse.jetty.xml@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jboss.resteasy.client@default:default,org.jboss.resteasy.jaxrs@default:default,org.jmock.junit4@default:default,org.jmock@default:default,org.junit@default:default,org.jvnet.mimepull@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,org.reflections@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
]\r
}, \r
{\r
- "active": true,\r
+ "active": false,\r
"name" : "OCTOPUS adatok szinkronizálása",\r
"template": "sync-octopus.xml",\r
"executeimmediate": true,\r
Pass = System.getProperty("jobengine.nosql.db.password");\r
}\r
\r
- public static DB getNoSQLDB(String url, String user, String pass) {\r
- return NoSQLClient.getDB(Url, User, Pass);\r
+ public static BasicDBList asDBList(BasicDBObject obj, String name) {\r
+ BasicDBList result = null;\r
+ if (obj.containsKey(name) && (obj.get(name) instanceof BasicDBList))\r
+ result = (BasicDBList) obj.get(name);\r
+ return result;\r
}\r
\r
- public static DB getDB() {\r
- DB result = null;\r
- try {\r
- result = NoSQLClient.getDB(NoSQLUtils.Url, NoSQLUtils.User, NoSQLUtils.Pass);\r
- } catch (Exception e) {\r
- logger.error(e);\r
- }\r
+ public static BasicDBObject asDBObject(BasicDBObject obj, String name) {\r
+ BasicDBObject result = null;\r
+ if (obj.containsKey(name) && (obj.get(name) instanceof BasicDBObject))\r
+ result = (BasicDBObject) obj.get(name);\r
return result;\r
}\r
\r
return result;\r
}\r
\r
+ public static List<BasicDBObject> asList(BasicDBObject obj, String name) {\r
+ List<BasicDBObject> result = null;\r
+ if (obj != null) {\r
+ BasicDBList dbList = asDBList(obj, name);\r
+ if (dbList != null)\r
+ result = Arrays.asList(dbList.toArray(new BasicDBObject[obj.size()]));\r
+ }\r
+ return result;\r
+ }\r
+\r
+ public static DB getDB() {\r
+ DB result = null;\r
+ try {\r
+ result = NoSQLClient.getDB(NoSQLUtils.Url, NoSQLUtils.User, NoSQLUtils.Pass);\r
+ } catch (Exception e) {\r
+ logger.error(e);\r
+ }\r
+ return result;\r
+ }\r
+\r
+ public static DB getNoSQLDB(String url, String user, String pass) {\r
+ return NoSQLClient.getDB(Url, User, Pass);\r
+ }\r
+\r
}\r
import java.util.Date;\r
import java.util.List;\r
\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-\r
import com.ibm.nosql.json.api.BasicDBList;\r
import com.ibm.nosql.json.api.BasicDBObject;\r
import com.ibm.nosql.json.api.DB;\r
import user.commons.nosql.NoSQLUtils;\r
\r
public class OctopusAPI implements IOctopusAPI {\r
- private static final Logger logger = LogManager.getLogger();\r
+ private static final String _ID = "_id";\r
+ private static final String OBJID = "objId";\r
+ private static final String $DATE = "$date";\r
+ private static final String SCHEDULEDSTART = "scheduledStart";\r
+ private static final String STORYID = "storyId";\r
+ private static final String $ELEMMATCH = "$elemMatch";\r
+ //private static final Logger logger = LogManager.getLogger();\r
+ private static final String SLUGS = "slugs";\r
private static final String ID = "id";\r
private static final String STORY_FOLDER = "story_folder";\r
- private static final String MOS_OBJECTS = "mosObjects";\r
+ private static final String MOSOBJECTS = "mosObjects";\r
private static final String RUNDOWN = "rundown";\r
public static final String RUNDOWN_COLLECTION_NAME = "rundowns";\r
public static final String STORY_COLLECTION_NAME = "stories";\r
List<DBObject> mosObjectsResult = new ArrayList<>();\r
DBCollection collection = db.getCollection(STORY_COLLECTION_NAME);\r
DBCursor find = collection\r
- .find(new BasicDBObject(MOS_OBJECTS, new BasicDBObject("$elemMatch", new BasicDBObject(ID, id))),\r
+ .find(new BasicDBObject(MOSOBJECTS, new BasicDBObject($ELEMMATCH, new BasicDBObject(ID, id))),\r
new BasicDBObject(ID, 1).append("name", 1).append("modified", 1).append(STORY_FOLDER, 1).append("type", 1).append("mosObjects", 1))\r
.sort(new BasicDBObject("name", 1));\r
if (find.hasNext())\r
return mosObjectsResult;\r
}\r
\r
- private List<DBObject> getParentsByReferences(DBCursor find, DBCollection collection, List<DBObject> referenceObjects, String referenceName) {\r
+ private List<DBObject> getParentsByReferences(List<DBObject> references, DBCollection collection, String referenceName) {\r
List<DBObject> result = null;\r
+ List<Long> rundownIDs = getIDsFromReferences(references, referenceName);\r
+ BasicDBObject query = (BasicDBObject) QueryBuilder.start().put(ID).in(rundownIDs).get();\r
+ DBCursor find = collection.find(query);\r
if (find.hasNext())\r
- referenceObjects = find.toArray();\r
- if (referenceObjects != null) {\r
- List<Long> rundownIDs = getIDsFromReferences(referenceObjects, referenceName);\r
- BasicDBObject query = (BasicDBObject) QueryBuilder.start().put("id").in(rundownIDs).get();\r
- find = collection.find(query);\r
- if (find.hasNext())\r
- result = find.toArray();\r
+ result = find.toArray();\r
+ return result;\r
+ }\r
+\r
+ private List<DBObject> getReferencedObjects(List<DBObject> stories, String referenceCollectionName, String referenceField) {\r
+ List<Long> ids = null;\r
+ for (DBObject story : stories) {\r
+ List<BasicDBObject> references = NoSQLUtils.asList((BasicDBObject) story, referenceField);\r
+ if (references == null)\r
+ continue;\r
+ for (BasicDBObject reference : references) {\r
+ if (reference == null || !reference.containsKey(ID))\r
+ continue;\r
+ long id = reference.getLong(ID);\r
+ if (ids == null)\r
+ ids = new ArrayList<>();\r
+ ids.add(id);\r
+ }\r
}\r
+\r
+ List<DBObject> result = null;\r
+ DBCollection rundownCollection = db.getCollection(referenceCollectionName);\r
+ BasicDBObject query = (BasicDBObject) QueryBuilder.start().put(ID).in(ids).get();\r
+ DBCursor findParents = rundownCollection.find(query);\r
+ if (findParents.hasNext())\r
+ result = findParents.toArray();\r
return result;\r
}\r
\r
@Override\r
public List<DBObject> getRundownByStoryID(long storyID) {\r
List<DBObject> result = null;\r
- List<DBObject> queryedRundownsFromStoryCollection = null;\r
- DBCollection storyCollection = db.getCollection(STORY_COLLECTION_NAME);\r
DBCollection rundownCollection = db.getCollection(RUNDOWN_COLLECTION_NAME);\r
- DBCursor find = storyCollection.find(new BasicDBObject("id", storyID), new BasicDBObject(RUNDOWN, 1).append("_id", 0));\r
- result = getParentsByReferences(find, rundownCollection, queryedRundownsFromStoryCollection, RUNDOWN);\r
+ DBCursor find = rundownCollection.find(new BasicDBObject(SLUGS, new BasicDBObject($ELEMMATCH, new BasicDBObject(STORYID, storyID))));\r
+ if (find.hasNext())\r
+ result = find.toArray();\r
return result;\r
}\r
\r
if (scheduledDate == null) {\r
query = builder.get();\r
} else {\r
- query = builder.and(QueryBuilder.start("scheduledStart").greaterThanEquals(calStart.getTime()).get(),\r
- QueryBuilder.start("scheduledStart").lessThan(calStop.getTime()).get()).get();\r
+ query = builder.and(QueryBuilder.start(SCHEDULEDSTART).greaterThanEquals(calStart.getTime()).get(),\r
+ QueryBuilder.start(SCHEDULEDSTART).lessThan(calStop.getTime()).get()).get();\r
}\r
\r
//logger.info(query);\r
- DBCursor find = collection.find(query).sort(new BasicDBObject("scheduledStart", new BasicDBList(1, "$date")));\r
+ DBCursor find = collection.find(query).sort(new BasicDBObject(SCHEDULEDSTART, new BasicDBList(1, $DATE)));\r
if (find.hasNext())\r
result = find.toArray();\r
return result;\r
\r
@Override\r
public List<DBObject> getRundownsByPlaceHolderId(String placeHolderID) {\r
- List<DBObject> result = null;\r
DBCollection storyCollection = db.getCollection(STORY_COLLECTION_NAME);\r
- DBCollection rundownCollection = db.getCollection(RUNDOWN_COLLECTION_NAME);\r
- List<DBObject> queryedRundownsFromStoryCollection = null;\r
- BasicDBObject id = new BasicDBObject("objId", placeHolderID);\r
- BasicDBObject elemmatch = new BasicDBObject("$elemMatch", id);\r
- BasicDBObject mosObjects = new BasicDBObject(MOS_OBJECTS, elemmatch);\r
//db.testStoryCollection.find({"mosObjects": {$elemMatch: {"globalId": "OCTOPUS-ECHOTV-2429902"}}})\r
- DBCursor find = storyCollection.find(mosObjects);\r
- result = getParentsByReferences(find, rundownCollection, queryedRundownsFromStoryCollection, RUNDOWN);\r
- return result;\r
+ BasicDBObject criteria = new BasicDBObject(MOSOBJECTS, new BasicDBObject($ELEMMATCH, new BasicDBObject(OBJID, placeHolderID)));\r
+ BasicDBObject filter = new BasicDBObject(RUNDOWN, 1).append(_ID, 0);\r
+ DBCursor find = storyCollection.find(criteria, filter);\r
+ if (!find.hasNext())\r
+ return null;\r
+ return getReferencedObjects(find.toArray(), RUNDOWN_COLLECTION_NAME, RUNDOWN);\r
}\r
\r
@Override\r
\r
// { rundown: { $elemMatch: { id: 44622396 } }}\r
DBCursor find = collection\r
- .find(new BasicDBObject(RUNDOWN, new BasicDBObject("$elemMatch", new BasicDBObject(ID, rundownID))), new BasicDBObject(ID, 1)\r
+ .find(new BasicDBObject(RUNDOWN, new BasicDBObject($ELEMMATCH, new BasicDBObject(ID, rundownID))), new BasicDBObject(ID, 1)\r
.append("parentStoryId", 1).append("name", 1).append("modified", 1).append(RUNDOWN, 1).append("format", 1).append("mosObjects", 1))\r
.sort(new BasicDBObject("name", 1));\r
if (find.hasNext())\r
public List<DBObject> getStoriesByPlaceHolderId(String placeHolderID) {\r
List<DBObject> result = new ArrayList<>();\r
DBCollection storyCollection = db.getCollection(STORY_COLLECTION_NAME);\r
- BasicDBObject globalId = new BasicDBObject("objId", placeHolderID);\r
- BasicDBObject elemmatch = new BasicDBObject("$elemMatch", globalId);\r
- BasicDBObject mosObjects = new BasicDBObject(MOS_OBJECTS, elemmatch);\r
+ BasicDBObject globalId = new BasicDBObject(OBJID, placeHolderID);\r
+ BasicDBObject elemmatch = new BasicDBObject($ELEMMATCH, globalId);\r
+ BasicDBObject mosObjects = new BasicDBObject(MOSOBJECTS, elemmatch);\r
DBCursor find = storyCollection.find(mosObjects);\r
if (find.hasNext())\r
result.add(find.next());\r
List<DBObject> result = null;\r
DBCollection collection = db.getCollection(STORY_COLLECTION_NAME);\r
DBCursor find = collection\r
- .find(new BasicDBObject(STORY_FOLDER, new BasicDBObject("$elemMatch", new BasicDBObject(ID, storyFolderId))), new BasicDBObject(ID, 1)\r
+ .find(new BasicDBObject(STORY_FOLDER, new BasicDBObject($ELEMMATCH, new BasicDBObject(ID, storyFolderId))), new BasicDBObject(ID, 1)\r
.append("parentStoryId", 1).append("name", 1).append("modified", 1).append(STORY_FOLDER, 1).append("format", 1).append("mosObjects", 1))\r
.sort(new BasicDBObject("name", 1));\r
if (find.hasNext())\r
\r
@Override\r
public List<DBObject> getStoryFolders(long storyID) {\r
- List<DBObject> result = null;\r
- List<DBObject> queryedStory_FoldersFromStoryCollection = null;\r
DBCollection storyCollection = db.getCollection(STORY_COLLECTION_NAME);\r
- DBCollection storyFolderCollection = db.getCollection(STORY_FOLDER_COLLECTION_NAME);\r
- DBCursor find = storyCollection.find(new BasicDBObject("id", storyID), new BasicDBObject(STORY_FOLDER, 1).append("_id", 0));\r
- result = getParentsByReferences(find, storyFolderCollection, queryedStory_FoldersFromStoryCollection, STORY_FOLDER);\r
- return result;\r
+ BasicDBObject criteria = new BasicDBObject(ID, storyID);\r
+ BasicDBObject filter = new BasicDBObject(STORY_FOLDER, 1).append(_ID, 0);\r
+ DBCursor find = storyCollection.find(criteria, filter);\r
+ if (!find.hasNext())\r
+ return null;\r
+ return getReferencedObjects(find.toArray(), STORY_FOLDER_COLLECTION_NAME, STORY_FOLDER);\r
}\r
\r
@Override\r
public List<DBObject> getStoryFoldersByPlaceHolderId(String placeHolderID) {\r
- List<DBObject> result = null;\r
DBCollection storyCollection = db.getCollection(STORY_COLLECTION_NAME);\r
- DBCollection rundownCollection = db.getCollection(STORY_FOLDER_COLLECTION_NAME);\r
- List<DBObject> queryedRundownsFromStoryCollection = null;\r
- BasicDBObject globalId = new BasicDBObject("objId", placeHolderID);\r
- BasicDBObject elemmatch = new BasicDBObject("$elemMatch", globalId);\r
- BasicDBObject mosObjects = new BasicDBObject("mosObjects", elemmatch);\r
- DBCursor find = storyCollection.find(mosObjects, new BasicDBObject(STORY_FOLDER, 1).append("_id", 0));\r
- result = getParentsByReferences(find, rundownCollection, queryedRundownsFromStoryCollection, STORY_FOLDER);\r
- return result;\r
+ BasicDBObject criteria = new BasicDBObject(MOSOBJECTS, new BasicDBObject($ELEMMATCH, new BasicDBObject(OBJID, placeHolderID)));\r
+ BasicDBObject filter = new BasicDBObject(STORY_FOLDER, 1).append(_ID, 0);\r
+ DBCursor find = storyCollection.find(criteria, filter);\r
+ if (!find.hasNext())\r
+ return null;\r
+ return getReferencedObjects(find.toArray(), STORY_FOLDER_COLLECTION_NAME, STORY_FOLDER);\r
}\r
}\r
progressListenerList.add(IProgressEventListener.class, listener);\r
}\r
\r
- private BasicDBList asDBList(BasicDBObject obj, String name) {\r
- BasicDBList result = null;\r
- if (obj.containsKey(name) && (obj.get(name) instanceof BasicDBList))\r
- result = (BasicDBList) obj.get(name);\r
- return result;\r
- }\r
-\r
- private BasicDBObject asDBObject(BasicDBObject obj, String name) {\r
- BasicDBObject result = null;\r
- if (obj.containsKey(name) && (obj.get(name) instanceof BasicDBObject))\r
- result = (BasicDBObject) obj.get(name);\r
- return result;\r
- }\r
-\r
private Map<Long, BasicDBList> buildRundownReferences(BasicDBList rundowns) {\r
Map<Long, BasicDBList> result = new HashMap<>();\r
List<BasicDBObject> rundownsList = NoSQLUtils.asList(rundowns);\r
for (BasicDBObject rundown : rundownsList) {\r
long rundownId = rundown.getLong(ID);\r
- List<BasicDBObject> slugs = NoSQLUtils.asList(asDBList(rundown, SLUGS));\r
+ List<BasicDBObject> slugs = NoSQLUtils.asList(rundown, SLUGS);\r
+ if (slugs == null)\r
+ continue;\r
for (BasicDBObject slug : slugs) {\r
if (!slug.containsKey(STORYID))\r
continue;\r
while (cursor.hasNext()) {\r
BasicDBObject story = (BasicDBObject) cursor.next();\r
long storyId = story.getLong(ID);\r
- BasicDBList rundownRef = asDBList(story, REF_RUNDOWN);\r
+ BasicDBList rundownRef = NoSQLUtils.asDBList(story, REF_RUNDOWN);\r
if (rundownRef != null) {\r
if (storedStoryRundowns == null)\r
storedStoryRundowns = new HashMap<>();\r
storedStoryRundowns.put(storyId, rundownRef);\r
}\r
- BasicDBList storyFolderRef = asDBList(story, REF_STORYFOLDER);\r
+ BasicDBList storyFolderRef = NoSQLUtils.asDBList(story, REF_STORYFOLDER);\r
if (storyFolderRef != null) {\r
if (storedStoryStoryFolders == null)\r
storedStoryStoryFolders = new HashMap<>();\r
storedStoryStoryFolders.put(storyId, storyFolderRef);\r
}\r
\r
- BasicDBList storyMosObjects = asDBList(story, MOS_OBJECTS);\r
+ BasicDBList storyMosObjects = NoSQLUtils.asDBList(story, MOS_OBJECTS);\r
if (storyMosObjects != null) {\r
if (storedStoryMosObjects == null)\r
storedStoryMosObjects = new HashMap<>();\r
List<BasicDBObject> storyFolderList = NoSQLUtils.asList(storyFolders);\r
for (BasicDBObject storyFolder : storyFolderList) {\r
long storyFolderId = storyFolder.getLong(ID);\r
- List<BasicDBObject> stories = NoSQLUtils.asList(asDBList(storyFolder, STORIES));\r
+ List<BasicDBObject> stories = NoSQLUtils.asList(storyFolder, STORIES);\r
+ if (stories == null)\r
+ continue;\r
long position = 1;\r
for (BasicDBObject story : stories) {\r
long storyId = story.getLong(ID);\r
break;\r
}\r
case MOS: {\r
- BasicDBObject mosObject = asDBObject(content, OBJECT);\r
+ BasicDBObject mosObject = NoSQLUtils.asDBObject(content, OBJECT);\r
if (mosObject != null && !mosObject.isEmpty()) {\r
if (mosObject.containsKey(OBJ_ID)) {\r
String objID = mosObject.getString(OBJ_ID);\r
}\r
default: {\r
if (content.containsKey(CONTENT)) {\r
- List<BasicDBObject> innerContents = NoSQLUtils.asList(asDBList(content, CONTENT));\r
- for (BasicDBObject actualInnerContent : innerContents) {\r
- if (actualInnerContent != null && actualInnerContent.isEmpty())\r
- scriptContent += GetContent(actualInnerContent);\r
+ List<BasicDBObject> innerContents = NoSQLUtils.asList(content, CONTENT);\r
+ if (innerContents != null) {\r
+ for (BasicDBObject actualInnerContent : innerContents) {\r
+ if (actualInnerContent != null && actualInnerContent.isEmpty())\r
+ scriptContent += GetContent(actualInnerContent);\r
+ }\r
}\r
}\r
break;\r
// }\r
\r
private String GetCustomColumnValue(String columnName, BasicDBObject story) {\r
+ List<BasicDBObject> customColumns = NoSQLUtils.asList(story, CUSTOM_COLUMNS);\r
+ if (customColumns == null)\r
+ return null;\r
String result = null;\r
- List<BasicDBObject> customColumns = NoSQLUtils.asList(asDBList(story, CUSTOM_COLUMNS));\r
for (BasicDBObject customColumn : customColumns) {\r
if (!customColumn.containsKey(LABEL))\r
continue;\r
}\r
\r
private BasicDBList GetRelevantMOSObjects(BasicDBObject story) {\r
+ List<BasicDBObject> mosObjects = NoSQLUtils.asList(story, MOS_OBJECTS);\r
+ if (mosObjects == null)\r
+ return null;\r
BasicDBList result = null;\r
- List<BasicDBObject> mosObjects = NoSQLUtils.asList(asDBList(story, MOS_OBJECTS));\r
for (BasicDBObject mosObject : mosObjects) {\r
if (!mosObject.containsKey(MOS_ID))\r
continue;\r
}\r
\r
private String GetScriptContent(BasicDBObject story) {\r
- BasicDBObject script = asDBObject(story, SCRIPT);\r
+ BasicDBObject script = NoSQLUtils.asDBObject(story, SCRIPT);\r
if (script == null || script.isEmpty())\r
return null;\r
\r
- List<BasicDBObject> body = NoSQLUtils.asList(asDBList(script, BODY));\r
- if (body.size() == 0)\r
+ List<BasicDBObject> body = NoSQLUtils.asList(script, BODY);\r
+ if (body == null || body.size() == 0)\r
return null;\r
\r
StringBuilder sb = new StringBuilder();\r
sb.append(bodyItem.getString(LABEL));\r
sb.append(LINEFEED);\r
}\r
- List<BasicDBObject> contents = NoSQLUtils.asList(asDBList(bodyItem, CONTENT));\r
+ List<BasicDBObject> contents = NoSQLUtils.asList(bodyItem, CONTENT);\r
+ if (contents == null)\r
+ continue;\r
for (BasicDBObject content : contents) {\r
sb.append(GetContent(content));\r
}\r
String json = response.readEntity(String.class);\r
BasicDBObject resultObject = (BasicDBObject) JSONUtil.jsonToDbObject(json);\r
if (resultObject != null)\r
- result = asDBObject(resultObject, RESULT);\r
+ result = NoSQLUtils.asDBObject(resultObject, RESULT);\r
logger.trace(EXIT);\r
return result;\r
}\r
String json = response.readEntity(String.class);\r
BasicDBObject resultObject = (BasicDBObject) JSONUtil.jsonToDbObject(json);\r
if (resultObject != null)\r
- result = asDBList(resultObject, RESULT);\r
+ result = NoSQLUtils.asDBList(resultObject, RESULT);\r
logger.trace(EXIT);\r
return result;\r
}\r
String json = response.readEntity(String.class);\r
BasicDBObject resultObject = (BasicDBObject) JSONUtil.jsonToDbObject(json);\r
if (resultObject != null)\r
- result = asDBObject(resultObject, RESULT);\r
+ result = NoSQLUtils.asDBObject(resultObject, RESULT);\r
logger.trace(EXIT);\r
return result;\r
}\r
String json = response.readEntity(String.class);\r
BasicDBObject resultObject = (BasicDBObject) JSONUtil.jsonToDbObject(json);\r
if (resultObject != null)\r
- result = asDBList(resultObject, RESULT);\r
+ result = NoSQLUtils.asDBList(resultObject, RESULT);\r
\r
/* teszt */\r
List<BasicDBObject> list = NoSQLUtils.asList(result);\r
String name = rundown.containsKey(NAME) ? rundown.getString(NAME) : null;\r
logger.info("Checking rundown {} {}", name, rundown.get(SCHEDULED_START));\r
BasicDBObject rundownWithStories = queryRundown(rundownID);\r
- BasicDBList stories = asDBList(rundownWithStories, SLUGS);\r
+ BasicDBList stories = NoSQLUtils.asDBList(rundownWithStories, SLUGS);\r
if (stories != null)\r
storeRundownStories(stories, lastUpdateTime);\r
rundown.put(SCHEDULED_START, toDate(rundown, SCHEDULED_START));\r
long storyFolderID = storyFolder.getLong(ID);\r
\r
BasicDBObject storyFoldersWithStories = queryStoryFolder(storyFolderID);\r
- BasicDBList stories = asDBList(storyFoldersWithStories, STORIES);\r
+ BasicDBList stories = NoSQLUtils.asDBList(storyFoldersWithStories, STORIES);\r
if (stories != null)\r
storeStoryFolderStories(stories, lastUpdateTime);\r
storyFolder.put(MODIFIED, toDate(storyFolder, MODIFIED));\r