git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorBellai Ádám <USER\adam.bellai>
Wed, 27 Sep 2017 13:35:43 +0000 (13:35 +0000)
committerBellai Ádám <USER\adam.bellai>
Wed, 27 Sep 2017 13:35:43 +0000 (13:35 +0000)
13 files changed:
client/Maestro/ArchiveMetadata.Designer.cs [new file with mode: 0644]
client/Maestro/ArchiveMetadata.cs [new file with mode: 0644]
client/Maestro/ArchiveMetadata.resx [new file with mode: 0644]
client/Maestro/Maestro.csproj
client/Maestro/MaestroForm.Designer.cs
client/Maestro/MaestroForm.Metadata.cs
client/Maestro/MaestroForm.Source.cs
client/Maestro/MaestroForm.Target.cs
client/Maestro/MaestroForm.cs
client/Maestro/Metadata/ArchiveMetadata.cs [new file with mode: 0644]
client/OctopusClient/OctopusAPI.cs
client/PlanAIRClient/TrafficIDSelector.cs
server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/octopus/OctopusRESTService.java

diff --git a/client/Maestro/ArchiveMetadata.Designer.cs b/client/Maestro/ArchiveMetadata.Designer.cs
new file mode 100644 (file)
index 0000000..16e2fda
--- /dev/null
@@ -0,0 +1,206 @@
+namespace Maestro {\r
+    partial class ArchiveMetadata {\r
+        /// <summary>\r
+        /// Required designer variable.\r
+        /// </summary>\r
+        private System.ComponentModel.IContainer components = null;\r
+\r
+        /// <summary>\r
+        /// Clean up any resources being used.\r
+        /// </summary>\r
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>\r
+        protected override void Dispose(bool disposing) {\r
+            if (disposing && (components != null)) {\r
+                components.Dispose();\r
+            }\r
+            base.Dispose(disposing);\r
+        }\r
+\r
+        #region Windows Form Designer generated code\r
+\r
+        /// <summary>\r
+        /// Required method for Designer support - do not modify\r
+        /// the contents of this method with the code editor.\r
+        /// </summary>\r
+        private void InitializeComponent() {\r
+            this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();\r
+            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();\r
+            this.label_stuffID = new System.Windows.Forms.Label();\r
+            this.label_stuffTitle = new System.Windows.Forms.Label();\r
+            this.label_stuffDescription = new System.Windows.Forms.Label();\r
+            this.label_mediaID = new System.Windows.Forms.Label();\r
+            this.label_mediaTitle = new System.Windows.Forms.Label();\r
+            this.label_mediaDescription = new System.Windows.Forms.Label();\r
+            this.textBox_stuffID = new System.Windows.Forms.TextBox();\r
+            this.textBox_stuffTitle = new System.Windows.Forms.TextBox();\r
+            this.textBox_stuffDescription = new System.Windows.Forms.TextBox();\r
+            this.textBox_mediaID = new System.Windows.Forms.TextBox();\r
+            this.textBox_mediaTitle = new System.Windows.Forms.TextBox();\r
+            this.textBox_mediaDescription = new System.Windows.Forms.TextBox();\r
+            this.tableLayoutPanel1.SuspendLayout();\r
+            this.SuspendLayout();\r
+            // \r
+            // tableLayoutPanel1\r
+            // \r
+            this.tableLayoutPanel1.ColumnCount = 2;\r
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 29.55975F));\r
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 70.44025F));\r
+            this.tableLayoutPanel1.Controls.Add(this.label_stuffID, 0, 0);\r
+            this.tableLayoutPanel1.Controls.Add(this.label_stuffDescription, 0, 2);\r
+            this.tableLayoutPanel1.Controls.Add(this.label_mediaID, 0, 3);\r
+            this.tableLayoutPanel1.Controls.Add(this.label_mediaTitle, 0, 4);\r
+            this.tableLayoutPanel1.Controls.Add(this.label_mediaDescription, 0, 5);\r
+            this.tableLayoutPanel1.Controls.Add(this.textBox_stuffID, 1, 0);\r
+            this.tableLayoutPanel1.Controls.Add(this.textBox_stuffTitle, 1, 1);\r
+            this.tableLayoutPanel1.Controls.Add(this.textBox_stuffDescription, 1, 2);\r
+            this.tableLayoutPanel1.Controls.Add(this.textBox_mediaID, 1, 3);\r
+            this.tableLayoutPanel1.Controls.Add(this.textBox_mediaTitle, 1, 4);\r
+            this.tableLayoutPanel1.Controls.Add(this.textBox_mediaDescription, 1, 5);\r
+            this.tableLayoutPanel1.Controls.Add(this.label_stuffTitle, 0, 1);\r
+            this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);\r
+            this.tableLayoutPanel1.Name = "tableLayoutPanel1";\r
+            this.tableLayoutPanel1.RowCount = 6;\r
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));\r
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));\r
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));\r
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));\r
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));\r
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));\r
+            this.tableLayoutPanel1.Size = new System.Drawing.Size(318, 330);\r
+            this.tableLayoutPanel1.TabIndex = 0;\r
+            // \r
+            // label_stuffID\r
+            // \r
+            this.label_stuffID.AutoSize = true;\r
+            this.label_stuffID.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.label_stuffID.Location = new System.Drawing.Point(3, 0);\r
+            this.label_stuffID.Name = "label_stuffID";\r
+            this.label_stuffID.Size = new System.Drawing.Size(87, 13);\r
+            this.label_stuffID.TabIndex = 0;\r
+            this.label_stuffID.Text = "Anyag azonosító";\r
+            // \r
+            // label_stuffTitle\r
+            // \r
+            this.label_stuffTitle.AutoSize = true;\r
+            this.label_stuffTitle.Location = new System.Drawing.Point(3, 55);\r
+            this.label_stuffTitle.Name = "label_stuffTitle";\r
+            this.label_stuffTitle.Size = new System.Drawing.Size(58, 13);\r
+            this.label_stuffTitle.TabIndex = 1;\r
+            this.label_stuffTitle.Text = "Anyag cím";\r
+            // \r
+            // label_stuffDescription\r
+            // \r
+            this.label_stuffDescription.AutoSize = true;\r
+            this.label_stuffDescription.Location = new System.Drawing.Point(3, 110);\r
+            this.label_stuffDescription.Name = "label_stuffDescription";\r
+            this.label_stuffDescription.Size = new System.Drawing.Size(66, 13);\r
+            this.label_stuffDescription.TabIndex = 2;\r
+            this.label_stuffDescription.Text = "Anyag leírás";\r
+            // \r
+            // label_mediaID\r
+            // \r
+            this.label_mediaID.AutoSize = true;\r
+            this.label_mediaID.Location = new System.Drawing.Point(3, 165);\r
+            this.label_mediaID.Name = "label_mediaID";\r
+            this.label_mediaID.Size = new System.Drawing.Size(86, 13);\r
+            this.label_mediaID.TabIndex = 3;\r
+            this.label_mediaID.Text = "Média azonosító";\r
+            // \r
+            // label_mediaTitle\r
+            // \r
+            this.label_mediaTitle.AutoSize = true;\r
+            this.label_mediaTitle.Location = new System.Drawing.Point(3, 220);\r
+            this.label_mediaTitle.Name = "label_mediaTitle";\r
+            this.label_mediaTitle.Size = new System.Drawing.Size(57, 13);\r
+            this.label_mediaTitle.TabIndex = 4;\r
+            this.label_mediaTitle.Text = "Média cím";\r
+            // \r
+            // label_mediaDescription\r
+            // \r
+            this.label_mediaDescription.AutoSize = true;\r
+            this.label_mediaDescription.Location = new System.Drawing.Point(3, 275);\r
+            this.label_mediaDescription.Name = "label_mediaDescription";\r
+            this.label_mediaDescription.Size = new System.Drawing.Size(65, 13);\r
+            this.label_mediaDescription.TabIndex = 5;\r
+            this.label_mediaDescription.Text = "Média leírás";\r
+            // \r
+            // textBox_stuffID\r
+            // \r
+            this.textBox_stuffID.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.textBox_stuffID.Location = new System.Drawing.Point(96, 3);\r
+            this.textBox_stuffID.Name = "textBox_stuffID";\r
+            this.textBox_stuffID.Size = new System.Drawing.Size(219, 20);\r
+            this.textBox_stuffID.TabIndex = 6;\r
+            // \r
+            // textBox_stuffTitle\r
+            // \r
+            this.textBox_stuffTitle.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.textBox_stuffTitle.Location = new System.Drawing.Point(96, 58);\r
+            this.textBox_stuffTitle.Name = "textBox_stuffTitle";\r
+            this.textBox_stuffTitle.Size = new System.Drawing.Size(219, 20);\r
+            this.textBox_stuffTitle.TabIndex = 7;\r
+            // \r
+            // textBox_stuffDescription\r
+            // \r
+            this.textBox_stuffDescription.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.textBox_stuffDescription.Location = new System.Drawing.Point(96, 113);\r
+            this.textBox_stuffDescription.Name = "textBox_stuffDescription";\r
+            this.textBox_stuffDescription.Size = new System.Drawing.Size(219, 20);\r
+            this.textBox_stuffDescription.TabIndex = 8;\r
+            // \r
+            // textBox_mediaID\r
+            // \r
+            this.textBox_mediaID.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.textBox_mediaID.Location = new System.Drawing.Point(96, 168);\r
+            this.textBox_mediaID.Name = "textBox_mediaID";\r
+            this.textBox_mediaID.Size = new System.Drawing.Size(219, 20);\r
+            this.textBox_mediaID.TabIndex = 9;\r
+            // \r
+            // textBox_mediaTitle\r
+            // \r
+            this.textBox_mediaTitle.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.textBox_mediaTitle.Location = new System.Drawing.Point(96, 223);\r
+            this.textBox_mediaTitle.Name = "textBox_mediaTitle";\r
+            this.textBox_mediaTitle.Size = new System.Drawing.Size(219, 20);\r
+            this.textBox_mediaTitle.TabIndex = 10;\r
+            // \r
+            // textBox_mediaDescription\r
+            // \r
+            this.textBox_mediaDescription.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.textBox_mediaDescription.Location = new System.Drawing.Point(96, 278);\r
+            this.textBox_mediaDescription.Name = "textBox_mediaDescription";\r
+            this.textBox_mediaDescription.Size = new System.Drawing.Size(219, 20);\r
+            this.textBox_mediaDescription.TabIndex = 11;\r
+            // \r
+            // ArchiveMetadata\r
+            // \r
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
+            this.ClientSize = new System.Drawing.Size(318, 330);\r
+            this.Controls.Add(this.tableLayoutPanel1);\r
+            this.Name = "ArchiveMetadata";\r
+            this.Text = "ArchiveMetadata";\r
+            this.tableLayoutPanel1.ResumeLayout(false);\r
+            this.tableLayoutPanel1.PerformLayout();\r
+            this.ResumeLayout(false);\r
+\r
+        }\r
+\r
+        #endregion\r
+        private System.ComponentModel.BackgroundWorker backgroundWorker1;\r
+        private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;\r
+        private System.Windows.Forms.Label label_stuffTitle;\r
+        private System.Windows.Forms.Label label_stuffID;\r
+        private System.Windows.Forms.Label label_stuffDescription;\r
+        private System.Windows.Forms.Label label_mediaID;\r
+        private System.Windows.Forms.Label label_mediaTitle;\r
+        private System.Windows.Forms.Label label_mediaDescription;\r
+        private System.Windows.Forms.TextBox textBox_stuffID;\r
+        private System.Windows.Forms.TextBox textBox_stuffTitle;\r
+        private System.Windows.Forms.TextBox textBox_stuffDescription;\r
+        private System.Windows.Forms.TextBox textBox_mediaID;\r
+        private System.Windows.Forms.TextBox textBox_mediaTitle;\r
+        private System.Windows.Forms.TextBox textBox_mediaDescription;\r
+    }\r
+}
\ No newline at end of file
diff --git a/client/Maestro/ArchiveMetadata.cs b/client/Maestro/ArchiveMetadata.cs
new file mode 100644 (file)
index 0000000..cdf0268
--- /dev/null
@@ -0,0 +1,27 @@
+using System.Windows.Forms;\r
+using Maestro.Metadata;\r
+\r
+namespace Maestro {\r
+    public partial class ArchiveMetadata : Form {\r
+\r
+        private ArchiveMetadataModel model;\r
+\r
+        public ArchiveMetadata(ArchiveMetadataModel model) : this() {\r
+            this.model = model;\r
+        }\r
+\r
+        public ArchiveMetadata() {\r
+            InitializeComponent();\r
+            FillTheTextBoxes();\r
+        }\r
+\r
+        private void FillTheTextBoxes() {\r
+            textBox_stuffID.Text = model.StuffID;\r
+            textBox_stuffTitle.Text = model.StuffTitle;\r
+            textBox_stuffDescription.Text = model.StuffDescription;\r
+            textBox_mediaID.Text = model.MediaID;\r
+            textBox_mediaTitle.Text = model.MediaTitle;\r
+            textBox_mediaDescription.Text = model.MediaDescription;\r
+        }\r
+    }\r
+}\r
diff --git a/client/Maestro/ArchiveMetadata.resx b/client/Maestro/ArchiveMetadata.resx
new file mode 100644 (file)
index 0000000..ac1dbed
--- /dev/null
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<root>\r
+  <!-- \r
+    Microsoft ResX Schema \r
+    \r
+    Version 2.0\r
+    \r
+    The primary goals of this format is to allow a simple XML format \r
+    that is mostly human readable. The generation and parsing of the \r
+    various data types are done through the TypeConverter classes \r
+    associated with the data types.\r
+    \r
+    Example:\r
+    \r
+    ... ado.net/XML headers & schema ...\r
+    <resheader name="resmimetype">text/microsoft-resx</resheader>\r
+    <resheader name="version">2.0</resheader>\r
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>\r
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>\r
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>\r
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>\r
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">\r
+        <value>[base64 mime encoded serialized .NET Framework object]</value>\r
+    </data>\r
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>\r
+        <comment>This is a comment</comment>\r
+    </data>\r
+                \r
+    There are any number of "resheader" rows that contain simple \r
+    name/value pairs.\r
+    \r
+    Each data row contains a name, and value. The row also contains a \r
+    type or mimetype. Type corresponds to a .NET class that support \r
+    text/value conversion through the TypeConverter architecture. \r
+    Classes that don't support this are serialized and stored with the \r
+    mimetype set.\r
+    \r
+    The mimetype is used for serialized objects, and tells the \r
+    ResXResourceReader how to depersist the object. This is currently not \r
+    extensible. For a given mimetype the value must be set accordingly:\r
+    \r
+    Note - application/x-microsoft.net.object.binary.base64 is the format \r
+    that the ResXResourceWriter will generate, however the reader can \r
+    read any of the formats listed below.\r
+    \r
+    mimetype: application/x-microsoft.net.object.binary.base64\r
+    value   : The object must be serialized with \r
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter\r
+            : and then encoded with base64 encoding.\r
+    \r
+    mimetype: application/x-microsoft.net.object.soap.base64\r
+    value   : The object must be serialized with \r
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter\r
+            : and then encoded with base64 encoding.\r
+\r
+    mimetype: application/x-microsoft.net.object.bytearray.base64\r
+    value   : The object must be serialized into a byte array \r
+            : using a System.ComponentModel.TypeConverter\r
+            : and then encoded with base64 encoding.\r
+    -->\r
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">\r
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />\r
+    <xsd:element name="root" msdata:IsDataSet="true">\r
+      <xsd:complexType>\r
+        <xsd:choice maxOccurs="unbounded">\r
+          <xsd:element name="metadata">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" use="required" type="xsd:string" />\r
+              <xsd:attribute name="type" type="xsd:string" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" />\r
+              <xsd:attribute ref="xml:space" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="assembly">\r
+            <xsd:complexType>\r
+              <xsd:attribute name="alias" type="xsd:string" />\r
+              <xsd:attribute name="name" type="xsd:string" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="data">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />\r
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />\r
+              <xsd:attribute ref="xml:space" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="resheader">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" use="required" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+        </xsd:choice>\r
+      </xsd:complexType>\r
+    </xsd:element>\r
+  </xsd:schema>\r
+  <resheader name="resmimetype">\r
+    <value>text/microsoft-resx</value>\r
+  </resheader>\r
+  <resheader name="version">\r
+    <value>2.0</value>\r
+  </resheader>\r
+  <resheader name="reader">\r
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+  <resheader name="writer">\r
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+  <metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+    <value>17, 17</value>\r
+  </metadata>\r
+  <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">\r
+    <value>25</value>\r
+  </metadata>\r
+</root>
\ No newline at end of file
index 839e5c5eccb9371d59683c827ad999c8bd633574..300d80afd351267f0df3d7e854bcc532b174a267 100644 (file)
     <Reference Include="WindowsBase" />\r
   </ItemGroup>\r
   <ItemGroup>\r
+    <Compile Include="ArchiveMetadata.cs">\r
+      <SubType>Form</SubType>\r
+    </Compile>\r
+    <Compile Include="ArchiveMetadata.Designer.cs">\r
+      <DependentUpon>ArchiveMetadata.cs</DependentUpon>\r
+    </Compile>\r
     <Compile Include="Commons\DataGridViewProgressColumn.cs" />\r
     <Compile Include="Commons\ObjectExtensions.cs" />\r
     <Compile Include="Configuration\ConfigurationInfo.cs" />\r
     <Compile Include="MaestroForm.Target.cs">\r
       <SubType>Form</SubType>\r
     </Compile>\r
+    <Compile Include="Metadata\ArchiveMetadata.cs" />\r
     <Compile Include="Metadata\IDTypes.cs" />\r
     <Compile Include="Metadata\MenuButton.cs">\r
       <SubType>Component</SubType>\r
     <Compile Include="Targets\TargetProcessor.cs" />\r
     <Compile Include="Targets\ITargetProcessor.cs" />\r
     <Compile Include="Targets\ProcessStatus.cs" />\r
+    <EmbeddedResource Include="ArchiveMetadata.resx">\r
+      <DependentUpon>ArchiveMetadata.cs</DependentUpon>\r
+    </EmbeddedResource>\r
     <EmbeddedResource Include="MaestroForm.resx">\r
       <DependentUpon>MaestroForm.cs</DependentUpon>\r
       <SubType>Designer</SubType>\r
index 1c2301e6c2df32792a758b48f97a4c39ec6714aa..f5b7787fd854e1d1c9b2623857e5fe8a5f742872 100644 (file)
@@ -259,6 +259,7 @@ namespace Maestro {
             this.ctxiModifyArchiveMetadata.Name = "ctxiModifyArchiveMetadata";\r
             this.ctxiModifyArchiveMetadata.Size = new System.Drawing.Size(206, 22);\r
             this.ctxiModifyArchiveMetadata.Text = "Modify archive metadata";\r
+            this.ctxiModifyArchiveMetadata.Click += new System.EventHandler(this.ModifyArchiveMetadataClick);\r
             // \r
             // splitContainer1\r
             // \r
index 87d1585477fb5957a8ba5f993f3c2bc4ee6887e8..33a4b0aac7dbef3a7a6998b5b354bcb6c1fee800 100644 (file)
@@ -8,6 +8,7 @@ using System.Windows.Forms;
 using TrafficClient;\r
 using System.Collections.Generic;\r
 using System.ComponentModel;\r
+using System.Text.RegularExpressions;\r
 \r
 namespace Maestro {\r
     public partial class MaestroForm {\r
@@ -63,6 +64,62 @@ namespace Maestro {
             };\r
         }\r
 \r
+        private void ModifyArchiveMetadataClick(object sender, EventArgs e) {\r
+            ArchiveMetadata form = null;\r
+            IDTypes idType = GetTypeOfSelectedMetadata();\r
+            ArchiveMetadataModel model = new ArchiveMetadataModel();\r
+            if (idType == IDTypes.OctopusID)\r
+                FillTheModelFromOctopus(model);\r
+            else if (idType == IDTypes.TrafficID)\r
+                FillTheModelFromTraffic(model);\r
+            //form = new ArchiveMetadata(model);\r
+            //form.ShowDialog();\r
+        }\r
+\r
+        private void FillTheModelFromTraffic(ArchiveMetadataModel model) {\r
+            throw new NotImplementedException();\r
+        }\r
+\r
+        private void FillTheModelFromOctopus(ArchiveMetadataModel model) {\r
+            string id = selectedMetadata.ID;\r
+            OctopusAPI api = octopusIDSelector.GetClient();\r
+            List<Story> stories = api.GetStoriesById(id).ToList();\r
+            Story story = stories[0];\r
+            if (story.StoryFolders != null) {\r
+                List<StoryFolder> storyFolders = api.GetStoryFoldersByStoryID(id).ToList();\r
+                //lehet több mappában is a story?\r
+                StoryFolder folder = storyFolders[0];\r
+                model.StuffID = folder.ID;\r
+                model.StuffTitle = folder.Name;\r
+            } else if (story.Rundowns != null) {\r
+                List<Rundown> rundowns = api.GetRundownsByStoryID(id).ToList();\r
+                Rundown rundown = rundowns[0];\r
+                model.StuffID = rundown.ID;\r
+                model.StuffTitle = rundown.Name;\r
+                model.StuffDescription = rundown.Start;\r
+            }\r
+            model.MediaID = story.ID;\r
+            model.MediaTitle = story.Name;\r
+            model.MediaDescription = story.Script;\r
+\r
+        }\r
+\r
+        private IDTypes GetTypeOfSelectedMetadata() {\r
+            IDTypes result = IDTypes.None;\r
+            if (String.IsNullOrEmpty(selectedMetadata.ID))\r
+                return IDTypes.None;\r
+            string pattern = "[A-Z]{1}[0-9]{6}[A-Z]{1}";\r
+            Match match = Regex.Match(selectedMetadata.ID, pattern);\r
+            if (match.Success) {\r
+                result = IDTypes.TrafficID;\r
+            } else {\r
+                pattern = "[0-9]{7}";\r
+                match = Regex.Match(selectedMetadata.ID, pattern);\r
+                result = match.Success ? IDTypes.OctopusID : IDTypes.None;\r
+            }\r
+            return result;\r
+        }\r
+\r
         private void OnDefineSegmentsClick(object sender, EventArgs e) {\r
             if (SelectedSource?.FileInfo == null)\r
                 return;\r
index 75e33bf7ab2f7a44f0339c84efce6a327cf1c8f2..d3488845ef035b9af72bde872e7bbdf3ba93d396 100644 (file)
@@ -141,12 +141,12 @@ namespace Maestro {
             SetStartingName(checkBox);\r
             if (selectedSources == null || selectedSources.Count == 0) {\r
                 buttonMetadata.Enabled = false;\r
-                IsSelectedIDTrafficID();\r
+                IsSelectedFileAnID();\r
                 return;\r
             }\r
             if (selectedSources.Count == 1) {\r
                 buttonMetadata.Enabled = true;\r
-                IsSelectedIDTrafficID();\r
+                IsSelectedFileAnID();\r
                 return;\r
             }\r
 \r
@@ -160,7 +160,7 @@ namespace Maestro {
                 }\r
             }\r
             buttonMetadata.Enabled = true;\r
-            IsSelectedIDTrafficID();\r
+            IsSelectedFileAnID();\r
         }\r
 \r
         private void SetStartingName(bool checkBox) {\r
@@ -187,6 +187,7 @@ namespace Maestro {
         }\r
 \r
         private void SetSelectedSourceFileInfo(SourceInfo selectedSource) {\r
+            //todo ha nexio-s akkor null a fileinfo\r
             if (selectedSources.Count == 1) {\r
                 Uri inputUri = new Uri(String.Format("{0}/{1}", Configuration.Source.Local.Address.LocalPath, selectedSources[0]));\r
                 selectedSource.FileInfo = new System.IO.FileInfo(inputUri.LocalPath);\r
index 703c0640bd401c428eac4a6f7b2179576f44defb..85b168e750392e63d6bddee92f3c8442153e653f 100644 (file)
@@ -106,17 +106,16 @@ namespace Maestro {
                 ChangeProcessButtonsState(false);\r
             }\r
 \r
+            ctxiModifyArchiveMetadata.Enabled = selectedMetadata != null;\r
 \r
             if (Configuration.Player != null)\r
                 ctxiDefineSegments.Enabled = SelectedSource?.FileInfo != null && Configuration.Player.SegmentEditor && MetadataType.Traffic.Equals(SelectedMetadata?.Kind);\r
-            IsSelectedIDTrafficID();\r
+            IsSelectedFileAnID();\r
         }\r
 \r
-        private void IsSelectedIDTrafficID() {\r
+        private void IsSelectedFileAnID() {\r
             if (String.IsNullOrEmpty(startingName))\r
                 return;\r
-            \r
-            //kisbetük kellenek?\r
             string pattern = "[A-Z]{1}[0-9]{6}[A-Z]{1}";\r
             Match match = Regex.Match(startingName, pattern);\r
             if (match.Success) {\r
index b1fa0d3f7c4a2d4020e48c25579f3af1d62a7167..5ad63c9cfb7243fc94cd055655ca018400179ef8 100644 (file)
@@ -170,7 +170,7 @@ namespace Maestro {
         }\r
 \r
         private void buttonMetadata_Click(object sender, EventArgs e) {\r
-            IsSelectedIDTrafficID();\r
+            IsSelectedFileAnID();\r
             switch (IDType) {\r
                 case Metadata.IDTypes.TrafficID:\r
                     SetTrafficIDToMetadataText();\r
diff --git a/client/Maestro/Metadata/ArchiveMetadata.cs b/client/Maestro/Metadata/ArchiveMetadata.cs
new file mode 100644 (file)
index 0000000..92227c8
--- /dev/null
@@ -0,0 +1,18 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using System.Threading.Tasks;\r
+\r
+namespace Maestro.Metadata {\r
+    public class ArchiveMetadataModel {\r
+\r
+        //todo rename a Stuffra??\r
+        public string StuffID { get; set; }\r
+        public string StuffTitle { get; set; }\r
+        public string StuffDescription { get; set; }\r
+        public string MediaID { get; set; }\r
+        public string MediaTitle { get; set; }\r
+        public string MediaDescription { get; set; }\r
+    }\r
+}\r
index 20ce71ff65c23231b4735ed39b5c10eb5e5cbee4..d4a50db04d48d22441f79a382202309c87532d02 100644 (file)
@@ -7,37 +7,38 @@ using System.Collections.Generic;
 using System.Globalization;\r
 using System.Linq;\r
 \r
-namespace OctopusClient\r
-{\r
+namespace OctopusClient {\r
 \r
-    public class Rundown\r
-    {\r
+    public class Rundown {\r
         public string ID { get; set; }\r
         public string Name { get; set; }\r
         public string Start { get; set; }\r
-        public override String ToString()\r
-        {\r
+        public override String ToString() {\r
             string displayName = string.IsNullOrEmpty(Name) ? OctopusAPI.UNNAMED : Name;\r
             string result = ID.Equals("0") ? displayName : String.Format($"{Start} | {displayName} ");\r
             return result;\r
         }\r
     }\r
 \r
-    public class Story\r
-    {\r
+    public class Story {\r
         public string ID { get; set; }\r
         public string Name { get; set; }\r
-        public MosObject[] MosObjects{ get; set; }\r
-        public override String ToString()\r
-        {\r
+        public MosObject[] MosObjects { get; set; }\r
+\r
+        public string Script { get; set; }\r
+\r
+        public StoryFolder[] StoryFolders { get; set; }\r
+\r
+        public Rundown[] Rundowns { get; set; }\r
+\r
+        public override String ToString() {\r
             string displayName = string.IsNullOrEmpty(Name) ? OctopusAPI.UNNAMED : Name;\r
             string result = ID.Equals("0") ? displayName : String.Format($"{ID} | {displayName} ");\r
             return result;\r
         }\r
     }\r
 \r
-    public class MosObject\r
-    {\r
+    public class MosObject {\r
         public string MosID { get; set; }\r
         public string ObjID { get; set; }\r
         public string ObjectType { get; set; }\r
@@ -46,23 +47,20 @@ namespace OctopusClient
         public string GlobalID { get; set; }\r
     }\r
 \r
-    public class StoryFolder\r
-    {\r
+    public class StoryFolder {\r
 \r
         public string ID { get; set; }\r
 \r
         public string Name { get; set; }\r
 \r
-        public override String ToString()\r
-        {\r
+        public override String ToString() {\r
             string displayName = string.IsNullOrEmpty(Name) ? OctopusAPI.UNNAMED : Name;\r
             string result = ID.Equals("0") ? displayName : String.Format($"{ID} | {displayName} ");\r
             return result;\r
         }\r
     }\r
 \r
-    public class OctopusAPI\r
-    {\r
+    public class OctopusAPI {\r
         public const string UNNAMED = "<Unnamed>";\r
 \r
         private static Logger logger = LogManager.GetCurrentClassLogger();\r
@@ -70,22 +68,18 @@ namespace OctopusClient
         private string user;\r
         private string pwd;\r
 \r
-        public OctopusAPI(string address, string user, string pwd, int timeout)\r
-        {\r
+        public OctopusAPI(string address, string user, string pwd, int timeout) {\r
             this.user = user;\r
             this.pwd = pwd;\r
-            client = new RestClient(address)\r
-            {\r
+            client = new RestClient(address) {\r
                 Authenticator = new HttpBasicAuthenticator(user, pwd),\r
                 Timeout = timeout\r
             };\r
         }\r
 \r
-        public IEnumerable<Rundown> GetRundowns(DateTime scheduledDate)\r
-        {\r
+        public IEnumerable<Rundown> GetRundowns(DateTime scheduledDate) {\r
             IEnumerable<Rundown> result = null;\r
-            try\r
-            {\r
+            try {\r
                 var request = new RestRequest("rundowns/{scheduledDate}", Method.GET);\r
                 var dt = scheduledDate.ToUniversalTime().ToString("s", CultureInfo.InvariantCulture);\r
                 request.AddParameter("scheduledDate", dt, ParameterType.UrlSegment);\r
@@ -94,10 +88,8 @@ namespace OctopusClient
                     return null;\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
-                result = resultObject.Children().Select(d =>\r
-                {\r
-                    Rundown r = new Rundown\r
-                    {\r
+                result = resultObject.Children().Select(d => {\r
+                    Rundown r = new Rundown {\r
                         ID = d["id"].ToString(),\r
                         Name = d["name"].ToString(),\r
                         Start = d["scheduledStart"].ToString()\r
@@ -106,18 +98,15 @@ namespace OctopusClient
                     return r;\r
                 });\r
             }\r
-            catch (Exception e)\r
-            {\r
+            catch (Exception e) {\r
                 //log e.Message ??\r
             }\r
             return result;\r
         }\r
 \r
-        public IEnumerable<Story> GetStories(string rundownID)\r
-        {\r
+        public IEnumerable<Story> GetStories(string rundownID) {\r
             IEnumerable<Story> result = null;\r
-            try\r
-            {\r
+            try {\r
                 var request = new RestRequest("stories/{rundownID}", Method.GET);\r
                 request.AddParameter("rundownID", rundownID, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
@@ -125,19 +114,22 @@ namespace OctopusClient
                     return null;\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
-                result = resultObject.Children().Select(d =>\r
-                {\r
+                result = resultObject.Children().Select(d => {\r
                     List<MosObject> objs = GetMosObjectsFromStory(d);\r
-                    Story r = new Story\r
-                    {\r
+                    Story r = new Story {\r
                         ID = d["id"].ToString(),\r
                         Name = d["name"].ToString(),\r
                         MosObjects = objs.ToArray()\r
                     };\r
+                    if (d["script"] != null)\r
+                        r.Script = d["script"].ToString();\r
+                    if (d["story_folder"] != null)\r
+                        r.StoryFolders = GetStoryFolderFromStory(d).ToArray();\r
+                    if (d["rundown"] != null)\r
+                        r.Rundowns = GetRundownFromStory(d).ToArray();\r
                     logger.Debug($"{r}");\r
                     return r;\r
-                }).OrderBy(r =>\r
-                {\r
+                }).OrderBy(r => {\r
                     return r.ID;\r
                 });\r
             }\r
@@ -145,11 +137,9 @@ namespace OctopusClient
             return result;\r
         }\r
 \r
-        public IEnumerable<Story> GetStoriesByStoryFolderID(string storyFolderID)\r
-        {\r
+        public IEnumerable<Story> GetStoriesByStoryFolderID(string storyFolderID) {\r
             IEnumerable<Story> result = null;\r
-            try\r
-            {\r
+            try {\r
                 var request = new RestRequest("storiesByStoryFolderID/{storyFolderID}", Method.GET);\r
                 request.AddParameter("storyFolderID", storyFolderID, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
@@ -157,20 +147,23 @@ namespace OctopusClient
                     return null;\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
-                result = resultObject.Children().Select(d =>\r
-                {\r
+                result = resultObject.Children().Select(d => {\r
                     List<MosObject> objs = GetMosObjectsFromStory(d);\r
-                    Story r = new Story\r
-                    {\r
+                    Story r = new Story {\r
                         ID = d["id"].ToString(),\r
                         Name = d["name"].ToString(),\r
                         MosObjects = objs.ToArray()\r
-                };\r
-                    \r
+                    };\r
+                    if (d["script"] != null) {\r
+                        r.Script = d["script"].ToString();\r
+                    }\r
+                    if (d["story_folder"] != null)\r
+                        r.StoryFolders = GetStoryFolderFromStory(d).ToArray();\r
+                    if (d["rundown"] != null)\r
+                        r.Rundowns = GetRundownFromStory(d).ToArray();\r
                     logger.Debug($"{r}");\r
                     return r;\r
-                }).OrderBy(r =>\r
-                {\r
+                }).OrderBy(r => {\r
                     return r.ID;\r
                 });\r
             }\r
@@ -178,15 +171,31 @@ namespace OctopusClient
             return result;\r
         }\r
 \r
-        private List<MosObject> GetMosObjectsFromStory(JToken d)\r
-        {\r
+        private List<Rundown> GetRundownFromStory(JToken d) {\r
+            JToken[] array = d["rundown"].ToArray();\r
+            List<Rundown> objs = new List<Rundown>();\r
+            foreach (JToken token in array) {\r
+                Rundown folder = new Rundown() { ID = token["id"].ToString() };\r
+                objs.Add(folder);\r
+            }\r
+            return objs;\r
+        }\r
+\r
+        private List<StoryFolder> GetStoryFolderFromStory(JToken d) {\r
+            JToken[] array = d["story_folder"].ToArray();\r
+            List<StoryFolder> objs = new List<StoryFolder>();\r
+            foreach (JToken token in array) {\r
+                StoryFolder folder = new StoryFolder() { ID = token["id"].ToString() };\r
+                objs.Add(folder);\r
+            }\r
+            return objs;\r
+        }\r
+\r
+        private List<MosObject> GetMosObjectsFromStory(JToken d) {\r
             JToken[] array = d["mosObjects"].ToArray();\r
             List<MosObject> objs = new List<MosObject>();\r
-            foreach (JToken token in array)\r
-            {\r
-                Console.WriteLine(token["id"]);\r
-                MosObject mosObject = new MosObject()\r
-                {\r
+            foreach (JToken token in array) {\r
+                MosObject mosObject = new MosObject() {\r
                     GlobalID = token["globalId"].ToString(),\r
                     ID = token["id"].ToString(),\r
                     Modified = token["modified"].ToString(),\r
@@ -199,21 +208,17 @@ namespace OctopusClient
             return objs;\r
         }\r
 \r
-        public IEnumerable<StoryFolder> getStoryFolders()\r
-        {\r
+        public IEnumerable<StoryFolder> getStoryFolders() {\r
             IEnumerable<StoryFolder> result = null;\r
-            try\r
-            {\r
+            try {\r
                 var request = new RestRequest("storyfolders", Method.GET);\r
                 var response = client.Execute<JsonArray>(request);\r
                 if (response.ContentLength == 0)\r
                     return null;\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
-                result = resultObject.Children().Select(d =>\r
-                {\r
-                    StoryFolder r = new StoryFolder\r
-                    {\r
+                result = resultObject.Children().Select(d => {\r
+                    StoryFolder r = new StoryFolder {\r
                         ID = d["id"].ToString(),\r
                         Name = d["name"].ToString()\r
                     };\r
@@ -225,24 +230,26 @@ namespace OctopusClient
             return result;\r
         }\r
 \r
-        public IEnumerable<Story> GetStories()\r
-        {\r
+        public IEnumerable<Story> GetStories() {\r
             IEnumerable<Story> result = null;\r
-            try\r
-            {\r
+            try {\r
                 var request = new RestRequest("stories", Method.GET);\r
                 var response = client.Execute<JsonArray>(request);\r
                 if (response.ContentLength == 0)\r
                     return null;\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
-                result = resultObject.Children().Select(d =>\r
-                {\r
-                    Story r = new Story\r
-                    {\r
+                result = resultObject.Children().Select(d => {\r
+                    Story r = new Story {\r
                         ID = d["id"].ToString(),\r
                         Name = d["name"].ToString()\r
                     };\r
+                    if (d["script"] != null)\r
+                        r.Script = d["script"].ToString();\r
+                    if (d["story_folder"] != null)\r
+                        r.StoryFolders = GetStoryFolderFromStory(d).ToArray();\r
+                    if (d["rundown"] != null)\r
+                        r.Rundowns = GetRundownFromStory(d).ToArray();\r
                     logger.Debug($"{r}");\r
                     return r;\r
                 });\r
@@ -251,11 +258,9 @@ namespace OctopusClient
             return result;\r
         }\r
 \r
-        public IEnumerable<Story> GetStoriesById(String id)\r
-        {\r
+        public IEnumerable<Story> GetStoriesById(String id) {\r
             IEnumerable<Story> result = null;\r
-            try\r
-            {\r
+            try {\r
                 var request = new RestRequest("getStoriesByIDRegex/{id}", Method.GET);\r
                 request.AddParameter("id", id, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
@@ -263,13 +268,17 @@ namespace OctopusClient
                     return null;\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
-                result = resultObject.Children().Select(d =>\r
-                {\r
-                    Story r = new Story\r
-                    {\r
+                result = resultObject.Children().Select(d => {\r
+                    Story r = new Story {\r
                         ID = d["id"].ToString(),\r
                         Name = String.IsNullOrEmpty(d["name"].ToString()) ? OctopusAPI.UNNAMED : d["name"].ToString()\r
                     };\r
+                    if (d["script"] != null)\r
+                        r.Script = d["script"].ToString();\r
+                    if (d["story_folder"] != null)\r
+                        r.StoryFolders = GetStoryFolderFromStory(d).ToArray();\r
+                    if (d["rundown"] != null)\r
+                        r.Rundowns = GetRundownFromStory(d).ToArray();\r
                     logger.Debug($"{r}");\r
                     return r;\r
                 });\r
@@ -278,6 +287,56 @@ namespace OctopusClient
             return result;\r
         }\r
 \r
+        public IEnumerable<StoryFolder> GetStoryFoldersByStoryID(String id) {\r
+            IEnumerable<StoryFolder> result = null;\r
+            try {\r
+                var request = new RestRequest("getStoryFolders/{id}", Method.GET);\r
+                request.AddParameter("id", id, ParameterType.UrlSegment);\r
+                var response = client.Execute<JsonArray>(request);\r
+                if (response.ContentLength == 0)\r
+                    return null;\r
+                JArray resultObject = JArray.Parse(response.Content);\r
+\r
+                result = resultObject.Children().Select(d => {\r
+                    StoryFolder r = new StoryFolder {\r
+                        ID = d["id"].ToString(),\r
+                        Name = String.IsNullOrEmpty(d["name"].ToString()) ? OctopusAPI.UNNAMED : d["name"].ToString()\r
+                    };\r
+\r
+                    logger.Debug($"{r}");\r
+                    return r;\r
+                });\r
+            }\r
+            catch (Exception e) { }\r
+            return result;\r
+        }\r
+\r
+        public IEnumerable<Rundown> GetRundownsByStoryID(String id) {\r
+            IEnumerable<Rundown> result = null;\r
+            try {\r
+                var request = new RestRequest("getRundownByStoryID/{id}", Method.GET);\r
+                request.AddParameter("id", id, ParameterType.UrlSegment);\r
+                var response = client.Execute<JsonArray>(request);\r
+                if (response.ContentLength == 0)\r
+                    return null;\r
+                JArray resultObject = JArray.Parse(response.Content);\r
+\r
+                result = resultObject.Children().Select(d => {\r
+                    Rundown r = new Rundown {\r
+                        ID = d["id"].ToString(),\r
+                        Name = String.IsNullOrEmpty(d["name"].ToString()) ? OctopusAPI.UNNAMED : d["name"].ToString(),\r
+                        Start = d["scheduledStart"].ToString()\r
+                    };\r
+\r
+                    logger.Debug($"{r}");\r
+                    return r;\r
+                });\r
+            }\r
+            catch (Exception e) { }\r
+            return result;\r
+        }\r
+\r
+\r
         public IEnumerable<MosObject> GetMosObjectsByID(String id) {\r
             IEnumerable<MosObject> result = null;\r
             try {\r
index 5c74b9f73fe08eb6444e2a94e3a0d7e92a223977..82def78a6f7d22c0a6015d440d4e7d8a86401757 100644 (file)
@@ -27,15 +27,14 @@ namespace TrafficClient {
             copiaCheckBox.Text = Resources.HIANYZO_KOPIA;\r
 \r
             dataGridView1.AutoGenerateColumns = false;\r
-           // dataGridView1.Columns.AddRange(new DataGridViewCheckBoxColumn());\r
             dataGridView1.Columns.AddRange(\r
                 new DataGridViewColumn[] {\r
                     new DataGridViewCheckBoxColumn(){\r
-                        AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill,\r
+                        AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells,\r
                         DataPropertyName = "Selected"\r
                     },\r
                     new DataGridViewTextBoxColumn() {\r
-                            AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader,\r
+                            AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells,\r
                             DataPropertyName = "MediaID",\r
                             HeaderText = Resources.TRAFFIC_ID\r
                     },\r
index 16793baf10b90638945fdb5c864301cb0f61fe48..857e8a2791a5316f09aa0114480b1156f993b3b5 100644 (file)
@@ -181,4 +181,39 @@ public class OctopusRESTService {
                logger.trace("Exit");
                return result;
        }
+       
+       @GET
+       @Path("/getStoryFolders/{id}")
+       @Consumes({ MediaType.APPLICATION_JSON })
+       @Produces({ MediaType.APPLICATION_JSON })
+       public Response getStoryFoldersByStoryID(@PathParam("id") String id) {
+               logger.trace("Entry");
+               Response result = null;
+               try {
+                       List<DBObject> stories = octopusService.getStoryFolders(Long.parseLong(id));
+                       result = Response.ok(stories).build();
+               } catch (Exception e) {
+                       result = createErrorResponse(e);
+               }
+               logger.trace("Exit");
+               return result;
+       }
+       
+       @GET
+       @Path("/getRundownByStoryID/{id}")
+       @Consumes({ MediaType.APPLICATION_JSON })
+       @Produces({ MediaType.APPLICATION_JSON })
+       public Response getRundownByStoryID(@PathParam("id") String id) {
+               logger.trace("Entry");
+               Response result = null;
+               try {
+                       List<DBObject> stories = octopusService.getRundownByStoryID(Long.parseLong(id));
+                       result = Response.ok(stories).build();
+               } catch (Exception e) {
+                       result = createErrorResponse(e);
+               }
+               logger.trace("Exit");
+               return result;
+       }
+       
 }
\ No newline at end of file