git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorBellai Ádám <USER\adam.bellai>
Fri, 20 Oct 2017 12:51:48 +0000 (12:51 +0000)
committerBellai Ádám <USER\adam.bellai>
Fri, 20 Oct 2017 12:51:48 +0000 (12:51 +0000)
19 files changed:
client/AudioRecorder/AudioDeviceSelectorForm.Designer.cs
client/AudioRecorder/FileNameForm.Designer.cs
client/AudioRecorder/FileNameForm.cs
client/AudioRecorder/FileNameForm.resx
client/IntegrationTests/PlanAIRTests.cs
client/Maestro/MaestroForm.Metadata.cs
client/Maestro/MaestroForm.Target.cs
client/Maestro/Metadata/MetadataType.cs
client/Maestro/Targets/UNCTargetProcessor.cs
client/MediaCube.sln
client/PlanAIRClient/TrafficAPI.cs
client/PlanAIRClient/TrafficClient.csproj
client/PlanAIRClient/TrafficMetadataType.cs [new file with mode: 0644]
client/PlanAIRClient/Workers/AdvertisementWorker.cs
client/PlanAIRClient/Workers/BroadcastWorker.cs
client/PlanAIRClient/Workers/PromotionalWorker.cs
client/PlanAIRClient/Workers/SegmentWorker.cs
client/PlanAIRClient/Workers/TrafficWorker.cs
server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusDataMiner.java

index dca5611897fc8b5e43fe6609a221ea3d48178ebf..22426b7cdb0fea291e02c1289edc213c260146cf 100644 (file)
         /// </summary>\r
         private void InitializeComponent() {\r
             this.audioDevicesComboBox = new System.Windows.Forms.ComboBox();\r
-            this.okButton = new System.Windows.Forms.Button();\r
             this.label1 = new System.Windows.Forms.Label();\r
-            this.cancelButton = new System.Windows.Forms.Button();\r
             this.groupBox1 = new System.Windows.Forms.GroupBox();\r
-            this.groupBox2 = new System.Windows.Forms.GroupBox();\r
+            this.cancelButton = new System.Windows.Forms.Button();\r
+            this.okButton = new System.Windows.Forms.Button();\r
             this.groupBox1.SuspendLayout();\r
-            this.groupBox2.SuspendLayout();\r
             this.SuspendLayout();\r
             // \r
             // audioDevicesComboBox\r
             this.audioDevicesComboBox.Size = new System.Drawing.Size(359, 21);\r
             this.audioDevicesComboBox.TabIndex = 0;\r
             // \r
-            // okButton\r
-            // \r
-            this.okButton.Location = new System.Drawing.Point(293, 16);\r
-            this.okButton.Name = "okButton";\r
-            this.okButton.Size = new System.Drawing.Size(75, 23);\r
-            this.okButton.TabIndex = 1;\r
-            this.okButton.Text = "OK";\r
-            this.okButton.UseVisualStyleBackColor = true;\r
-            this.okButton.Click += new System.EventHandler(this.okButton_Click);\r
-            // \r
             // label1\r
             // \r
             this.label1.AutoEllipsis = true;\r
             this.label1.TabIndex = 2;\r
             this.label1.Text = "Select audio device";\r
             // \r
-            // cancelButton\r
-            // \r
-            this.cancelButton.Location = new System.Drawing.Point(9, 19);\r
-            this.cancelButton.Name = "cancelButton";\r
-            this.cancelButton.Size = new System.Drawing.Size(75, 23);\r
-            this.cancelButton.TabIndex = 3;\r
-            this.cancelButton.Text = "Cancel";\r
-            this.cancelButton.UseVisualStyleBackColor = true;\r
-            this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click);\r
-            // \r
             // groupBox1\r
             // \r
             this.groupBox1.Controls.Add(this.label1);\r
             this.groupBox1.TabIndex = 4;\r
             this.groupBox1.TabStop = false;\r
             // \r
-            // groupBox2\r
+            // cancelButton\r
             // \r
-            this.groupBox2.Controls.Add(this.okButton);\r
-            this.groupBox2.Controls.Add(this.cancelButton);\r
-            this.groupBox2.Location = new System.Drawing.Point(2, 77);\r
-            this.groupBox2.Name = "groupBox2";\r
-            this.groupBox2.Size = new System.Drawing.Size(376, 45);\r
-            this.groupBox2.TabIndex = 5;\r
-            this.groupBox2.TabStop = false;\r
+            this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;\r
+            this.cancelButton.Location = new System.Drawing.Point(214, 91);\r
+            this.cancelButton.Name = "cancelButton";\r
+            this.cancelButton.Size = new System.Drawing.Size(75, 23);\r
+            this.cancelButton.TabIndex = 3;\r
+            this.cancelButton.Text = "Cancel";\r
+            this.cancelButton.UseVisualStyleBackColor = true;\r
+            this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click);\r
+            // \r
+            // okButton\r
+            // \r
+            this.okButton.Location = new System.Drawing.Point(295, 91);\r
+            this.okButton.Name = "okButton";\r
+            this.okButton.Size = new System.Drawing.Size(75, 23);\r
+            this.okButton.TabIndex = 1;\r
+            this.okButton.Text = "OK";\r
+            this.okButton.UseVisualStyleBackColor = true;\r
+            this.okButton.Click += new System.EventHandler(this.okButton_Click);\r
             // \r
             // AudioDeviceSelectorForm\r
             // \r
+            this.AcceptButton = this.okButton;\r
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
+            this.CancelButton = this.cancelButton;\r
             this.ClientSize = new System.Drawing.Size(381, 127);\r
             this.ControlBox = false;\r
-            this.Controls.Add(this.groupBox2);\r
+            this.Controls.Add(this.okButton);\r
             this.Controls.Add(this.groupBox1);\r
+            this.Controls.Add(this.cancelButton);\r
             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;\r
             this.Name = "AudioDeviceSelectorForm";\r
             this.Text = "AudioRecorder input device selector";\r
             this.groupBox1.ResumeLayout(false);\r
             this.groupBox1.PerformLayout();\r
-            this.groupBox2.ResumeLayout(false);\r
             this.ResumeLayout(false);\r
 \r
         }\r
         #endregion\r
 \r
         private System.Windows.Forms.ComboBox audioDevicesComboBox;\r
-        private System.Windows.Forms.Button okButton;\r
         private System.Windows.Forms.Label label1;\r
-        private System.Windows.Forms.Button cancelButton;\r
         private System.Windows.Forms.GroupBox groupBox1;\r
-        private System.Windows.Forms.GroupBox groupBox2;\r
+        private System.Windows.Forms.Button cancelButton;\r
+        private System.Windows.Forms.Button okButton;\r
     }\r
 }
\ No newline at end of file
index 97207221fb0f3dd291d4cd972576fa803665e004..1789460849cd86e5dbed1d3211cbea738ab27ce8 100644 (file)
         /// the contents of this method with the code editor.\r
         /// </summary>\r
         private void InitializeComponent() {\r
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FileNameForm));\r
             this.octopusIDSelector1 = new OctopusClient.OctopusIDSelector();\r
+            this.buttonCancel = new System.Windows.Forms.Button();\r
             this.SuspendLayout();\r
             // \r
             // octopusIDSelector1\r
             // \r
             this.octopusIDSelector1.BackColor = System.Drawing.Color.White;\r
+            this.octopusIDSelector1.ErrorReporter = null;\r
             this.octopusIDSelector1.IDChangedEvent = null;\r
             this.octopusIDSelector1.Location = new System.Drawing.Point(7, 8);\r
             this.octopusIDSelector1.Margin = new System.Windows.Forms.Padding(10);\r
             this.octopusIDSelector1.Name = "octopusIDSelector1";\r
             this.octopusIDSelector1.Padding = new System.Windows.Forms.Padding(10);\r
-            this.octopusIDSelector1.Size = new System.Drawing.Size(271, 376);\r
+            this.octopusIDSelector1.Size = new System.Drawing.Size(271, 337);\r
             this.octopusIDSelector1.TabIndex = 5;\r
             // \r
+            // buttonCancel\r
+            // \r
+            this.buttonCancel.Anchor = System.Windows.Forms.AnchorStyles.Right;\r
+            this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;\r
+            this.buttonCancel.Location = new System.Drawing.Point(195, 355);\r
+            this.buttonCancel.Name = "buttonCancel";\r
+            this.buttonCancel.Size = new System.Drawing.Size(75, 23);\r
+            this.buttonCancel.TabIndex = 6;\r
+            this.buttonCancel.Text = "Mégse";\r
+            this.buttonCancel.UseVisualStyleBackColor = true;\r
+            // \r
             // FileNameForm\r
             // \r
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
             this.BackColor = System.Drawing.Color.White;\r
+            this.CancelButton = this.buttonCancel;\r
             this.ClientSize = new System.Drawing.Size(276, 383);\r
             this.ControlBox = false;\r
+            this.Controls.Add(this.buttonCancel);\r
             this.Controls.Add(this.octopusIDSelector1);\r
-            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;\r
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;\r
+            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));\r
+            this.MaximizeBox = false;\r
+            this.MinimizeBox = false;\r
             this.Name = "FileNameForm";\r
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;\r
             this.Text = "File Name";\r
             this.Load += new System.EventHandler(this.FileNameForm_Load);\r
             this.ResumeLayout(false);\r
@@ -55,5 +75,6 @@
 \r
         #endregion\r
         private OctopusClient.OctopusIDSelector octopusIDSelector1;\r
+        private System.Windows.Forms.Button buttonCancel;\r
     }\r
 }
\ No newline at end of file
index ce970e47b403a16bdcdde3bf0806f216e0ffebf5..155b1392834a212c5ebd098f309827209a07b9d0 100644 (file)
@@ -9,18 +9,11 @@ namespace AudioRecorder {
         private IMainForm mainForm;\r
         private ISettings settings;\r
         public FileNameForm(IMainForm mainForm, ISettings settings) {\r
-            StartPosition = FormStartPosition.CenterParent;\r
             InitializeComponent();\r
             this.settings = settings;\r
             this.mainForm = mainForm;\r
             octopusIDSelector1.IDChangedEvent = IdChangedEvent;\r
             octopusIDSelector1.Configuration = new OctopusConfiguration() { Address = settings.getAddress(), Password = settings.getPassword(), UserName = settings.getUserName(), Timeout = settings.getTimeout() };\r
-            octopusIDSelector1.KeyDown += (sender, args) => {\r
-                 if (args.KeyCode == Keys.Escape)\r
-                 {\r
-                     Dispose();\r
-                 }\r
-             };\r
         }\r
 \r
         private void IdChangedEvent(String id) {\r
index 29dcb1b3a353ba227f65e11fbe3d6f0766e84292..67a9a7a9d7963010afef86277d8f93f28b5a191e 100644 (file)
   <resheader name="writer">\r
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
   </resheader>\r
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />\r
+  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+    <value>\r
+        AAABAAEAICAAAAEAGACoDAAAFgAAACgAAAAgAAAAQAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARFBgtNUE3QVA4QlE0PEcVGBwB\r
+        AQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r
+        AAAAAAAAAAAAAAAICgwsND48RlZYY3R3hZp3hZpXY3U7RlYsMz4JCgwAAAAAAAAAAAAAAAAAAAAAAAAA\r
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAUjKTE7RVVPWWucq8La4/Hf\r
+        183e18za4/GercRQW2w7RVUkKjMEBAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r
+        AAAAAAAAAAAAAAABAQEYHCI5Q1JETl+EkqbS4PPd0bjDjTK5cwC6dADEji/e0LXU4vSGlKlFT2A6Q1Ma\r
+        HSMBAQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOEBQzPUk+SFhteY3C0ujh\r
+        39bInFK4cgC5dAC8egC+ewC9dwC7dQDIm07h3tTE0+lve48+SVk1PUoPEhUAAAAAAAAAAAAAAAAAAAAA\r
+        AAAAAAAAAAAAAAAAAAAHCAorMj07RlZaZXesu9Th5+vRsXe5dwi5cgC9ewC/fQC/fQC/fAC/ewC7eAC4\r
+        cQC7eAbQr3Ph5uqwv9ZbZ3k7RlYsMz4HCQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAYHCE9R1dLVmeVo7rb\r
+        5vTezJ7Hjx29dwC9egDAfgDAfgC/fQC/fAC/fAC+ewC6dwC6dwC6dgC5cQC9gRrWv5rb5/SYp71MV2g9\r
+        R1caHiQAAAAAAAAAAAAAAAAAAAALDhI/Sllwe4/P3fHj28HQojnJiQDKjQDJjQDFhgDCgwDAgAC/fQC+\r
+        fAC+fAC8eQC5dgC5dwC6dwC7eAC7dgC2bwC/ijbd0r7R3/Jzf5I/SloMDxMAAAAAAAAAAAAODg8sNkNk\r
+        b4Lf6vvaumbJigDJiQDLjgDLjwDMkADHiQDGiADGhwDEhQDBgQC/fQC6dwC5dgC5dwC6dwC6dwC8eAC8\r
+        egC3cQCzbQDKo2Dg6vpnc4UsNkUQEBEAAAAAAAA4Oj0yPU2xwN3gyYzNjQDKjgDKjgDKjQDHiwDLjwDJ\r
+        jADFhwDGhwDHiADGhwDBgwC/fwC/fQC/fQC/fQC/fQC9ewC7egC+fQC7eAC2awDUtoS2xeAzPk48PkIA\r
+        AAAAAABQU1k+SVrO2fHUpzXNkgDMkQLKjADBiQekdw6teQDKjgDGiADGhwDGhwC7hAqebwusdADCgQDC\r
+        fgDBfwDAfQCzeg2YZgiqbwC/fQC6dADEjS7Q2/FAS1xTV10AAAAAAABRVVs/S1zP2e/YrUHOkgDNkwHI\r
+        jAPWzbbN1N+bcxbEiQDJjADFhgDFiQnX1MvGyc+YagvBgwDDgQC/ewC+ghPY2dy/vLuVYQS9fAC8dgDD\r
+        jCvQ2u5BTl9TV14AAAAAAABQVFk/SlvP2e7ctlTTnRLOlALKkQjd4eff7f+jgC3BhgDMjwDFhQDHkBjf\r
+        5/ra5f2ddBvChgDKjQDBfwDEkCrh7v/U3OyYZw28egC+eQDDjCzQ2u5BTV5TV10AAAAAAABQVFk/SlvP\r
+        2e7ctVPWoh7UnxXNlQvb3eDd6v+ifivAhQDNkQDHhwDGjhjf6P3a5v+qgBvIjADMkADGhwDIlSjg7P/S\r
+        2OaaaQy8egC+egDEjSzQ2u5BTV5TV10AAAAAAABQVFk/SlvP2e7ctlTVohzVoh7VqDLc4OPc6f+mhS/F\r
+        jgPRmQfNkgTJjQbZzrHUzLbBigfMkADMkADKiwDIlSjg6//S2eadbgzBggDCgADHkizQ2u5BTV5TV10A\r
+        AAAAAABQVFk/SlvP2e7btVPWoyHZrT3ZsUvd4ufb6f+oijLKmAbQnAnAjgGvfgCmdgGidAKhcAClcAC0\r
+        ewDFiQDLmSjg6//S2eacbgzChADGhQDOnCzQ2u5BTF5TV10AAAAAAABQVFk/SlvO2O3ctlnarkHbsUvZ\r
+        sUve4+nc6f+lhSq3hgC7m0DBtpDLy8PP0tbO0tbHx8K0qYyZejaVYwC3iiHh7P/S2eacbQzBgwDHhwDO\r
+        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\r
+        AA/8AAA//wAAf/+AAf//4Af///gf/w==\r
+</value>\r
+  </data>\r
 </root>
\ No newline at end of file
index d162cb622f412303012aa54fdcd4e521bd13f052..7f6597710a596bf643174f4e26992a0e3cdd6803 100644 (file)
@@ -24,7 +24,7 @@ namespace IntegrationTests {
         [TestMethod]\r
         public void GetSegmentReadyTest() {\r
             //Exercise\r
-            List<Segment> actual = sut.GetSegments(ITEM_ID);\r
+            List<Segment> actual = sut.GetBroadcastSegments(ITEM_ID);\r
 \r
             //Verify\r
             Assert.IsTrue(actual.Count > 0);\r
@@ -36,7 +36,7 @@ namespace IntegrationTests {
             Segment segment = new Segment() { Comment = "Test", Optional = true, TCIn = 1000, TCOut = 2000 };\r
 \r
             //Fixture\r
-            sut.AddSegmentToCopia(ITEM_ID, segment.Comment, segment.TCIn, segment.TCOut, segment.Optional);\r
+            sut.AddSegmentToCopia(ITEM_ID, segment);\r
         }\r
 \r
         [TestMethod]\r
@@ -72,14 +72,5 @@ namespace IntegrationTests {
             //Exercise\r
             List<TrafficItem> actual = sut.GetAdvertisements(STR_PARAM);\r
         }\r
-\r
-        [TestMethod]\r
-        public void MediaOKForAirTest() {\r
-            //Fixture\r
-            const int ITEM_ID = 24;\r
-\r
-            //Exercise\r
-            sut.SetBroadcastOKForAir(ITEM_ID, true);\r
-        }\r
     }\r
 }\r
index 0e490c20175b1575091b7db99caf61817ff7afe6..5e6da4dd1e3078eb4ed43b8eacff88543f43dd6b 100644 (file)
@@ -122,7 +122,7 @@ namespace Maestro {
         private BindingList<MovieSegment> GetMovieSegmentsFromSegments() {\r
             BindingList<MovieSegment> result = new BindingList<MovieSegment>();\r
             TrafficAPI trafficApi = trafficIDSelector.trafficAPI;\r
-            List<Segment> segments = trafficApi.GetSegments(selectedMetadata.VariantID);\r
+            List<Segment> segments = trafficApi.GetBroadcastSegments(selectedMetadata.VariantID);\r
             if (segments != null)\r
                 foreach (Segment segment in segments) {\r
                     MovieSegment movieSegment = segmentConverter.ConvertToMovieSegment(segment);\r
index 81893c5c47c810365fa5bc742bc8cd309e0ac5db..7242a80f288f1589f6d6d5a94bcc9b7220c29894 100644 (file)
@@ -22,7 +22,7 @@ namespace Maestro {
         public TrafficAPI TrafficApi { get; set; }\r
         public int VariantID { get; set; }\r
 \r
-        public MetadataType MetadataKind {get; set;}\r
+        public MetadataType MetadataKind { get; set; }\r
     }\r
 \r
     public partial class MaestroForm {\r
@@ -86,7 +86,7 @@ namespace Maestro {
                     continue;\r
                 if (!EnsureSegments(target)) {\r
                     checkBox.Checked = false;\r
-                    result = null;    \r
+                    result = null;\r
                     break;\r
                 }\r
                 if (!EnsureMetadata(target)) {\r
@@ -107,11 +107,40 @@ namespace Maestro {
         private bool EnsureSegments(Target target) {\r
             if (target.SaveSegments && segments == null) {\r
                 if (selectedMetadata?.VariantID != null && selectedMetadata?.VariantID != 0)\r
-                    segments = trafficIDSelector.trafficAPI.GetSegments(selectedMetadata.VariantID);\r
-                if (segments == null) {\r
-                    MessageBox.Show(String.Format("A {0} folyamat nem futtatható szegmens adatok nélkül.", target.Label));\r
-                    return false;\r
-                }\r
+                    switch (selectedMetadata.Kind) {\r
+                        case MetadataType.TrafficMaterial: {\r
+                                segments = trafficIDSelector.trafficAPI.GetBroadcastSegments(selectedMetadata.VariantID);\r
+                                if (segments == null) {\r
+                                    MessageBox.Show(String.Format("A {0} folyamat nem futtatható szegmens adatok nélkül.", target.Label));\r
+                                    return false;\r
+                                }\r
+                                break;\r
+                            }\r
+                        case MetadataType.TrafficPromo: {\r
+                                segments = trafficIDSelector.trafficAPI.GetPromoSegments(selectedMetadata.ID);\r
+                                if (segments == null) {\r
+                                    MessageBox.Show(String.Format("A {0} folyamat nem futtatható szegmens adatok nélkül.", target.Label));\r
+                                    return false;\r
+                                }\r
+                                if (segments.Count != 1) {\r
+                                    MessageBox.Show(String.Format("A promó anyagnak csak egy szegmens adata lehet."));\r
+                                    return false;\r
+                                }\r
+                                break;\r
+                            }\r
+                        case MetadataType.TrafficAD: {\r
+                                segments = trafficIDSelector.trafficAPI.GetAdvertisementSegments(selectedMetadata.ID);\r
+                                if (segments == null) {\r
+                                    MessageBox.Show(String.Format("A {0} folyamat nem futtatható szegmens adatok nélkül.", target.Label));\r
+                                    return false;\r
+                                }\r
+                                if (segments.Count != 1) {\r
+                                    MessageBox.Show(String.Format("A reklám anyagnak csak egy szegmens adata lehet."));\r
+                                    return false;\r
+                                }\r
+                                break;\r
+                            }\r
+                    }\r
             }\r
             return true;\r
         }\r
@@ -174,7 +203,7 @@ namespace Maestro {
 \r
         private ISourceItem GetSourceItemFromBindingSource(string actual) {\r
             ISourceItem result = null;\r
-            foreach (ISourceItem actualSource in bindingSource) \r
+            foreach (ISourceItem actualSource in bindingSource)\r
                 if (actualSource.Name.Equals(actual))\r
                     result = actualSource;\r
             return result;\r
index 28d932746a6c7a0101dcaf6471bf3a291ede2429..19083e9e0a82445fe25d15aaafb363c267a8752b 100644 (file)
@@ -1,5 +1,7 @@
-namespace Maestro.Metadata {\r
+using TrafficClient;\r
+\r
+namespace Maestro.Metadata {\r
     public enum MetadataType {\r
-        None, OctopusStory, OctopusPlaceHolder, TrafficMaterial, TrafficPromo, TrafficAD \r
+        None, OctopusStory, OctopusPlaceHolder, TrafficMaterial = TrafficMetadataType.TrafficMaterial, TrafficPromo = TrafficMetadataType.TrafficPromo, TrafficAD = TrafficMetadataType.TrafficAD \r
     }\r
 }\r
index f300eb4520705cda476ad6d2ebed1ed6941f88c4..ba409b059b1192590b44e6b5a38f2fd5a53e7c21 100644 (file)
@@ -102,43 +102,15 @@ namespace Maestro.Targets {
 \r
             if (parameters.TargetConfig.CreateMetadata && parameters.ArchiveMetadata != null)\r
                 CreateMetadata();\r
-            if (parameters.TargetConfig.SaveSegments && parameters.Segments != null) {\r
-                switch (parameters.MetadataKind) {\r
-                    case MetadataType.TrafficMaterial:\r
-                            SaveMaterialSegments();\r
-                            break;\r
-                    case MetadataType.TrafficAD:\r
-                            SaveADSegments();\r
-                            break;\r
-                    case MetadataType.TrafficPromo:\r
-                            SavePromoSegments();\r
-                            break;\r
-                }\r
-            }\r
+            if (parameters.TargetConfig.SaveSegments && parameters.Segments != null)\r
+                //eljuthat-e ide a felhasználó, ha a MetadataKind octopus?\r
+                parameters.TrafficApi.SetMaterialInformation(parameters.VariantID, true, (TrafficMetadataType)parameters.MetadataKind, parameters.Segments);\r
             if (parameters.TargetConfig.SendEmailOnSuccess && !String.IsNullOrEmpty(parameters.TargetConfig.SuccessEmailRecipient) && !String.IsNullOrEmpty(parameters.TargetConfig.SuccessEmailPattern))\r
                 SendEmail(parameters.TargetConfig.SuccessEmailRecipient, parameters.TargetConfig.SuccessEmailPattern);\r
             Status = "Kész";\r
             Message = SUCCESS;\r
         }\r
 \r
-        private void SaveMaterialSegments() {\r
-            parameters.TrafficApi.SetBroadcastOKForAir(parameters.VariantID, false);\r
-            SaveSegments();\r
-            parameters.TrafficApi.SetBroadcastOKForAir(parameters.VariantID, true);\r
-        }\r
-\r
-        private void SavePromoSegments() {\r
-            parameters.TrafficApi.SetPromotionalToOkForAir(parameters.VariantID, false);\r
-            SaveSegments();\r
-            parameters.TrafficApi.SetPromotionalToOkForAir(parameters.VariantID, true);\r
-        }\r
-\r
-        private void SaveADSegments() {\r
-            parameters.TrafficApi.SetAdvertisementToOkForAir(parameters.VariantID, false);\r
-            SaveSegments();\r
-            parameters.TrafficApi.SetAdvertisementToOkForAir(parameters.VariantID, true);\r
-        }\r
-\r
         private void UploadNexioMetadata() {\r
             String xml = null;\r
             string name = GetOutputName();\r
@@ -163,14 +135,7 @@ namespace Maestro.Targets {
                 MessageBox.Show(parent, e.Message);\r
             }\r
         }\r
-\r
-        private void SaveSegments() {\r
-            parameters.TrafficApi.DeleteSegments(parameters.VariantID);\r
-            foreach (Segment actual in parameters.Segments) {\r
-                parameters.TrafficApi.AddSegmentToCopia(parameters.VariantID, actual.Comment, actual.TCIn, actual.TCOut, actual.Optional);\r
-            }\r
-        }\r
-\r
+        \r
         protected virtual void AfterExecute() {\r
             Finished = DateTime.Now;\r
             workFlowAction.finished = Finished;\r
index 6553be06de791df3aabab9705093f5dd1a2582ae..195b8e13f022daa5f14f9eee7e434c174415007c 100644 (file)
@@ -1,6 +1,6 @@
 Microsoft Visual Studio Solution File, Format Version 12.00\r
 # Visual Studio 15\r
-VisualStudioVersion = 15.0.26430.15\r
+VisualStudioVersion = 15.0.26430.14\r
 MinimumVisualStudioVersion = 10.0.40219.1\r
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DxPlay", "DxPlay\DxPlay.csproj", "{0B44B3D7-52D7-4C0E-9B1C-F48CEEDA36FE}"\r
 EndProject\r
index 102053abcafc94baf203f1d1475ec88dd889aa33..3a3daaf904e27bbfdf71bfb591214503699c8791 100644 (file)
@@ -12,7 +12,7 @@ namespace TrafficClient {
         private CliFSPReader cliFSPReader;\r
         private SqlConnection connection;\r
         private static Logger logger = LogManager.GetCurrentClassLogger();\r
-        private BroadcastWorker broadvastWorker;\r
+        private BroadcastWorker broadcastWorker;\r
         private PromotionalWorker promoWorker;\r
         private AdvertisementWorker adWorker;\r
         private SegmentWorker segmentWorker;\r
@@ -21,22 +21,48 @@ namespace TrafficClient {
             connectionString = String.Format("{0};User ID={1};Password={2};Connection Timeout={3}", connString, user, password, timeout/1000);\r
             connection = new SqlConnection(connectionString);\r
             cliFSPReader = new CliFSPReader();\r
-            broadvastWorker = new BroadcastWorker(connection, cliFSPReader, errorReporter);\r
+            broadcastWorker = new BroadcastWorker(connection, cliFSPReader, errorReporter);\r
             promoWorker = new PromotionalWorker(connection, cliFSPReader, errorReporter);\r
             adWorker = new AdvertisementWorker(connection, cliFSPReader, errorReporter);\r
             segmentWorker = new SegmentWorker(connection, cliFSPReader, errorReporter);\r
         }\r
 \r
         public List<TrafficItem> GetBroadcasts(string strParam, DateTime? from, DateTime? to, bool missingCopia) {\r
-            return broadvastWorker.GetBroadcasts(strParam, from, to, missingCopia);\r
+            return broadcastWorker.GetBroadcasts(strParam, from, to, missingCopia);\r
         }\r
 \r
         public List<TrafficItemMetadata> GetMaterialMetadata(string strParam) {\r
-            return broadvastWorker.GetBroadcastArchiveMetadata(strParam);\r
+            return broadcastWorker.GetBroadcastArchiveMetadata(strParam);\r
         }\r
 \r
-        public void SetBroadcastOKForAir(int itemID, bool ok) {\r
-            broadvastWorker.SetBroadcastOKForAir(itemID, ok);\r
+        public void SetMaterialInformation(int itemID, bool ready, TrafficMetadataType kind, List<Segment> segments) {\r
+            switch (kind) {\r
+                case TrafficMetadataType.TrafficMaterial: {\r
+                        broadcastWorker.SetBroadcastReadyToAir(itemID, false);\r
+                        segmentWorker.DeleteSegments(itemID);\r
+                        foreach (Segment actualSegment in segments)\r
+                            AddSegmentToCopia(itemID, actualSegment);\r
+                        broadcastWorker.SetBroadcastReadyToAir(itemID, ready);\r
+                        break;\r
+                    }\r
+                case TrafficMetadataType.TrafficAD: {\r
+                        adWorker.SetADReadyToAir(itemID, false);\r
+                        segmentWorker.DeleteSegments(itemID);\r
+                        if (segments != null && segments.Count == 1)\r
+                            AddSegmentToCopia(itemID, segments[0]);\r
+                        broadcastWorker.SetBroadcastReadyToAir(itemID, ready);\r
+                        break;\r
+                    }\r
+                case TrafficMetadataType.TrafficPromo: {\r
+                        promoWorker.SetPromotionalReadyToAir(itemID, false);\r
+                        segmentWorker.DeleteSegments(itemID);\r
+                        //ensurevisible-be rávizsgálni\r
+                        if (segments != null && segments.Count == 1)\r
+                            AddSegmentToCopia(itemID, segments[0]);\r
+                        broadcastWorker.SetBroadcastReadyToAir(itemID, ready);\r
+                        break;\r
+                    }\r
+            }\r
         }\r
 \r
         public List<TrafficItem> GetPromotionals(string strParam) {\r
@@ -47,24 +73,24 @@ namespace TrafficClient {
             return promoWorker.GetPromotionalArchiveMetadata(strParam);\r
         }\r
 \r
-        public void SetPromotionalToOkForAir(int spotID, bool ok) {\r
-            promoWorker.SetPromotionalToOkForAir(spotID, ok);\r
-        }\r
-\r
         public List<TrafficItem> GetAdvertisements(string strParam) {\r
             return adWorker.GetAdvertisements(strParam);\r
         }\r
 \r
-        public void SetAdvertisementToOkForAir(int spotID, bool ok) {\r
-            adWorker.SetAdvertisementToOkForAir(spotID, ok);\r
-        }\r
-\r
         public List<TrafficItemMetadata> GetADMetadata(string strParam) {\r
             return adWorker.GetAdvertisementArchiveMetadata(strParam);\r
         }\r
 \r
-        public List<Segment> GetSegments(int itemID) {\r
-            return segmentWorker.GetSegments(itemID);\r
+        public List<Segment> GetBroadcastSegments(int itemID) {\r
+            return segmentWorker.GetBroadcastSegments(itemID);\r
+        }\r
+\r
+        public List<Segment> GetPromoSegments(string strParam) {\r
+            return segmentWorker.GetPromoSegments(strParam);\r
+        }\r
+\r
+        public List<Segment> GetAdvertisementSegments(string strParam) {\r
+            return segmentWorker.GetAdvertisementSegments(strParam);\r
         }\r
 \r
         public void DeleteSegments(int itemID) {\r
@@ -75,8 +101,8 @@ namespace TrafficClient {
             segmentWorker.DeleteSegment(itemID, segmentID);\r
         }\r
 \r
-        public void AddSegmentToCopia(int itemID, string strParam, long tcIn, long tcOut, bool optional) {\r
-            segmentWorker.AddSegmentToCopia(itemID, strParam, tcIn, tcOut, optional);\r
+        public void AddSegmentToCopia(int itemID, Segment segment) {\r
+            segmentWorker.AddSegmentToCopia(itemID, segment);\r
         }\r
     }\r
 }\r
index 4367e54ad05f5f8dc22433fb43a43d187a192a8d..37a7236e34632854dadac4a63fb58d5d52d2c768 100644 (file)
@@ -86,6 +86,7 @@
     <Reference Include="System.Xml" />\r
   </ItemGroup>\r
   <ItemGroup>\r
+    <Compile Include="TrafficMetadataType.cs" />\r
     <Compile Include="Workers\AdvertisementWorker.cs" />\r
     <Compile Include="Workers\BroadcastWorker.cs" />\r
     <Compile Include="clIFsp_EC_MAMAdvertismentsResult.cs" />\r
diff --git a/client/PlanAIRClient/TrafficMetadataType.cs b/client/PlanAIRClient/TrafficMetadataType.cs
new file mode 100644 (file)
index 0000000..32dc86a
--- /dev/null
@@ -0,0 +1,5 @@
+namespace TrafficClient {\r
+    public enum TrafficMetadataType {\r
+        TrafficMaterial, TrafficPromo, TrafficAD\r
+    }\r
+}\r
index 692574db0def9aa4a31dd283c04eb251bdb9ddcb..893e9419a95a010ae4da488dbef3e0a501b9e554 100644 (file)
@@ -38,19 +38,6 @@ namespace TrafficClient.Workers {
             return result;\r
         }\r
 \r
-        private List<clIFsp_EC_MAMAdvertismentResult> ExecuteAndReadAdvertisement(SqlCommand cmd) {\r
-            List<clIFsp_EC_MAMAdvertismentResult> result = null;\r
-            using (SqlDataReader reader = cmd.ExecuteReader()) {\r
-                while (reader.Read()) {\r
-                    if (result == null)\r
-                        result = new List<clIFsp_EC_MAMAdvertismentResult>();\r
-                    clIFsp_EC_MAMAdvertismentResult item = cliFSPReader.ToclIFsp_MAMAdvertisementResult(reader);\r
-                    result.Add(item);\r
-                }\r
-            }\r
-            return result;\r
-        }\r
-\r
         private List<TrafficItem> ProcessMamAdvertismentResult(List<clIFsp_EC_MAMAdvertismentResult> sqlResult) {\r
             if (sqlResult == null)\r
                 return null;\r
@@ -66,7 +53,7 @@ namespace TrafficClient.Workers {
             return result;\r
         }\r
 \r
-        public void SetAdvertisementToOkForAir(int spotID, bool ok) {\r
+        public void SetADReadyToAir(int spotID, bool ok) {\r
             try {\r
                 TryConnect();\r
                 int options = ok ? 1 : 0;\r
index aff803ea3b0c8d290204c407a46e7e073fcdb033..64eccb268c31439c231029975d41a5646fd4dea5 100644 (file)
@@ -124,7 +124,7 @@ namespace TrafficClient.Workers {
             return result;\r
         }\r
 \r
-        public void SetBroadcastOKForAir(int itemID, bool ok) {\r
+        public void SetBroadcastReadyToAir(int itemID, bool ok) {\r
             try {\r
                 TryConnect();\r
                 int options = ok ? 1 : 0;\r
index b6717670cda50e2343e13896b1293e0f9020aea9..f8f18ce0e5abd57a04fe4515de89ee4b6dfd5d63 100644 (file)
@@ -37,44 +37,8 @@ namespace TrafficClient.Workers {
             }\r
             return result;\r
         }\r
-\r
-        private List<TrafficItem> ProcessMamPromotionalResult(List<clIFsp_EC_MAMPromotionalResult> sqlResult) {\r
-            if (sqlResult == null)\r
-                return null;\r
-            List<TrafficItem> result = new List<TrafficItem>();\r
-            foreach (clIFsp_EC_MAMPromotionalResult actual in sqlResult) {\r
-                TrafficItem actualObject = new TrafficItem() {\r
-                    MediaID = actual.t_MediaID,\r
-                    EpisodeTitle = actual.v_Title,\r
-                    Title = actual.v_ProgTitle,\r
-                    Episode = actual.v_Episode.HasValue ? actual.v_Episode.Value : (short)-1,\r
-                    NextBroadcastDate = actual.t_PSStart,\r
-                    VariantID = actual.t_SpotID\r
-                };\r
-                result.Add(actualObject);\r
-            }\r
-            return result;\r
-        }\r
-\r
-        private List<clIFsp_EC_MAMPromotionalResult> ExecuteAndReadPromotionals(SqlCommand cmd) {\r
-            List<clIFsp_EC_MAMPromotionalResult> result = null;\r
-            try {\r
-                using (SqlDataReader reader = cmd.ExecuteReader()) {\r
-                    while (reader.Read()) {\r
-                        if (result == null)\r
-                            result = new List<clIFsp_EC_MAMPromotionalResult>();\r
-                        clIFsp_EC_MAMPromotionalResult item = cliFSPReader.ToclIFsp_MAMPromotionalResult(reader);\r
-                        result.Add(item);\r
-                    }\r
-                }\r
-            }\r
-            catch (Exception e) {\r
-                errorReporter?.Invoke(DateTime.Now, "Error", String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
-            }\r
-            return result;\r
-        }\r
-\r
-        public void SetPromotionalToOkForAir(int spotID, bool ok) {\r
+        \r
+        public void SetPromotionalReadyToAir(int spotID, bool ok) {\r
             try {\r
                 TryConnect();\r
                 int options = ok ? 1 : 0;\r
index 40326e00c0dd44cf9ba13777f6cc646083ef6dc5..a40e081851ba1972e994c84161a996892636f39c 100644 (file)
@@ -10,11 +10,11 @@ namespace TrafficClient.Workers {
 \r
         private static Logger logger = LogManager.GetCurrentClassLogger();\r
 \r
-        public SegmentWorker(SqlConnection connection, CliFSPReader cliFSPReader, TrafficErrorReporterDelegate errorReporter) : \r
+        public SegmentWorker(SqlConnection connection, CliFSPReader cliFSPReader, TrafficErrorReporterDelegate errorReporter) :\r
             base(connection, cliFSPReader, errorReporter) {\r
         }\r
 \r
-        public List<Segment> GetSegments(int itemID) {\r
+        public List<Segment> GetBroadcastSegments(int itemID) {\r
             List<Segment> result = null;\r
             try {\r
                 TryConnect();\r
@@ -59,6 +59,86 @@ namespace TrafficClient.Workers {
             return result;\r
         }\r
 \r
+        public List<Segment> GetPromoSegments(string strParam) {\r
+            List<Segment> result = null;\r
+            List<clIFsp_EC_MAMPromotionalResult> sqlResult = null;\r
+            try {\r
+                TryConnect();\r
+                using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
+                    cmd.CommandType = CommandType.StoredProcedure;\r
+                    cmd.Parameters.AddWithValue("@Operation", 2001);\r
+                    cmd.Parameters.AddWithValue("@@@Options", 16);\r
+                    cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value);\r
+                    cmd.Parameters.AddWithValue("@@StrParam1", strParam);\r
+                    sqlResult = ExecuteAndReadPromotionals(cmd);\r
+                    result = GetPromoSegmentFromResult(sqlResult);\r
+                }\r
+            }\r
+            catch (Exception e) {\r
+                logger.Error(e.Message);\r
+                errorReporter?.Invoke(DateTime.Now, "Error", String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
+            }\r
+            finally {\r
+                connection.Close();\r
+            }\r
+            return result;\r
+        }\r
+\r
+        private List<Segment> GetPromoSegmentFromResult(List<clIFsp_EC_MAMPromotionalResult> sqlResult) {\r
+            if (sqlResult == null)\r
+                return null;\r
+            //egy promónak egy szegmense van\r
+            if (!sqlResult[0].t_TcIn.HasValue || !sqlResult[0].t_TcOut.HasValue)\r
+                return null;\r
+            List<Segment> result = new List<Segment>();\r
+            Segment segment = new Segment() {\r
+                TCIn = sqlResult[0].t_TcIn.HasValue ? (long)sqlResult[0].t_TcIn.Value : 0,\r
+                TCOut = sqlResult[0].t_TcOut.HasValue ? (long)sqlResult[0].t_TcOut.Value : 0,\r
+            };\r
+            result.Add(segment);\r
+            return result;\r
+        }\r
+\r
+        public List<Segment> GetAdvertisementSegments(string strParam) {\r
+            List<Segment> result = null;\r
+            List<clIFsp_EC_MAMAdvertismentResult> sqlResult = null;\r
+            try {\r
+                TryConnect();\r
+                using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
+                    cmd.CommandType = CommandType.StoredProcedure;\r
+                    cmd.Parameters.AddWithValue("@Operation", 3001);\r
+                    cmd.Parameters.AddWithValue("@@@Options", 4);\r
+                    cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value);\r
+                    cmd.Parameters.AddWithValue("@@StrParam1", strParam);\r
+                    sqlResult = ExecuteAndReadAdvertisement(cmd);\r
+                    result = GetAdvertisementSegmentFromResult(sqlResult);\r
+                }\r
+            }\r
+            catch (Exception e) {\r
+                logger.Error(e.Message);\r
+                errorReporter?.Invoke(DateTime.Now, "Error", String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
+            }\r
+            finally {\r
+                connection.Close();\r
+            }\r
+            return result;\r
+        }\r
+\r
+        private List<Segment> GetAdvertisementSegmentFromResult(List<clIFsp_EC_MAMAdvertismentResult> sqlResult) {\r
+            if (sqlResult == null)\r
+                return null;\r
+            List<Segment> result = new List<Segment>();\r
+            //egy reklémnak egy szegmense van\r
+            if (!sqlResult[0].t_TcIn.HasValue || !sqlResult[0].t_TcOut.HasValue)\r
+                return null;\r
+            Segment segment = new Segment() {\r
+                TCIn = (long)sqlResult[0].t_TcIn.Value,\r
+                TCOut = (long)sqlResult[0].t_TcOut.Value,\r
+            };\r
+            result.Add(segment);\r
+            return result;\r
+        }\r
+\r
         public void DeleteSegments(int itemID) {\r
             try {\r
                 TryConnect();\r
@@ -102,20 +182,20 @@ namespace TrafficClient.Workers {
             }\r
         }\r
 \r
-        public void AddSegmentToCopia(int itemID, string strParam, long tcIn, long tcOut, bool optional) {\r
-            //string strparam = String.IsNullOrEmpty(strParam) ? string.Empty : strParam;\r
-            object strparam = strParam;\r
-            if (String.IsNullOrEmpty(strParam))\r
+        //string strParam, long tcIn, long tcOut, bool optional\r
+        public void AddSegmentToCopia(int itemID, Segment segment) {\r
+            object strparam = segment.Comment;\r
+            if (String.IsNullOrEmpty(segment.Comment))\r
                 strparam = DBNull.Value;\r
             try {\r
                 TryConnect();\r
                 using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
-                    int optionalParam = optional ? 1 : 0;\r
+                    int optionalParam = segment.Optional ? 1 : 0;\r
                     cmd.CommandType = CommandType.StoredProcedure;\r
                     cmd.Parameters.AddWithValue("@Operation", 1115);\r
                     cmd.Parameters.AddWithValue("@@ItemID", itemID);\r
-                    cmd.Parameters.AddWithValue("@@IntParam1", tcIn);\r
-                    cmd.Parameters.AddWithValue("@@IntParam2", tcOut);\r
+                    cmd.Parameters.AddWithValue("@@IntParam1", segment.TCIn);\r
+                    cmd.Parameters.AddWithValue("@@IntParam2", segment.TCOut);\r
                     cmd.Parameters.AddWithValue("@@StrParam1", strparam);\r
                     cmd.Parameters.AddWithValue("@@StrParam2", DBNull.Value);\r
                     cmd.Parameters.AddWithValue("@@@Options", optionalParam);\r
index b127b29f7078d9d410297e563417a6f97965bea8..e4b7d811dbf1d3eccf430d069565c80e9ed8b772 100644 (file)
@@ -22,5 +22,54 @@ namespace TrafficClient.Workers {
             }\r
         }\r
 \r
+\r
+        protected List<clIFsp_EC_MAMPromotionalResult> ExecuteAndReadPromotionals(SqlCommand cmd) {\r
+            List<clIFsp_EC_MAMPromotionalResult> result = null;\r
+            try {\r
+                using (SqlDataReader reader = cmd.ExecuteReader()) {\r
+                    while (reader.Read()) {\r
+                        if (result == null)\r
+                            result = new List<clIFsp_EC_MAMPromotionalResult>();\r
+                        clIFsp_EC_MAMPromotionalResult item = cliFSPReader.ToclIFsp_MAMPromotionalResult(reader);\r
+                        result.Add(item);\r
+                    }\r
+                }\r
+            }\r
+            catch (Exception e) {\r
+                errorReporter?.Invoke(DateTime.Now, "Error", String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
+            }\r
+            return result;\r
+        }\r
+\r
+        protected List<clIFsp_EC_MAMAdvertismentResult> ExecuteAndReadAdvertisement(SqlCommand cmd) {\r
+            List<clIFsp_EC_MAMAdvertismentResult> result = null;\r
+            using (SqlDataReader reader = cmd.ExecuteReader()) {\r
+                while (reader.Read()) {\r
+                    if (result == null)\r
+                        result = new List<clIFsp_EC_MAMAdvertismentResult>();\r
+                    clIFsp_EC_MAMAdvertismentResult item = cliFSPReader.ToclIFsp_MAMAdvertisementResult(reader);\r
+                    result.Add(item);\r
+                }\r
+            }\r
+            return result;\r
+        }\r
+\r
+        protected List<TrafficItem> ProcessMamPromotionalResult(List<clIFsp_EC_MAMPromotionalResult> sqlResult) {\r
+            if (sqlResult == null)\r
+                return null;\r
+            List<TrafficItem> result = new List<TrafficItem>();\r
+            foreach (clIFsp_EC_MAMPromotionalResult actual in sqlResult) {\r
+                TrafficItem actualObject = new TrafficItem() {\r
+                    MediaID = actual.t_MediaID,\r
+                    EpisodeTitle = actual.v_Title,\r
+                    Title = actual.v_ProgTitle,\r
+                    Episode = actual.v_Episode.HasValue ? actual.v_Episode.Value : (short)-1,\r
+                    NextBroadcastDate = actual.t_PSStart,\r
+                    VariantID = actual.t_SpotID\r
+                };\r
+                result.Add(actualObject);\r
+            }\r
+            return result;\r
+        }\r
     }\r
 }\r
index c57615e57dbc8c4241547272e3fb7eaed47db49a..bfd3fbf255b3d89426ff8d0aa9555e1ec2ffb8fc 100644 (file)
@@ -111,8 +111,8 @@ public class OctopusDataMiner implements Runnable {
                return result;\r
        }\r
 \r
-       private void checkAndStoreStory(BasicDBObject modifiedStory, Date lastUpdateTime, long storyID, int position, long referenceID, String referenceName,\r
-                       DBCollection collection) {\r
+       private void checkAndStoreStory(BasicDBObject modifiedStory, Date lastUpdateTime, long storyID, int position,\r
+                       long referenceID, String referenceName, DBCollection collection) {\r
                boolean isContains = storyIDs.contains(storyID);\r
                if (!isContains)\r
                        storyIDs.add(storyID);\r
@@ -128,31 +128,61 @@ public class OctopusDataMiner implements Runnable {
                        modifiedStory.append(referenceName, references);\r
                }\r
                references.add(new BasicDBObject(ID, referenceID).append(POSITION, position));\r
-               BasicDBObject script = (BasicDBObject) modifiedStory.get("script");\r
-               String scriptContent = new String();\r
-               if(script!= null && !script.isEmpty()) {\r
+               String scriptContent = GetScriptContent(modifiedStory);\r
+               modifiedStory.append("script_content", scriptContent);\r
+               logger.info(String.format(SAVING_STORY_D, storyID));\r
+               collection.save(modifiedStory);\r
+       }\r
+\r
+       private String GetScriptContent(BasicDBObject story) {\r
+               BasicDBObject script = (BasicDBObject) story.get("script");\r
+               String scriptContent = "text: ";\r
+               if (script != null && !script.isEmpty()) {\r
                        BasicDBList body = (BasicDBList) script.get("body");\r
-                       if(body != null && !body.isEmpty()){\r
-                               for(Object actualBody  : body) {\r
+                       if (body != null && !body.isEmpty())\r
+                               for (Object actualBody : body) {\r
                                        BasicDBObject actualDBBody = (BasicDBObject) actualBody;\r
-                                       BasicDBList content = (BasicDBList)actualDBBody.get("content");\r
-                                       if(content != null && !content.isEmpty()){\r
-                                               for(Object actualContent : content) {\r
+                                       BasicDBList contents = (BasicDBList) actualDBBody.get("content");\r
+                                       if (contents != null && !contents.isEmpty())\r
+                                               for (Object actualContent : contents) {\r
                                                        BasicDBObject actualDBContent = (BasicDBObject) actualContent;\r
-                                                       String text = actualDBContent.getString("text");\r
-                                                       if(text != null)\r
-                                                               scriptContent += text + "\n";\r
+                                                       scriptContent += GetContent(actualDBContent);\r
                                                }\r
-                                               \r
-                                       }\r
-                                       \r
                                }\r
+               }\r
+               return scriptContent;\r
+       }\r
+\r
+       private String GetContent(BasicDBObject actualDBContent) {\r
+               String type = actualDBContent.getString("type");\r
+               String scriptContent = "";\r
+               switch (type) {\r
+               case "text": {\r
+                       String text = actualDBContent.getString("text");\r
+                       if (text != null)\r
+                               scriptContent += String.format("%s: %s\r\n", type, text.replaceAll("\n", "\r\n"));\r
+                       break;\r
+               }\r
+               case "mos": {\r
+                       BasicDBObject mosObject = (BasicDBObject) actualDBContent.get("object");\r
+                       if (mosObject != null && !mosObject.isEmpty()) {\r
+                               String objID = mosObject.getString("objId");\r
+                               scriptContent += String.format("%s %s\r\n", type.toUpperCase(), objID);\r
                        }\r
-                       \r
+                       break;\r
                }\r
-               modifiedStory.append("script_content", scriptContent);\r
-               logger.info(String.format(SAVING_STORY_D, storyID));\r
-               collection.save(modifiedStory);\r
+               default: {\r
+                       BasicDBList innerContents = (BasicDBList) actualDBContent.get("content");\r
+                       if (innerContents != null && !innerContents.isEmpty())\r
+                               for (Object actualInnerContent : innerContents) {\r
+                                       BasicDBObject actualDBInnerContent = (BasicDBObject) actualInnerContent;\r
+                                       if (actualDBInnerContent != null && actualDBInnerContent.isEmpty())\r
+                                               scriptContent += GetContent(actualDBInnerContent);\r
+                               }\r
+                       break;\r
+               }\r
+               }\r
+               return scriptContent;\r
        }\r
 \r
        public void clear() {\r
@@ -292,7 +322,7 @@ public class OctopusDataMiner implements Runnable {
                if (resultObject != null)\r
                        result = asDBList(resultObject, RESULT);\r
 \r
-               /*teszt*/\r
+               /* teszt */\r
                List<BasicDBObject> list = NoSQLUtils.asList(result);\r
                for (BasicDBObject actual : list) {\r
                        String fullName = concatParentsToStoryFolder(actual, actual.getString("name"));\r
@@ -458,12 +488,14 @@ public class OctopusDataMiner implements Runnable {
                List<BasicDBObject> slugsList = NoSQLUtils.asList(slugs);\r
                for (BasicDBObject slug : slugsList) {\r
                        if (slug.containsKey(STORY))\r
-                               storeStory((BasicDBObject) slug.get(STORY), slug.getInt(POSITION), referenceID, RUNDOWN2, lastUpdateTime);\r
+                               storeStory((BasicDBObject) slug.get(STORY), slug.getInt(POSITION), referenceID, RUNDOWN2,\r
+                                               lastUpdateTime);\r
                }\r
                logger.trace(EXIT);\r
        }\r
 \r
-       private void storeStory(BasicDBObject story, int position, long referenceID, String referenceName, Date lastUpdateTime) {\r
+       private void storeStory(BasicDBObject story, int position, long referenceID, String referenceName,\r
+                       Date lastUpdateTime) {\r
                logger.trace(ENTER);\r
                try {\r
                        // a run v�g�n lek�rj�k az �sszes storyID-t az adatb�zisb�l\r
@@ -480,7 +512,8 @@ public class OctopusDataMiner implements Runnable {
                         * collection.findOne(new BasicDBObject(ID, storyID), new\r
                         * BasicDBObject(_ID, 1)); collection.remove(modifiedStory); } else\r
                         */\r
-                       checkAndStoreStory(modifiedStory, lastUpdateTime, storyID, position, referenceID, referenceName, collection);\r
+                       checkAndStoreStory(modifiedStory, lastUpdateTime, storyID, position, referenceID, referenceName,\r
+                                       collection);\r
                } catch (Exception e) {\r
                        logger.error(e);\r
                        throw e;\r
@@ -510,7 +543,8 @@ public class OctopusDataMiner implements Runnable {
                List<BasicDBObject> storyFolderList = NoSQLUtils.asList(storyFolders);\r
                int idx = 1;\r
                for (BasicDBObject storyFolder : storyFolderList) {\r
-                       logger.info(String.format(CHECKING_STORY_FOLDER_S_D_D, storyFolder.getLong(ID), storyFolderList.size(), idx));\r
+                       logger.info(\r
+                                       String.format(CHECKING_STORY_FOLDER_S_D_D, storyFolder.getLong(ID), storyFolderList.size(), idx));\r
                        storeStoryFolder(storyFolder, lastUpdateTime);\r
                        int progress = 50 + (idx * 50 / storyFolderList.size());\r
                        if (progress - progressEvent.getProgress() > 0) {\r
@@ -522,7 +556,8 @@ public class OctopusDataMiner implements Runnable {
                logger.trace(EXIT);\r
        }\r
 \r
-       private void storeStoryFolderStories(BasicDBList stories, long storyFolderID, long referenceID, Date lastUpdateTime) {\r
+       private void storeStoryFolderStories(BasicDBList stories, long storyFolderID, long referenceID,\r
+                       Date lastUpdateTime) {\r
                logger.trace(ENTER);\r
                List<BasicDBObject> list = NoSQLUtils.asList(stories);\r
                for (BasicDBObject story : list)\r