From 111334c20ec32f9e511cca357e4f8e0759875944 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bellai=20=C3=81d=C3=A1m?= Date: Fri, 20 Oct 2017 12:51:48 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C30658 --- .../AudioDeviceSelectorForm.Designer.cs | 64 +++++------- client/AudioRecorder/FileNameForm.Designer.cs | 25 ++++- client/AudioRecorder/FileNameForm.cs | 7 -- client/AudioRecorder/FileNameForm.resx | 60 ++++++++++++ client/IntegrationTests/PlanAIRTests.cs | 13 +-- client/Maestro/MaestroForm.Metadata.cs | 2 +- client/Maestro/MaestroForm.Target.cs | 45 +++++++-- client/Maestro/Metadata/MetadataType.cs | 6 +- client/Maestro/Targets/UNCTargetProcessor.cs | 43 +------- client/MediaCube.sln | 2 +- client/PlanAIRClient/TrafficAPI.cs | 62 ++++++++---- client/PlanAIRClient/TrafficClient.csproj | 1 + client/PlanAIRClient/TrafficMetadataType.cs | 5 + .../Workers/AdvertisementWorker.cs | 15 +-- .../PlanAIRClient/Workers/BroadcastWorker.cs | 2 +- .../Workers/PromotionalWorker.cs | 40 +------- client/PlanAIRClient/Workers/SegmentWorker.cs | 98 +++++++++++++++++-- client/PlanAIRClient/Workers/TrafficWorker.cs | 49 ++++++++++ .../commons/octopus/OctopusDataMiner.java | 87 +++++++++++----- 19 files changed, 412 insertions(+), 214 deletions(-) create mode 100644 client/PlanAIRClient/TrafficMetadataType.cs diff --git a/client/AudioRecorder/AudioDeviceSelectorForm.Designer.cs b/client/AudioRecorder/AudioDeviceSelectorForm.Designer.cs index dca56118..22426b7c 100644 --- a/client/AudioRecorder/AudioDeviceSelectorForm.Designer.cs +++ b/client/AudioRecorder/AudioDeviceSelectorForm.Designer.cs @@ -24,13 +24,11 @@ /// private void InitializeComponent() { this.audioDevicesComboBox = new System.Windows.Forms.ComboBox(); - this.okButton = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); - this.cancelButton = new System.Windows.Forms.Button(); this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.cancelButton = new System.Windows.Forms.Button(); + this.okButton = new System.Windows.Forms.Button(); this.groupBox1.SuspendLayout(); - this.groupBox2.SuspendLayout(); this.SuspendLayout(); // // audioDevicesComboBox @@ -42,16 +40,6 @@ this.audioDevicesComboBox.Size = new System.Drawing.Size(359, 21); this.audioDevicesComboBox.TabIndex = 0; // - // okButton - // - this.okButton.Location = new System.Drawing.Point(293, 16); - this.okButton.Name = "okButton"; - this.okButton.Size = new System.Drawing.Size(75, 23); - this.okButton.TabIndex = 1; - this.okButton.Text = "OK"; - this.okButton.UseVisualStyleBackColor = true; - this.okButton.Click += new System.EventHandler(this.okButton_Click); - // // label1 // this.label1.AutoEllipsis = true; @@ -62,16 +50,6 @@ this.label1.TabIndex = 2; this.label1.Text = "Select audio device"; // - // cancelButton - // - this.cancelButton.Location = new System.Drawing.Point(9, 19); - this.cancelButton.Name = "cancelButton"; - this.cancelButton.Size = new System.Drawing.Size(75, 23); - this.cancelButton.TabIndex = 3; - this.cancelButton.Text = "Cancel"; - this.cancelButton.UseVisualStyleBackColor = true; - this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); - // // groupBox1 // this.groupBox1.Controls.Add(this.label1); @@ -82,30 +60,43 @@ this.groupBox1.TabIndex = 4; this.groupBox1.TabStop = false; // - // groupBox2 + // cancelButton // - this.groupBox2.Controls.Add(this.okButton); - this.groupBox2.Controls.Add(this.cancelButton); - this.groupBox2.Location = new System.Drawing.Point(2, 77); - this.groupBox2.Name = "groupBox2"; - this.groupBox2.Size = new System.Drawing.Size(376, 45); - this.groupBox2.TabIndex = 5; - this.groupBox2.TabStop = false; + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.cancelButton.Location = new System.Drawing.Point(214, 91); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size(75, 23); + this.cancelButton.TabIndex = 3; + this.cancelButton.Text = "Cancel"; + this.cancelButton.UseVisualStyleBackColor = true; + this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); + // + // okButton + // + this.okButton.Location = new System.Drawing.Point(295, 91); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(75, 23); + this.okButton.TabIndex = 1; + this.okButton.Text = "OK"; + this.okButton.UseVisualStyleBackColor = true; + this.okButton.Click += new System.EventHandler(this.okButton_Click); // // AudioDeviceSelectorForm // + this.AcceptButton = this.okButton; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.cancelButton; this.ClientSize = new System.Drawing.Size(381, 127); this.ControlBox = false; - this.Controls.Add(this.groupBox2); + this.Controls.Add(this.okButton); this.Controls.Add(this.groupBox1); + this.Controls.Add(this.cancelButton); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; this.Name = "AudioDeviceSelectorForm"; this.Text = "AudioRecorder input device selector"; this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); - this.groupBox2.ResumeLayout(false); this.ResumeLayout(false); } @@ -113,10 +104,9 @@ #endregion private System.Windows.Forms.ComboBox audioDevicesComboBox; - private System.Windows.Forms.Button okButton; private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button cancelButton; private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Button okButton; } } \ No newline at end of file diff --git a/client/AudioRecorder/FileNameForm.Designer.cs b/client/AudioRecorder/FileNameForm.Designer.cs index 97207221..17894608 100644 --- a/client/AudioRecorder/FileNameForm.Designer.cs +++ b/client/AudioRecorder/FileNameForm.Designer.cs @@ -23,30 +23,50 @@ /// the contents of this method with the code editor. /// private void InitializeComponent() { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FileNameForm)); this.octopusIDSelector1 = new OctopusClient.OctopusIDSelector(); + this.buttonCancel = new System.Windows.Forms.Button(); this.SuspendLayout(); // // octopusIDSelector1 // this.octopusIDSelector1.BackColor = System.Drawing.Color.White; + this.octopusIDSelector1.ErrorReporter = null; this.octopusIDSelector1.IDChangedEvent = null; this.octopusIDSelector1.Location = new System.Drawing.Point(7, 8); this.octopusIDSelector1.Margin = new System.Windows.Forms.Padding(10); this.octopusIDSelector1.Name = "octopusIDSelector1"; this.octopusIDSelector1.Padding = new System.Windows.Forms.Padding(10); - this.octopusIDSelector1.Size = new System.Drawing.Size(271, 376); + this.octopusIDSelector1.Size = new System.Drawing.Size(271, 337); this.octopusIDSelector1.TabIndex = 5; // + // buttonCancel + // + this.buttonCancel.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(195, 355); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(75, 23); + this.buttonCancel.TabIndex = 6; + this.buttonCancel.Text = "Mégse"; + this.buttonCancel.UseVisualStyleBackColor = true; + // // FileNameForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.White; + this.CancelButton = this.buttonCancel; this.ClientSize = new System.Drawing.Size(276, 383); this.ControlBox = false; + this.Controls.Add(this.buttonCancel); this.Controls.Add(this.octopusIDSelector1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; this.Name = "FileNameForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "File Name"; this.Load += new System.EventHandler(this.FileNameForm_Load); this.ResumeLayout(false); @@ -55,5 +75,6 @@ #endregion private OctopusClient.OctopusIDSelector octopusIDSelector1; + private System.Windows.Forms.Button buttonCancel; } } \ No newline at end of file diff --git a/client/AudioRecorder/FileNameForm.cs b/client/AudioRecorder/FileNameForm.cs index ce970e47..155b1392 100644 --- a/client/AudioRecorder/FileNameForm.cs +++ b/client/AudioRecorder/FileNameForm.cs @@ -9,18 +9,11 @@ namespace AudioRecorder { private IMainForm mainForm; private ISettings settings; public FileNameForm(IMainForm mainForm, ISettings settings) { - StartPosition = FormStartPosition.CenterParent; InitializeComponent(); this.settings = settings; this.mainForm = mainForm; octopusIDSelector1.IDChangedEvent = IdChangedEvent; octopusIDSelector1.Configuration = new OctopusConfiguration() { Address = settings.getAddress(), Password = settings.getPassword(), UserName = settings.getUserName(), Timeout = settings.getTimeout() }; - octopusIDSelector1.KeyDown += (sender, args) => { - if (args.KeyCode == Keys.Escape) - { - Dispose(); - } - }; } private void IdChangedEvent(String id) { diff --git a/client/AudioRecorder/FileNameForm.resx b/client/AudioRecorder/FileNameForm.resx index 29dcb1b3..67a9a7a9 100644 --- a/client/AudioRecorder/FileNameForm.resx +++ b/client/AudioRecorder/FileNameForm.resx @@ -117,4 +117,64 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + AAABAAEAICAAAAEAGACoDAAAFgAAACgAAAAgAAAAQAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARFBgtNUE3QVA4QlE0PEcVGBwB + AQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAICgwsND48RlZYY3R3hZp3hZpXY3U7RlYsMz4JCgwAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAUjKTE7RVVPWWucq8La4/Hf + 183e18za4/GercRQW2w7RVUkKjMEBAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAABAQEYHCI5Q1JETl+EkqbS4PPd0bjDjTK5cwC6dADEji/e0LXU4vSGlKlFT2A6Q1Ma + HSMBAQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOEBQzPUk+SFhteY3C0ujh + 39bInFK4cgC5dAC8egC+ewC9dwC7dQDIm07h3tTE0+lve48+SVk1PUoPEhUAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAHCAorMj07RlZaZXesu9Th5+vRsXe5dwi5cgC9ewC/fQC/fQC/fAC/ewC7eAC4 + cQC7eAbQr3Ph5uqwv9ZbZ3k7RlYsMz4HCQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAYHCE9R1dLVmeVo7rb + 5vTezJ7Hjx29dwC9egDAfgDAfgC/fQC/fAC/fAC+ewC6dwC6dwC6dgC5cQC9gRrWv5rb5/SYp71MV2g9 + R1caHiQAAAAAAAAAAAAAAAAAAAALDhI/Sllwe4/P3fHj28HQojnJiQDKjQDJjQDFhgDCgwDAgAC/fQC+ + fAC+fAC8eQC5dgC5dwC6dwC7eAC7dgC2bwC/ijbd0r7R3/Jzf5I/SloMDxMAAAAAAAAAAAAODg8sNkNk + b4Lf6vvaumbJigDJiQDLjgDLjwDMkADHiQDGiADGhwDEhQDBgQC/fQC6dwC5dgC5dwC6dwC6dwC8eAC8 + egC3cQCzbQDKo2Dg6vpnc4UsNkUQEBEAAAAAAAA4Oj0yPU2xwN3gyYzNjQDKjgDKjgDKjQDHiwDLjwDJ + jADFhwDGhwDHiADGhwDBgwC/fwC/fQC/fQC/fQC/fQC9ewC7egC+fQC7eAC2awDUtoS2xeAzPk48PkIA + AAAAAABQU1k+SVrO2fHUpzXNkgDMkQLKjADBiQekdw6teQDKjgDGiADGhwDGhwC7hAqebwusdADCgQDC + fgDBfwDAfQCzeg2YZgiqbwC/fQC6dADEjS7Q2/FAS1xTV10AAAAAAABRVVs/S1zP2e/YrUHOkgDNkwHI + jAPWzbbN1N+bcxbEiQDJjADFhgDFiQnX1MvGyc+YagvBgwDDgQC/ewC+ghPY2dy/vLuVYQS9fAC8dgDD + jCvQ2u5BTl9TV14AAAAAAABQVFk/SlvP2e7ctlTTnRLOlALKkQjd4eff7f+jgC3BhgDMjwDFhQDHkBjf + 5/ra5f2ddBvChgDKjQDBfwDEkCrh7v/U3OyYZw28egC+eQDDjCzQ2u5BTV5TV10AAAAAAABQVFk/SlvP + 2e7ctVPWoh7UnxXNlQvb3eDd6v+ifivAhQDNkQDHhwDGjhjf6P3a5v+qgBvIjADMkADGhwDIlSjg7P/S + 2OaaaQy8egC+egDEjSzQ2u5BTV5TV10AAAAAAABQVFk/SlvP2e7ctlTVohzVoh7VqDLc4OPc6f+mhS/F + jgPRmQfNkgTJjQbZzrHUzLbBigfMkADMkADKiwDIlSjg6//S2eadbgzBggDCgADHkizQ2u5BTV5TV10A + AAAAAABQVFk/SlvP2e7btVPWoyHZrT3ZsUvd4ufb6f+oijLKmAbQnAnAjgGvfgCmdgGidAKhcAClcAC0 + ewDFiQDLmSjg6//S2eacbgzChADGhQDOnCzQ2u5BTF5TV10AAAAAAABQVFk/SlvO2O3ctlnarkHbsUvZ + sUve4+nc6f+lhSq3hgC7m0DBtpDLy8PP0tbO0tbHx8K0qYyZejaVYwC3iiHh7P/S2eacbQzBgwDHhwDO + nSzP2u5BTF5TV10AAAAAAABQVFk/SlvO2O3gwHPcsk3bsUnasEze4+rb5/2jjEjGvqPe6//j9f/i8//i + 8f/i8f/j9P/l9//e6/+5sqGeg0Te6fzS2eacbQzDhQDJiQDOnCzQ2u5BTF5TV10AAAAAAABQVFk/SlvP + 2e7hwXfbsUvasUjZsErd4ujd6f3Z4vTj8//e6f7WzrDUuWzVs1bVslTSsWPWx6be6fzk9f/Z4vXf6v3S + 2OSdbwzEhgDJiADNmyzQ2u5BTF5TV10AAAAAAABQVFk/SlvP2e7jyYrgu2bfu2beu2jd4+zf6//g7//X + 2dTOsFrToh7VpBvWpB7WpR/TmwfPlADUqzrc2srg8P/h7f/R2OWebwzEhgDJiADNmyzQ2u5BTF5TV10A + AAAAAABRVVtAS1zP2e7lzJPiwHTiwXjhwnrf5O/e7v/Vz7zNpTjWqCrZrTXYrDTYrDPXqzHUoRTUoA3U + nQTToRDazaDh8f/V3OiyfwvGhwDIiADMmirQ2u5CTV9TV14AAAAAAABPUlg9SFnN2O/lzZXiv3HiwXbi + wHPgzJ7ez6vcuWXeuVnYrjzXqzLYrDPYrDPWqSvUnw7Tnw3UoA7UoRLVohjZv3PUtFzOlwrLjwXHhgDN + mzDP2/E/SlxSV1wAAAAAAAA1NjkxPEyruNHr49DhvmziwXXhwXTiv3HiwXThwHDiv23gvmnaskbXqzDY + rDTWpyXTngrUnw/WpR/XpyjWpSPVohPVoRHSnRHQmAnKiQDcxJCxv9syPU04Oj4AAAAAAAAMDAwqNEFd + aHnb5/zo3LzhwHPhvWfiwHTiwnriwnjhvWniv27iwXDdt1TYrDXVohjUoRTXqCrXqS7XpyjWpiXVpiHW + pR3SmgfQlwnewnjd6Ppga34rNEMNDQ4AAAAAAAAAAAAICg4/SlpmcYPE0ubp6+jjzpfhvWviv3Liw3zh + v27hvmniwG7iwXPfu2PYrDbYrDXYqzLWqCvWpybVpiTVoxrUoRPatlTl4tDH1uxodIY/SloKDA8AAAAA + AAAAAAAAAAAAAAATFho8R1ZGUGGHlKjU4PPp5dbjyIriv3LhwXPhvWjiv2ziv23ixH3iw3vduFfctE7b + s0narjzYqCnYsUXl27fW4/WKmK5HUWI8R1YVGBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBQYmLDU7RVVR + XG2frMLg6ffo3sTixYLhvGPhvWfiwnjjxoTjxYLhwnfeuFjdtEzeul/m2LLg6vair8hTXm87RVUmLTYF + BQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKDA4wN0M8R1dibX+1wtjm7fPl1KfiwHLkxYLk + xoTixYHjw3vhv3Hjzpbm6+23xdxkb4E8R1cwOEULDA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAATFho3QE5AS1t2gpXI1erq7Ovm06jkx4bjxoPl0KDq6+fK2O55hZlBS1w4QU8U + FxsAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgMeIik6 + RVRIU2OOmq7T3/Hm6vDm6u/V4PKQnLFJVGQ6RVQeIyoCAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBgcnLTY7RVVPWmtqdohqdYhOWGk5Q1Ml + LDYFBgcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAANDxIpMDs0Pks3QU84PkkVFxoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/+A///+AH//+AAf/+AAB//AAAP/AAAA/gAAAHwAAAA4AAAAGAAAABgAAAAYAA + AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHAAAAD4AAAB/AA + AA/8AAA//wAAf/+AAf//4Af///gf/w== + + \ No newline at end of file diff --git a/client/IntegrationTests/PlanAIRTests.cs b/client/IntegrationTests/PlanAIRTests.cs index d162cb62..7f659771 100644 --- a/client/IntegrationTests/PlanAIRTests.cs +++ b/client/IntegrationTests/PlanAIRTests.cs @@ -24,7 +24,7 @@ namespace IntegrationTests { [TestMethod] public void GetSegmentReadyTest() { //Exercise - List actual = sut.GetSegments(ITEM_ID); + List actual = sut.GetBroadcastSegments(ITEM_ID); //Verify Assert.IsTrue(actual.Count > 0); @@ -36,7 +36,7 @@ namespace IntegrationTests { Segment segment = new Segment() { Comment = "Test", Optional = true, TCIn = 1000, TCOut = 2000 }; //Fixture - sut.AddSegmentToCopia(ITEM_ID, segment.Comment, segment.TCIn, segment.TCOut, segment.Optional); + sut.AddSegmentToCopia(ITEM_ID, segment); } [TestMethod] @@ -72,14 +72,5 @@ namespace IntegrationTests { //Exercise List actual = sut.GetAdvertisements(STR_PARAM); } - - [TestMethod] - public void MediaOKForAirTest() { - //Fixture - const int ITEM_ID = 24; - - //Exercise - sut.SetBroadcastOKForAir(ITEM_ID, true); - } } } diff --git a/client/Maestro/MaestroForm.Metadata.cs b/client/Maestro/MaestroForm.Metadata.cs index 0e490c20..5e6da4dd 100644 --- a/client/Maestro/MaestroForm.Metadata.cs +++ b/client/Maestro/MaestroForm.Metadata.cs @@ -122,7 +122,7 @@ namespace Maestro { private BindingList GetMovieSegmentsFromSegments() { BindingList result = new BindingList(); TrafficAPI trafficApi = trafficIDSelector.trafficAPI; - List segments = trafficApi.GetSegments(selectedMetadata.VariantID); + List segments = trafficApi.GetBroadcastSegments(selectedMetadata.VariantID); if (segments != null) foreach (Segment segment in segments) { MovieSegment movieSegment = segmentConverter.ConvertToMovieSegment(segment); diff --git a/client/Maestro/MaestroForm.Target.cs b/client/Maestro/MaestroForm.Target.cs index 81893c5c..7242a80f 100644 --- a/client/Maestro/MaestroForm.Target.cs +++ b/client/Maestro/MaestroForm.Target.cs @@ -22,7 +22,7 @@ namespace Maestro { public TrafficAPI TrafficApi { get; set; } public int VariantID { get; set; } - public MetadataType MetadataKind {get; set;} + public MetadataType MetadataKind { get; set; } } public partial class MaestroForm { @@ -86,7 +86,7 @@ namespace Maestro { continue; if (!EnsureSegments(target)) { checkBox.Checked = false; - result = null; + result = null; break; } if (!EnsureMetadata(target)) { @@ -107,11 +107,40 @@ namespace Maestro { private bool EnsureSegments(Target target) { if (target.SaveSegments && segments == null) { if (selectedMetadata?.VariantID != null && selectedMetadata?.VariantID != 0) - segments = trafficIDSelector.trafficAPI.GetSegments(selectedMetadata.VariantID); - if (segments == null) { - MessageBox.Show(String.Format("A {0} folyamat nem futtatható szegmens adatok nélkül.", target.Label)); - return false; - } + switch (selectedMetadata.Kind) { + case MetadataType.TrafficMaterial: { + segments = trafficIDSelector.trafficAPI.GetBroadcastSegments(selectedMetadata.VariantID); + if (segments == null) { + MessageBox.Show(String.Format("A {0} folyamat nem futtatható szegmens adatok nélkül.", target.Label)); + return false; + } + break; + } + case MetadataType.TrafficPromo: { + segments = trafficIDSelector.trafficAPI.GetPromoSegments(selectedMetadata.ID); + if (segments == null) { + MessageBox.Show(String.Format("A {0} folyamat nem futtatható szegmens adatok nélkül.", target.Label)); + return false; + } + if (segments.Count != 1) { + MessageBox.Show(String.Format("A promó anyagnak csak egy szegmens adata lehet.")); + return false; + } + break; + } + case MetadataType.TrafficAD: { + segments = trafficIDSelector.trafficAPI.GetAdvertisementSegments(selectedMetadata.ID); + if (segments == null) { + MessageBox.Show(String.Format("A {0} folyamat nem futtatható szegmens adatok nélkül.", target.Label)); + return false; + } + if (segments.Count != 1) { + MessageBox.Show(String.Format("A reklám anyagnak csak egy szegmens adata lehet.")); + return false; + } + break; + } + } } return true; } @@ -174,7 +203,7 @@ namespace Maestro { private ISourceItem GetSourceItemFromBindingSource(string actual) { ISourceItem result = null; - foreach (ISourceItem actualSource in bindingSource) + foreach (ISourceItem actualSource in bindingSource) if (actualSource.Name.Equals(actual)) result = actualSource; return result; diff --git a/client/Maestro/Metadata/MetadataType.cs b/client/Maestro/Metadata/MetadataType.cs index 28d93274..19083e9e 100644 --- a/client/Maestro/Metadata/MetadataType.cs +++ b/client/Maestro/Metadata/MetadataType.cs @@ -1,5 +1,7 @@ -namespace Maestro.Metadata { +using TrafficClient; + +namespace Maestro.Metadata { public enum MetadataType { - None, OctopusStory, OctopusPlaceHolder, TrafficMaterial, TrafficPromo, TrafficAD + None, OctopusStory, OctopusPlaceHolder, TrafficMaterial = TrafficMetadataType.TrafficMaterial, TrafficPromo = TrafficMetadataType.TrafficPromo, TrafficAD = TrafficMetadataType.TrafficAD } } diff --git a/client/Maestro/Targets/UNCTargetProcessor.cs b/client/Maestro/Targets/UNCTargetProcessor.cs index f300eb45..ba409b05 100644 --- a/client/Maestro/Targets/UNCTargetProcessor.cs +++ b/client/Maestro/Targets/UNCTargetProcessor.cs @@ -102,43 +102,15 @@ namespace Maestro.Targets { if (parameters.TargetConfig.CreateMetadata && parameters.ArchiveMetadata != null) CreateMetadata(); - if (parameters.TargetConfig.SaveSegments && parameters.Segments != null) { - switch (parameters.MetadataKind) { - case MetadataType.TrafficMaterial: - SaveMaterialSegments(); - break; - case MetadataType.TrafficAD: - SaveADSegments(); - break; - case MetadataType.TrafficPromo: - SavePromoSegments(); - break; - } - } + if (parameters.TargetConfig.SaveSegments && parameters.Segments != null) + //eljuthat-e ide a felhasználó, ha a MetadataKind octopus? + parameters.TrafficApi.SetMaterialInformation(parameters.VariantID, true, (TrafficMetadataType)parameters.MetadataKind, parameters.Segments); if (parameters.TargetConfig.SendEmailOnSuccess && !String.IsNullOrEmpty(parameters.TargetConfig.SuccessEmailRecipient) && !String.IsNullOrEmpty(parameters.TargetConfig.SuccessEmailPattern)) SendEmail(parameters.TargetConfig.SuccessEmailRecipient, parameters.TargetConfig.SuccessEmailPattern); Status = "Kész"; Message = SUCCESS; } - private void SaveMaterialSegments() { - parameters.TrafficApi.SetBroadcastOKForAir(parameters.VariantID, false); - SaveSegments(); - parameters.TrafficApi.SetBroadcastOKForAir(parameters.VariantID, true); - } - - private void SavePromoSegments() { - parameters.TrafficApi.SetPromotionalToOkForAir(parameters.VariantID, false); - SaveSegments(); - parameters.TrafficApi.SetPromotionalToOkForAir(parameters.VariantID, true); - } - - private void SaveADSegments() { - parameters.TrafficApi.SetAdvertisementToOkForAir(parameters.VariantID, false); - SaveSegments(); - parameters.TrafficApi.SetAdvertisementToOkForAir(parameters.VariantID, true); - } - private void UploadNexioMetadata() { String xml = null; string name = GetOutputName(); @@ -163,14 +135,7 @@ namespace Maestro.Targets { MessageBox.Show(parent, e.Message); } } - - private void SaveSegments() { - parameters.TrafficApi.DeleteSegments(parameters.VariantID); - foreach (Segment actual in parameters.Segments) { - parameters.TrafficApi.AddSegmentToCopia(parameters.VariantID, actual.Comment, actual.TCIn, actual.TCOut, actual.Optional); - } - } - + protected virtual void AfterExecute() { Finished = DateTime.Now; workFlowAction.finished = Finished; diff --git a/client/MediaCube.sln b/client/MediaCube.sln index 6553be06..195b8e13 100644 --- a/client/MediaCube.sln +++ b/client/MediaCube.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.26430.15 +VisualStudioVersion = 15.0.26430.14 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DxPlay", "DxPlay\DxPlay.csproj", "{0B44B3D7-52D7-4C0E-9B1C-F48CEEDA36FE}" EndProject diff --git a/client/PlanAIRClient/TrafficAPI.cs b/client/PlanAIRClient/TrafficAPI.cs index 102053ab..3a3daaf9 100644 --- a/client/PlanAIRClient/TrafficAPI.cs +++ b/client/PlanAIRClient/TrafficAPI.cs @@ -12,7 +12,7 @@ namespace TrafficClient { private CliFSPReader cliFSPReader; private SqlConnection connection; private static Logger logger = LogManager.GetCurrentClassLogger(); - private BroadcastWorker broadvastWorker; + private BroadcastWorker broadcastWorker; private PromotionalWorker promoWorker; private AdvertisementWorker adWorker; private SegmentWorker segmentWorker; @@ -21,22 +21,48 @@ namespace TrafficClient { connectionString = String.Format("{0};User ID={1};Password={2};Connection Timeout={3}", connString, user, password, timeout/1000); connection = new SqlConnection(connectionString); cliFSPReader = new CliFSPReader(); - broadvastWorker = new BroadcastWorker(connection, cliFSPReader, errorReporter); + broadcastWorker = new BroadcastWorker(connection, cliFSPReader, errorReporter); promoWorker = new PromotionalWorker(connection, cliFSPReader, errorReporter); adWorker = new AdvertisementWorker(connection, cliFSPReader, errorReporter); segmentWorker = new SegmentWorker(connection, cliFSPReader, errorReporter); } public List GetBroadcasts(string strParam, DateTime? from, DateTime? to, bool missingCopia) { - return broadvastWorker.GetBroadcasts(strParam, from, to, missingCopia); + return broadcastWorker.GetBroadcasts(strParam, from, to, missingCopia); } public List GetMaterialMetadata(string strParam) { - return broadvastWorker.GetBroadcastArchiveMetadata(strParam); + return broadcastWorker.GetBroadcastArchiveMetadata(strParam); } - public void SetBroadcastOKForAir(int itemID, bool ok) { - broadvastWorker.SetBroadcastOKForAir(itemID, ok); + public void SetMaterialInformation(int itemID, bool ready, TrafficMetadataType kind, List segments) { + switch (kind) { + case TrafficMetadataType.TrafficMaterial: { + broadcastWorker.SetBroadcastReadyToAir(itemID, false); + segmentWorker.DeleteSegments(itemID); + foreach (Segment actualSegment in segments) + AddSegmentToCopia(itemID, actualSegment); + broadcastWorker.SetBroadcastReadyToAir(itemID, ready); + break; + } + case TrafficMetadataType.TrafficAD: { + adWorker.SetADReadyToAir(itemID, false); + segmentWorker.DeleteSegments(itemID); + if (segments != null && segments.Count == 1) + AddSegmentToCopia(itemID, segments[0]); + broadcastWorker.SetBroadcastReadyToAir(itemID, ready); + break; + } + case TrafficMetadataType.TrafficPromo: { + promoWorker.SetPromotionalReadyToAir(itemID, false); + segmentWorker.DeleteSegments(itemID); + //ensurevisible-be rávizsgálni + if (segments != null && segments.Count == 1) + AddSegmentToCopia(itemID, segments[0]); + broadcastWorker.SetBroadcastReadyToAir(itemID, ready); + break; + } + } } public List GetPromotionals(string strParam) { @@ -47,24 +73,24 @@ namespace TrafficClient { return promoWorker.GetPromotionalArchiveMetadata(strParam); } - public void SetPromotionalToOkForAir(int spotID, bool ok) { - promoWorker.SetPromotionalToOkForAir(spotID, ok); - } - public List GetAdvertisements(string strParam) { return adWorker.GetAdvertisements(strParam); } - public void SetAdvertisementToOkForAir(int spotID, bool ok) { - adWorker.SetAdvertisementToOkForAir(spotID, ok); - } - public List GetADMetadata(string strParam) { return adWorker.GetAdvertisementArchiveMetadata(strParam); } - public List GetSegments(int itemID) { - return segmentWorker.GetSegments(itemID); + public List GetBroadcastSegments(int itemID) { + return segmentWorker.GetBroadcastSegments(itemID); + } + + public List GetPromoSegments(string strParam) { + return segmentWorker.GetPromoSegments(strParam); + } + + public List GetAdvertisementSegments(string strParam) { + return segmentWorker.GetAdvertisementSegments(strParam); } public void DeleteSegments(int itemID) { @@ -75,8 +101,8 @@ namespace TrafficClient { segmentWorker.DeleteSegment(itemID, segmentID); } - public void AddSegmentToCopia(int itemID, string strParam, long tcIn, long tcOut, bool optional) { - segmentWorker.AddSegmentToCopia(itemID, strParam, tcIn, tcOut, optional); + public void AddSegmentToCopia(int itemID, Segment segment) { + segmentWorker.AddSegmentToCopia(itemID, segment); } } } diff --git a/client/PlanAIRClient/TrafficClient.csproj b/client/PlanAIRClient/TrafficClient.csproj index 4367e54a..37a7236e 100644 --- a/client/PlanAIRClient/TrafficClient.csproj +++ b/client/PlanAIRClient/TrafficClient.csproj @@ -86,6 +86,7 @@ + diff --git a/client/PlanAIRClient/TrafficMetadataType.cs b/client/PlanAIRClient/TrafficMetadataType.cs new file mode 100644 index 00000000..32dc86af --- /dev/null +++ b/client/PlanAIRClient/TrafficMetadataType.cs @@ -0,0 +1,5 @@ +namespace TrafficClient { + public enum TrafficMetadataType { + TrafficMaterial, TrafficPromo, TrafficAD + } +} diff --git a/client/PlanAIRClient/Workers/AdvertisementWorker.cs b/client/PlanAIRClient/Workers/AdvertisementWorker.cs index 692574db..893e9419 100644 --- a/client/PlanAIRClient/Workers/AdvertisementWorker.cs +++ b/client/PlanAIRClient/Workers/AdvertisementWorker.cs @@ -38,19 +38,6 @@ namespace TrafficClient.Workers { return result; } - private List ExecuteAndReadAdvertisement(SqlCommand cmd) { - List result = null; - using (SqlDataReader reader = cmd.ExecuteReader()) { - while (reader.Read()) { - if (result == null) - result = new List(); - clIFsp_EC_MAMAdvertismentResult item = cliFSPReader.ToclIFsp_MAMAdvertisementResult(reader); - result.Add(item); - } - } - return result; - } - private List ProcessMamAdvertismentResult(List sqlResult) { if (sqlResult == null) return null; @@ -66,7 +53,7 @@ namespace TrafficClient.Workers { return result; } - public void SetAdvertisementToOkForAir(int spotID, bool ok) { + public void SetADReadyToAir(int spotID, bool ok) { try { TryConnect(); int options = ok ? 1 : 0; diff --git a/client/PlanAIRClient/Workers/BroadcastWorker.cs b/client/PlanAIRClient/Workers/BroadcastWorker.cs index aff803ea..64eccb26 100644 --- a/client/PlanAIRClient/Workers/BroadcastWorker.cs +++ b/client/PlanAIRClient/Workers/BroadcastWorker.cs @@ -124,7 +124,7 @@ namespace TrafficClient.Workers { return result; } - public void SetBroadcastOKForAir(int itemID, bool ok) { + public void SetBroadcastReadyToAir(int itemID, bool ok) { try { TryConnect(); int options = ok ? 1 : 0; diff --git a/client/PlanAIRClient/Workers/PromotionalWorker.cs b/client/PlanAIRClient/Workers/PromotionalWorker.cs index b6717670..f8f18ce0 100644 --- a/client/PlanAIRClient/Workers/PromotionalWorker.cs +++ b/client/PlanAIRClient/Workers/PromotionalWorker.cs @@ -37,44 +37,8 @@ namespace TrafficClient.Workers { } return result; } - - private List ProcessMamPromotionalResult(List sqlResult) { - if (sqlResult == null) - return null; - List result = new List(); - foreach (clIFsp_EC_MAMPromotionalResult actual in sqlResult) { - TrafficItem actualObject = new TrafficItem() { - MediaID = actual.t_MediaID, - EpisodeTitle = actual.v_Title, - Title = actual.v_ProgTitle, - Episode = actual.v_Episode.HasValue ? actual.v_Episode.Value : (short)-1, - NextBroadcastDate = actual.t_PSStart, - VariantID = actual.t_SpotID - }; - result.Add(actualObject); - } - return result; - } - - private List ExecuteAndReadPromotionals(SqlCommand cmd) { - List result = null; - try { - using (SqlDataReader reader = cmd.ExecuteReader()) { - while (reader.Read()) { - if (result == null) - result = new List(); - clIFsp_EC_MAMPromotionalResult item = cliFSPReader.ToclIFsp_MAMPromotionalResult(reader); - result.Add(item); - } - } - } - catch (Exception e) { - errorReporter?.Invoke(DateTime.Now, "Error", String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red); - } - return result; - } - - public void SetPromotionalToOkForAir(int spotID, bool ok) { + + public void SetPromotionalReadyToAir(int spotID, bool ok) { try { TryConnect(); int options = ok ? 1 : 0; diff --git a/client/PlanAIRClient/Workers/SegmentWorker.cs b/client/PlanAIRClient/Workers/SegmentWorker.cs index 40326e00..a40e0818 100644 --- a/client/PlanAIRClient/Workers/SegmentWorker.cs +++ b/client/PlanAIRClient/Workers/SegmentWorker.cs @@ -10,11 +10,11 @@ namespace TrafficClient.Workers { private static Logger logger = LogManager.GetCurrentClassLogger(); - public SegmentWorker(SqlConnection connection, CliFSPReader cliFSPReader, TrafficErrorReporterDelegate errorReporter) : + public SegmentWorker(SqlConnection connection, CliFSPReader cliFSPReader, TrafficErrorReporterDelegate errorReporter) : base(connection, cliFSPReader, errorReporter) { } - public List GetSegments(int itemID) { + public List GetBroadcastSegments(int itemID) { List result = null; try { TryConnect(); @@ -59,6 +59,86 @@ namespace TrafficClient.Workers { return result; } + public List GetPromoSegments(string strParam) { + List result = null; + List sqlResult = null; + try { + TryConnect(); + using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { + cmd.CommandType = CommandType.StoredProcedure; + cmd.Parameters.AddWithValue("@Operation", 2001); + cmd.Parameters.AddWithValue("@@@Options", 16); + cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); + cmd.Parameters.AddWithValue("@@StrParam1", strParam); + sqlResult = ExecuteAndReadPromotionals(cmd); + result = GetPromoSegmentFromResult(sqlResult); + } + } + catch (Exception e) { + logger.Error(e.Message); + errorReporter?.Invoke(DateTime.Now, "Error", String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red); + } + finally { + connection.Close(); + } + return result; + } + + private List GetPromoSegmentFromResult(List sqlResult) { + if (sqlResult == null) + return null; + //egy promónak egy szegmense van + if (!sqlResult[0].t_TcIn.HasValue || !sqlResult[0].t_TcOut.HasValue) + return null; + List result = new List(); + Segment segment = new Segment() { + TCIn = sqlResult[0].t_TcIn.HasValue ? (long)sqlResult[0].t_TcIn.Value : 0, + TCOut = sqlResult[0].t_TcOut.HasValue ? (long)sqlResult[0].t_TcOut.Value : 0, + }; + result.Add(segment); + return result; + } + + public List GetAdvertisementSegments(string strParam) { + List result = null; + List sqlResult = null; + try { + TryConnect(); + using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { + cmd.CommandType = CommandType.StoredProcedure; + cmd.Parameters.AddWithValue("@Operation", 3001); + cmd.Parameters.AddWithValue("@@@Options", 4); + cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); + cmd.Parameters.AddWithValue("@@StrParam1", strParam); + sqlResult = ExecuteAndReadAdvertisement(cmd); + result = GetAdvertisementSegmentFromResult(sqlResult); + } + } + catch (Exception e) { + logger.Error(e.Message); + errorReporter?.Invoke(DateTime.Now, "Error", String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red); + } + finally { + connection.Close(); + } + return result; + } + + private List GetAdvertisementSegmentFromResult(List sqlResult) { + if (sqlResult == null) + return null; + List result = new List(); + //egy reklémnak egy szegmense van + if (!sqlResult[0].t_TcIn.HasValue || !sqlResult[0].t_TcOut.HasValue) + return null; + Segment segment = new Segment() { + TCIn = (long)sqlResult[0].t_TcIn.Value, + TCOut = (long)sqlResult[0].t_TcOut.Value, + }; + result.Add(segment); + return result; + } + public void DeleteSegments(int itemID) { try { TryConnect(); @@ -102,20 +182,20 @@ namespace TrafficClient.Workers { } } - public void AddSegmentToCopia(int itemID, string strParam, long tcIn, long tcOut, bool optional) { - //string strparam = String.IsNullOrEmpty(strParam) ? string.Empty : strParam; - object strparam = strParam; - if (String.IsNullOrEmpty(strParam)) + //string strParam, long tcIn, long tcOut, bool optional + public void AddSegmentToCopia(int itemID, Segment segment) { + object strparam = segment.Comment; + if (String.IsNullOrEmpty(segment.Comment)) strparam = DBNull.Value; try { TryConnect(); using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { - int optionalParam = optional ? 1 : 0; + int optionalParam = segment.Optional ? 1 : 0; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@Operation", 1115); cmd.Parameters.AddWithValue("@@ItemID", itemID); - cmd.Parameters.AddWithValue("@@IntParam1", tcIn); - cmd.Parameters.AddWithValue("@@IntParam2", tcOut); + cmd.Parameters.AddWithValue("@@IntParam1", segment.TCIn); + cmd.Parameters.AddWithValue("@@IntParam2", segment.TCOut); cmd.Parameters.AddWithValue("@@StrParam1", strparam); cmd.Parameters.AddWithValue("@@StrParam2", DBNull.Value); cmd.Parameters.AddWithValue("@@@Options", optionalParam); diff --git a/client/PlanAIRClient/Workers/TrafficWorker.cs b/client/PlanAIRClient/Workers/TrafficWorker.cs index b127b29f..e4b7d811 100644 --- a/client/PlanAIRClient/Workers/TrafficWorker.cs +++ b/client/PlanAIRClient/Workers/TrafficWorker.cs @@ -22,5 +22,54 @@ namespace TrafficClient.Workers { } } + + protected List ExecuteAndReadPromotionals(SqlCommand cmd) { + List result = null; + try { + using (SqlDataReader reader = cmd.ExecuteReader()) { + while (reader.Read()) { + if (result == null) + result = new List(); + clIFsp_EC_MAMPromotionalResult item = cliFSPReader.ToclIFsp_MAMPromotionalResult(reader); + result.Add(item); + } + } + } + catch (Exception e) { + errorReporter?.Invoke(DateTime.Now, "Error", String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red); + } + return result; + } + + protected List ExecuteAndReadAdvertisement(SqlCommand cmd) { + List result = null; + using (SqlDataReader reader = cmd.ExecuteReader()) { + while (reader.Read()) { + if (result == null) + result = new List(); + clIFsp_EC_MAMAdvertismentResult item = cliFSPReader.ToclIFsp_MAMAdvertisementResult(reader); + result.Add(item); + } + } + return result; + } + + protected List ProcessMamPromotionalResult(List sqlResult) { + if (sqlResult == null) + return null; + List result = new List(); + foreach (clIFsp_EC_MAMPromotionalResult actual in sqlResult) { + TrafficItem actualObject = new TrafficItem() { + MediaID = actual.t_MediaID, + EpisodeTitle = actual.v_Title, + Title = actual.v_ProgTitle, + Episode = actual.v_Episode.HasValue ? actual.v_Episode.Value : (short)-1, + NextBroadcastDate = actual.t_PSStart, + VariantID = actual.t_SpotID + }; + result.Add(actualObject); + } + return result; + } } } diff --git a/server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusDataMiner.java b/server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusDataMiner.java index c57615e5..bfd3fbf2 100644 --- a/server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusDataMiner.java +++ b/server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusDataMiner.java @@ -111,8 +111,8 @@ public class OctopusDataMiner implements Runnable { return result; } - private void checkAndStoreStory(BasicDBObject modifiedStory, Date lastUpdateTime, long storyID, int position, long referenceID, String referenceName, - DBCollection collection) { + private void checkAndStoreStory(BasicDBObject modifiedStory, Date lastUpdateTime, long storyID, int position, + long referenceID, String referenceName, DBCollection collection) { boolean isContains = storyIDs.contains(storyID); if (!isContains) storyIDs.add(storyID); @@ -128,31 +128,61 @@ public class OctopusDataMiner implements Runnable { modifiedStory.append(referenceName, references); } references.add(new BasicDBObject(ID, referenceID).append(POSITION, position)); - BasicDBObject script = (BasicDBObject) modifiedStory.get("script"); - String scriptContent = new String(); - if(script!= null && !script.isEmpty()) { + String scriptContent = GetScriptContent(modifiedStory); + modifiedStory.append("script_content", scriptContent); + logger.info(String.format(SAVING_STORY_D, storyID)); + collection.save(modifiedStory); + } + + private String GetScriptContent(BasicDBObject story) { + BasicDBObject script = (BasicDBObject) story.get("script"); + String scriptContent = "text: "; + if (script != null && !script.isEmpty()) { BasicDBList body = (BasicDBList) script.get("body"); - if(body != null && !body.isEmpty()){ - for(Object actualBody : body) { + if (body != null && !body.isEmpty()) + for (Object actualBody : body) { BasicDBObject actualDBBody = (BasicDBObject) actualBody; - BasicDBList content = (BasicDBList)actualDBBody.get("content"); - if(content != null && !content.isEmpty()){ - for(Object actualContent : content) { + BasicDBList contents = (BasicDBList) actualDBBody.get("content"); + if (contents != null && !contents.isEmpty()) + for (Object actualContent : contents) { BasicDBObject actualDBContent = (BasicDBObject) actualContent; - String text = actualDBContent.getString("text"); - if(text != null) - scriptContent += text + "\n"; + scriptContent += GetContent(actualDBContent); } - - } - } + } + return scriptContent; + } + + private String GetContent(BasicDBObject actualDBContent) { + String type = actualDBContent.getString("type"); + String scriptContent = ""; + switch (type) { + case "text": { + String text = actualDBContent.getString("text"); + if (text != null) + scriptContent += String.format("%s: %s\r\n", type, text.replaceAll("\n", "\r\n")); + break; + } + case "mos": { + BasicDBObject mosObject = (BasicDBObject) actualDBContent.get("object"); + if (mosObject != null && !mosObject.isEmpty()) { + String objID = mosObject.getString("objId"); + scriptContent += String.format("%s %s\r\n", type.toUpperCase(), objID); } - + break; } - modifiedStory.append("script_content", scriptContent); - logger.info(String.format(SAVING_STORY_D, storyID)); - collection.save(modifiedStory); + default: { + BasicDBList innerContents = (BasicDBList) actualDBContent.get("content"); + if (innerContents != null && !innerContents.isEmpty()) + for (Object actualInnerContent : innerContents) { + BasicDBObject actualDBInnerContent = (BasicDBObject) actualInnerContent; + if (actualDBInnerContent != null && actualDBInnerContent.isEmpty()) + scriptContent += GetContent(actualDBInnerContent); + } + break; + } + } + return scriptContent; } public void clear() { @@ -292,7 +322,7 @@ public class OctopusDataMiner implements Runnable { if (resultObject != null) result = asDBList(resultObject, RESULT); - /*teszt*/ + /* teszt */ List list = NoSQLUtils.asList(result); for (BasicDBObject actual : list) { String fullName = concatParentsToStoryFolder(actual, actual.getString("name")); @@ -458,12 +488,14 @@ public class OctopusDataMiner implements Runnable { List slugsList = NoSQLUtils.asList(slugs); for (BasicDBObject slug : slugsList) { if (slug.containsKey(STORY)) - storeStory((BasicDBObject) slug.get(STORY), slug.getInt(POSITION), referenceID, RUNDOWN2, lastUpdateTime); + storeStory((BasicDBObject) slug.get(STORY), slug.getInt(POSITION), referenceID, RUNDOWN2, + lastUpdateTime); } logger.trace(EXIT); } - private void storeStory(BasicDBObject story, int position, long referenceID, String referenceName, Date lastUpdateTime) { + private void storeStory(BasicDBObject story, int position, long referenceID, String referenceName, + Date lastUpdateTime) { logger.trace(ENTER); try { // a run v�g�n lek�rj�k az �sszes storyID-t az adatb�zisb�l @@ -480,7 +512,8 @@ public class OctopusDataMiner implements Runnable { * collection.findOne(new BasicDBObject(ID, storyID), new * BasicDBObject(_ID, 1)); collection.remove(modifiedStory); } else */ - checkAndStoreStory(modifiedStory, lastUpdateTime, storyID, position, referenceID, referenceName, collection); + checkAndStoreStory(modifiedStory, lastUpdateTime, storyID, position, referenceID, referenceName, + collection); } catch (Exception e) { logger.error(e); throw e; @@ -510,7 +543,8 @@ public class OctopusDataMiner implements Runnable { List storyFolderList = NoSQLUtils.asList(storyFolders); int idx = 1; for (BasicDBObject storyFolder : storyFolderList) { - logger.info(String.format(CHECKING_STORY_FOLDER_S_D_D, storyFolder.getLong(ID), storyFolderList.size(), idx)); + logger.info( + String.format(CHECKING_STORY_FOLDER_S_D_D, storyFolder.getLong(ID), storyFolderList.size(), idx)); storeStoryFolder(storyFolder, lastUpdateTime); int progress = 50 + (idx * 50 / storyFolderList.size()); if (progress - progressEvent.getProgress() > 0) { @@ -522,7 +556,8 @@ public class OctopusDataMiner implements Runnable { logger.trace(EXIT); } - private void storeStoryFolderStories(BasicDBList stories, long storyFolderID, long referenceID, Date lastUpdateTime) { + private void storeStoryFolderStories(BasicDBList stories, long storyFolderID, long referenceID, + Date lastUpdateTime) { logger.trace(ENTER); List list = NoSQLUtils.asList(stories); for (BasicDBObject story : list) -- 2.54.0