git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Thu, 26 Oct 2017 10:57:42 +0000 (10:57 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Thu, 26 Oct 2017 10:57:42 +0000 (10:57 +0000)
12 files changed:
client/IntegrationTests/MaestroIT.cs
client/Maestro/Configuration/configuration-editor.json
client/Maestro/Maestro.csproj
client/Maestro/MaestroForm.Designer.cs
client/Maestro/MaestroForm.Metadata.cs
client/Maestro/MaestroForm.Source.cs
client/Maestro/MaestroForm.Target.cs
client/Maestro/Metadata/IDTypes.cs [deleted file]
client/Maestro/Metadata/MetadataType.cs
client/MediaCube.sln
client/OctopusClient/OctopusIDSelector.cs
client/PlanAIRClient/TrafficIDSelector.cs

index 35ee458ee00d9cc1ee2c7b690db391d43359946a..13c6d2160165e4bcc6916aa4ce8100d697b3df16 100644 (file)
@@ -13,6 +13,7 @@ using System.Runtime.ConstrainedExecution;
 using System.Security;\r
 using BethesdaConsentFormWCFSvc;\r
 using System.IO;\r
+using System.Text.RegularExpressions;\r
 \r
 namespace IntegrationTests {\r
     public sealed class SafeTokenHandle : SafeHandleZeroOrMinusOneIsInvalid {\r
@@ -64,6 +65,47 @@ namespace IntegrationTests {
             }\r
         }\r
 \r
+        void testRegex(string id, string exp, bool expect) {\r
+            Match match = Regex.Match(id, exp);\r
+            Debug.WriteLine(String.Format($"{id} : {match.Success} {expect}"));\r
+        }\r
+\r
+        [TestMethod]\r
+        public void TestTrafficRegex() {\r
+            const string exp = "^[M,P,R]{1}[0-9]{6}[A-Z]{1}$";\r
+            testRegex("M000000A", exp, true);\r
+            testRegex("P000000B", exp, true);\r
+            testRegex("R000000C", exp, true);\r
+            testRegex("R000000C.", exp, false);\r
+            testRegex("R0000000C", exp, false);\r
+            testRegex("M00000A", exp, false);\r
+            testRegex("M0000000", exp, false);\r
+            testRegex("Q000000A", exp, false);\r
+        }\r
+\r
+        [TestMethod]\r
+        public void TestMaterialRegex() {\r
+            const string exp = "^M{1}[0-9]{6}[A-Z]{1}$";\r
+            testRegex("M000000A", exp, true);\r
+            testRegex("P000000B", exp, false);\r
+            testRegex("R000000C", exp, false);\r
+            testRegex("A3333333", exp, false);\r
+            testRegex("55555.", exp, false);\r
+            testRegex("44444S", exp, false);\r
+            testRegex("M000000.", exp, false);\r
+            testRegex("M0000000.", exp, false);\r
+        }\r
+\r
+        [TestMethod]\r
+        public void TestOctopusRegex() {\r
+            const string exp = "^[0-9]+$";\r
+            testRegex("1111", exp, true);\r
+            testRegex("2222222222", exp, true);\r
+            testRegex("A3333333", exp, false);\r
+            testRegex("55555.", exp, false);\r
+            testRegex("44444S", exp, false);\r
+        }\r
+\r
         [TestMethod]\r
         public void TestFTPTarget() {\r
             Target configuration = new Target() {\r
index d7ccb3a98a7adcb569ca490bba24fffcd8c0c724..fc3b409e12ae5e44cb336ac3220a544546054b3d 100644 (file)
@@ -1,7 +1,8 @@
-{\r
+\r
+{\r
   "title": "Szerkesztő",\r
   "active": true,\r
-  "startInTray": true,\r
+  "startInTray": false,\r
   "enableCustomMetadataId": true,\r
   "player": {\r
     "enabled": true,\r
index 716098e02c986095cdd5e3bd53da81616da02d54..abd8d0da69a97c356dad19657bbb985f98d2165a 100644 (file)
     </Compile>\r
     <Compile Include="MaestroForm.Target.cs" />\r
     <Compile Include="Metadata\ArchiveMetadata.cs" />\r
-    <Compile Include="Metadata\IDTypes.cs" />\r
     <Compile Include="Metadata\MenuButton.cs">\r
       <SubType>Component</SubType>\r
     </Compile>\r
index 789ec6903561d8a436a0d901684ae2f6339096bb..6f3803fa693f33318720a584818d8165cf521c6e 100644 (file)
@@ -33,12 +33,12 @@ namespace Maestro {
             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();\r
             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();\r
             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();\r
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();\r
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();\r
             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();\r
             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();\r
             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();\r
             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();\r
-            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();\r
-            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();\r
             this.groupSource = new System.Windows.Forms.GroupBox();\r
             this.dataGridSource = new System.Windows.Forms.DataGridView();\r
             this.bindingSource = new System.Windows.Forms.BindingSource(this.components);\r
@@ -74,14 +74,6 @@ namespace Maestro {
             this.tabControl2 = new System.Windows.Forms.TabControl();\r
             this.tabPage1 = new System.Windows.Forms.TabPage();\r
             this.dataGridJobs = new System.Windows.Forms.DataGridView();\r
-            this.bindingSourceJobs = new System.Windows.Forms.BindingSource(this.components);\r
-            this.tabPage2 = new System.Windows.Forms.TabPage();\r
-            this.dataGridMessages = new System.Windows.Forms.DataGridView();\r
-            this.timeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
-            this.Level = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
-            this.messageDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
-            this.systemMessageBindingSource = new System.Windows.Forms.BindingSource(this.components);\r
-            this.metadataInfoBindingSource = new System.Windows.Forms.BindingSource(this.components);\r
             this.columnLabel = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
             this.columnID = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
             this.Progress = new Maestro.Commons.DataGridViewProgressColumn();\r
@@ -91,6 +83,14 @@ namespace Maestro {
             this.columnInput = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
             this.columnOutput = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
             this.columnKillDate = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+            this.bindingSourceJobs = new System.Windows.Forms.BindingSource(this.components);\r
+            this.tabPage2 = new System.Windows.Forms.TabPage();\r
+            this.dataGridMessages = new System.Windows.Forms.DataGridView();\r
+            this.timeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+            this.Level = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+            this.messageDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+            this.systemMessageBindingSource = new System.Windows.Forms.BindingSource(this.components);\r
+            this.metadataInfoBindingSource = new System.Windows.Forms.BindingSource(this.components);\r
             this.groupSource.SuspendLayout();\r
             ((System.ComponentModel.ISupportInitialize)(this.dataGridSource)).BeginInit();\r
             ((System.ComponentModel.ISupportInitialize)(this.bindingSource)).BeginInit();\r
@@ -659,6 +659,82 @@ namespace Maestro {
             this.dataGridJobs.CellEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridJobs_CellEnter);\r
             this.dataGridJobs.MouseClick += new System.Windows.Forms.MouseEventHandler(this.dataGridJobs_MouseClick);\r
             // \r
+            // columnLabel\r
+            // \r
+            this.columnLabel.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+            this.columnLabel.DataPropertyName = "Label";\r
+            this.columnLabel.HeaderText = "Label";\r
+            this.columnLabel.Name = "columnLabel";\r
+            this.columnLabel.Width = 63;\r
+            // \r
+            // columnID\r
+            // \r
+            this.columnID.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+            this.columnID.DataPropertyName = "ID";\r
+            dataGridViewCellStyle5.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.columnID.DefaultCellStyle = dataGridViewCellStyle5;\r
+            this.columnID.HeaderText = "ID";\r
+            this.columnID.Name = "columnID";\r
+            this.columnID.Width = 44;\r
+            // \r
+            // Progress\r
+            // \r
+            this.Progress.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;\r
+            this.Progress.DataPropertyName = "Progress";\r
+            this.Progress.HeaderText = "";\r
+            this.Progress.MinimumWidth = 100;\r
+            this.Progress.Name = "Progress";\r
+            // \r
+            // columnStatus\r
+            // \r
+            this.columnStatus.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+            this.columnStatus.DataPropertyName = "Status";\r
+            dataGridViewCellStyle6.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.columnStatus.DefaultCellStyle = dataGridViewCellStyle6;\r
+            this.columnStatus.HeaderText = "Status";\r
+            this.columnStatus.Name = "columnStatus";\r
+            this.columnStatus.Width = 66;\r
+            // \r
+            // columnStarted\r
+            // \r
+            this.columnStarted.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+            this.columnStarted.DataPropertyName = "Started";\r
+            this.columnStarted.HeaderText = "Started";\r
+            this.columnStarted.Name = "columnStarted";\r
+            this.columnStarted.Width = 71;\r
+            // \r
+            // columnFinished\r
+            // \r
+            this.columnFinished.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+            this.columnFinished.DataPropertyName = "Finished";\r
+            this.columnFinished.HeaderText = "Finished";\r
+            this.columnFinished.Name = "columnFinished";\r
+            this.columnFinished.Width = 79;\r
+            // \r
+            // columnInput\r
+            // \r
+            this.columnInput.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+            this.columnInput.DataPropertyName = "Input";\r
+            this.columnInput.HeaderText = "Input";\r
+            this.columnInput.Name = "columnInput";\r
+            this.columnInput.Width = 59;\r
+            // \r
+            // columnOutput\r
+            // \r
+            this.columnOutput.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+            this.columnOutput.DataPropertyName = "Output";\r
+            this.columnOutput.HeaderText = "Output";\r
+            this.columnOutput.Name = "columnOutput";\r
+            this.columnOutput.Width = 68;\r
+            // \r
+            // columnKillDate\r
+            // \r
+            this.columnKillDate.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+            this.columnKillDate.DataPropertyName = "KillDate";\r
+            this.columnKillDate.HeaderText = "KillDate";\r
+            this.columnKillDate.Name = "columnKillDate";\r
+            this.columnKillDate.Width = 75;\r
+            // \r
             // tabPage2\r
             // \r
             this.tabPage2.Controls.Add(this.dataGridMessages);\r
@@ -755,82 +831,6 @@ namespace Maestro {
             // \r
             this.metadataInfoBindingSource.DataSource = typeof(Maestro.Metadata.MetadataInfo);\r
             // \r
-            // columnLabel\r
-            // \r
-            this.columnLabel.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
-            this.columnLabel.DataPropertyName = "Label";\r
-            this.columnLabel.HeaderText = "Label";\r
-            this.columnLabel.Name = "columnLabel";\r
-            this.columnLabel.Width = 63;\r
-            // \r
-            // columnID\r
-            // \r
-            this.columnID.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
-            this.columnID.DataPropertyName = "ID";\r
-            dataGridViewCellStyle5.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
-            this.columnID.DefaultCellStyle = dataGridViewCellStyle5;\r
-            this.columnID.HeaderText = "ID";\r
-            this.columnID.Name = "columnID";\r
-            this.columnID.Width = 44;\r
-            // \r
-            // Progress\r
-            // \r
-            this.Progress.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;\r
-            this.Progress.DataPropertyName = "Progress";\r
-            this.Progress.HeaderText = "";\r
-            this.Progress.MinimumWidth = 100;\r
-            this.Progress.Name = "Progress";\r
-            // \r
-            // columnStatus\r
-            // \r
-            this.columnStatus.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
-            this.columnStatus.DataPropertyName = "Status";\r
-            dataGridViewCellStyle6.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
-            this.columnStatus.DefaultCellStyle = dataGridViewCellStyle6;\r
-            this.columnStatus.HeaderText = "Status";\r
-            this.columnStatus.Name = "columnStatus";\r
-            this.columnStatus.Width = 66;\r
-            // \r
-            // columnStarted\r
-            // \r
-            this.columnStarted.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
-            this.columnStarted.DataPropertyName = "Started";\r
-            this.columnStarted.HeaderText = "Started";\r
-            this.columnStarted.Name = "columnStarted";\r
-            this.columnStarted.Width = 71;\r
-            // \r
-            // columnFinished\r
-            // \r
-            this.columnFinished.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
-            this.columnFinished.DataPropertyName = "Finished";\r
-            this.columnFinished.HeaderText = "Finished";\r
-            this.columnFinished.Name = "columnFinished";\r
-            this.columnFinished.Width = 79;\r
-            // \r
-            // columnInput\r
-            // \r
-            this.columnInput.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
-            this.columnInput.DataPropertyName = "Input";\r
-            this.columnInput.HeaderText = "Input";\r
-            this.columnInput.Name = "columnInput";\r
-            this.columnInput.Width = 59;\r
-            // \r
-            // columnOutput\r
-            // \r
-            this.columnOutput.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
-            this.columnOutput.DataPropertyName = "Output";\r
-            this.columnOutput.HeaderText = "Output";\r
-            this.columnOutput.Name = "columnOutput";\r
-            this.columnOutput.Width = 68;\r
-            // \r
-            // columnKillDate\r
-            // \r
-            this.columnKillDate.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
-            this.columnKillDate.DataPropertyName = "KillDate";\r
-            this.columnKillDate.HeaderText = "KillDate";\r
-            this.columnKillDate.Name = "columnKillDate";\r
-            this.columnKillDate.Width = 75;\r
-            // \r
             // MaestroForm\r
             // \r
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
index e9bf3d0ce47a3dc0735721e73aa391f87cf816f1..47cd215ac9a92e352956672506ce56e4a1a0a064 100644 (file)
@@ -15,11 +15,17 @@ using Model;
 namespace Maestro {\r
     public partial class MaestroForm {\r
         private const string ARCHIVEID_PREFIX = "MC-";\r
+        private const string REGEXP_TRAFFICMATERIALID = "^M{1}[0-9]{6}[A-Z]{1}$";\r
+        private const string REGEXP_TRAFFICADID = "^R{1}[0-9]{6}[A-Z]{1}$";\r
+        private const string REGEXP_TRAFFICPROMOID = "^P{1}[0-9]{6}[A-Z]{1}$";\r
+        private const string REGEXP_OCTOPUSID = "^[0-9]+$";\r
         private MetadataInfo selectedMetadata;\r
         private List<Segment> segments;\r
         private MediaCubeApi mediaCubeApi;\r
         private ArchiveMetadata archiveMetadata;\r
         private BindingList<MovieSegment> movieSegments;\r
+        private static MetadataType[] validTypes = { MetadataType.TrafficAD, MetadataType.TrafficMaterial, MetadataType.TrafficPromo };\r
+        private ToolTip ttMetadata = new ToolTip();\r
 \r
         public MetadataInfo SelectedMetadata {\r
             get {\r
@@ -30,6 +36,7 @@ namespace Maestro {
                 movieSegments = null;\r
                 segments = null;\r
                 textSelectedMetadata.Text = value?.ID;\r
+                ttMetadata.SetToolTip(textSelectedMetadata, value?.Tooltip);\r
             }\r
         }\r
 \r
@@ -83,20 +90,28 @@ namespace Maestro {
             form.ShowDialog();\r
         }\r
 \r
-        private SourceIDType GetSourceType(string id) {\r
-            SourceIDType result = SourceIDType.MediaCube;\r
-            if (!String.IsNullOrEmpty(id)) {\r
-                Match match = Regex.Match(id, "[A-Z]{1}[0-9]{6}[A-Z]{1}");\r
-                if (match.Success)\r
-                    result = SourceIDType.TrafficID;\r
-                else {\r
-                    //"^[0-9]+$";\r
-                    match = Regex.Match(id, "[0-9]");\r
-                    if (match.Success)\r
-                        result = SourceIDType.OctopusID;\r
-                }\r
-            }\r
-            return result;\r
+        private MetadataType GuessMetadataType(string id) {\r
+            if (String.IsNullOrEmpty(id))\r
+                return MetadataType.None;\r
+            Match match = null;\r
+\r
+            match = Regex.Match(id, REGEXP_TRAFFICMATERIALID);\r
+            if (match.Success)\r
+                return MetadataType.TrafficMaterial;\r
+\r
+            match = Regex.Match(id, REGEXP_TRAFFICPROMOID);\r
+            if (match.Success)\r
+                return MetadataType.TrafficPromo;\r
+\r
+            match = Regex.Match(id, REGEXP_TRAFFICADID);\r
+            if (match.Success)\r
+                return MetadataType.TrafficAD;\r
+\r
+            match = Regex.Match(id, REGEXP_OCTOPUSID);\r
+            if (match.Success)\r
+                return MetadataType.OctopusPlaceHolder;\r
+\r
+            return MetadataType.MediaCube;\r
         }\r
 \r
         private void OnDefineSegmentsClick(object sender, EventArgs e) {\r
@@ -136,18 +151,18 @@ namespace Maestro {
 \r
         private ArchiveMetadata GetArchiveMetadata() {\r
             ArchiveMetadata result = null;\r
-            SourceIDType idType = GetSourceType(textSelectedMetadata.Text);\r
             Cursor.Current = Cursors.WaitCursor;\r
-            switch (idType) {\r
-                case SourceIDType.MediaCube:\r
+            MetadataType metadataType = GuessMetadataType(textSelectedMetadata.Text);\r
+            switch (metadataType) {\r
+                case MetadataType.MediaCube:\r
                     result = GetMediaCubeMetadata();\r
                     textSelectedMetadata.Text = result.itemHouseId;\r
                     break;\r
-                case SourceIDType.OctopusID:\r
+                case MetadataType.OctopusPlaceHolder:\r
                     result = GetOctopusMetadata();\r
                     break;\r
-                case SourceIDType.TrafficID:\r
-                    result = GetTrafficMetadata();\r
+                case MetadataType.TrafficMaterial:\r
+                    result = GetTrafficMetadata(metadataType);\r
                     break;\r
             }\r
             Cursor.Current = Cursors.Default;\r
@@ -164,13 +179,12 @@ namespace Maestro {
             return result;\r
         }\r
 \r
-        private ArchiveMetadata GetTrafficMetadata() {\r
+        private ArchiveMetadata GetTrafficMetadata(MetadataType metadataType) {\r
             string id = textSelectedMetadata.Text;\r
             if (String.IsNullOrEmpty(id))\r
                 return null;\r
             TrafficAPI api = trafficIDSelector.trafficAPI;\r
             List<TrafficItemMetadata> trafficResult = null;\r
-            MetadataType metadataType = GetTrafficMetadataType(id);\r
             switch (metadataType) {\r
                 case MetadataType.TrafficMaterial:\r
                     trafficResult = api.GetMaterialMetadata(id);\r
@@ -241,22 +255,24 @@ namespace Maestro {
             model.mediaDescription = story.Script;\r
         }\r
 \r
-        private MetadataType GetTrafficMetadataType(string id) {\r
-            MetadataType result = MetadataType.None;\r
-            if (id.Length < 1)\r
-                return result;\r
-            switch (id[0]) {\r
-                case 'M':\r
-                    result = MetadataType.TrafficMaterial;\r
-                    break;\r
-                case 'P':\r
-                    result = MetadataType.TrafficPromo;\r
-                    break;\r
-                case 'R':\r
-                    result = MetadataType.TrafficAD;\r
-                    break;\r
+        private void OnMetadataIDChanged(object sender, EventArgs e) {\r
+            if (String.IsNullOrEmpty(textSelectedMetadata.Text)) {\r
+                SelectedMetadata = null;\r
+            } else {\r
+                if (SelectedMetadata == null || !textSelectedMetadata.Text.Equals(SelectedMetadata.ID)) {\r
+                    SelectedMetadata = new MetadataInfo() {\r
+                        Kind = MetadataType.MediaCube,\r
+                        ID = textSelectedMetadata.Text,\r
+                        Tooltip = "MediaCube azonosító"\r
+                    };\r
+                }\r
             }\r
-            return result;\r
+\r
+            UpdateProcessorButtonsEnabled();\r
+            UpdateDefineSegmentEnabled();\r
+            UpdateEditArchiveMetadataEnabled();\r
+            UpdateLookupMetadataEnabled();\r
+            archiveMetadata = null;\r
         }\r
 \r
         private void OnOctopusIDSelected(string id, string name) {\r
@@ -267,13 +283,11 @@ namespace Maestro {
                 return;\r
             }\r
             SelectedMetadata = new MetadataInfo() {\r
-                Kind = MetadataType.OctopusStory,\r
-                Tooltip = "Story ID",\r
-                ID = name,\r
+                Kind = MetadataType.OctopusPlaceHolder,\r
+                Tooltip = "Octopus azonosító",\r
+                ID = id,\r
                 VariantID = int.Parse(id)\r
             };\r
-            UpdateEditArchiveMetadataEnabled();\r
-            UpdateDefineSegmentEnabled();\r
         }\r
 \r
         private void OnTrafficIDSelected(string selectedID, int variantID) {\r
@@ -283,23 +297,33 @@ namespace Maestro {
                 SelectedMetadata = null;\r
                 return;\r
             }\r
+            MetadataType metadataType = GuessMetadataType(selectedID);\r
+            string tooltip = null;\r
+            switch (metadataType) {\r
+                case MetadataType.TrafficAD:\r
+                    tooltip = "Traffic reklám azonosító";\r
+                    break;\r
+                case MetadataType.TrafficMaterial:\r
+                    tooltip = "Traffic műsor azonosító";\r
+                    break;\r
+                case MetadataType.TrafficPromo:\r
+                    tooltip = "Traffic promó azonosító";\r
+                    break;\r
+            }\r
             SelectedMetadata = new MetadataInfo() {\r
-                Kind = GetTrafficMetadataType(selectedID),\r
-                Tooltip = "Epizod ID",\r
+                Kind = metadataType,\r
+                Tooltip = tooltip,\r
                 ID = selectedID,\r
                 VariantID = variantID\r
             };\r
-            UpdateEditArchiveMetadataEnabled();\r
-            UpdateDefineSegmentEnabled();\r
         }\r
 \r
         private void UpdateEditArchiveMetadataEnabled() {\r
-//            ctxiModifyArchiveMetadata.Enabled = !String.IsNullOrEmpty(textSelectedMetadata.Text);\r
-            ctxiModifyArchiveMetadata.Enabled = true;\r
+            //            ctxiModifyArchiveMetadata.Enabled = !String.IsNullOrEmpty(textSelectedMetadata.Text);\r
+            ctxiModifyArchiveMetadata.Enabled = SelectedSource != null && SelectedMetadata != null;\r
         }\r
 \r
         private void UpdateDefineSegmentEnabled() {\r
-            MetadataType[] validTypes = { MetadataType.TrafficAD, MetadataType.TrafficMaterial, MetadataType.TrafficPromo };\r
             ctxiDefineSegments.Enabled =\r
                                         Configuration.Player != null &&\r
                                         Configuration.Player.SegmentEditor &&\r
index 9322b1acc10ec90218f53a036e19751e89b767c8..e0f3958c41d541edc3babedbfb57074925daede8 100644 (file)
@@ -216,21 +216,24 @@ namespace Maestro {
         }\r
 \r
         private void buttonMetadata_Click(object sender, EventArgs e) {\r
-            switch (GetSourceType(SelectedSource?.Prefix)) {\r
-                case SourceIDType.TrafficID:\r
-                    LookupTraffic();\r
+            Cursor.Current = Cursors.WaitCursor;\r
+            MetadataType metadataType = GuessMetadataType(SelectedSource?.Prefix);\r
+            switch (metadataType) {\r
+                case MetadataType.TrafficMaterial:\r
+                case MetadataType.TrafficPromo:\r
+                case MetadataType.TrafficAD:\r
+                    LookupTraffic(metadataType);\r
                     break;\r
-                case SourceIDType.OctopusID:\r
+                case MetadataType.OctopusPlaceHolder:\r
                     LookupOctopus();\r
                     break;\r
             }\r
+            Cursor.Current = Cursors.Default;\r
         }\r
 \r
-        private void LookupTraffic() {\r
+        private void LookupTraffic(MetadataType metadataType) {\r
             TrafficAPI api = trafficIDSelector.trafficAPI;\r
-            Cursor.Current = Cursors.WaitCursor;\r
             List<TrafficItem> result = null;\r
-            MetadataType metadataType = GetTrafficMetadataType(SelectedSource?.Prefix);\r
             switch (metadataType) {\r
                 case MetadataType.TrafficMaterial:\r
                     result = api.GetMaterials(SelectedSource?.Prefix, false);\r
@@ -244,7 +247,6 @@ namespace Maestro {
             }\r
             if (result == null || result.Count == 0) {\r
                 MessageBox.Show(this, StringResources.NINCS_TALALAT);\r
-                Cursor.Current = Cursors.Default;\r
                 return;\r
             }\r
             if (result.Count == 1) {\r
@@ -255,32 +257,32 @@ namespace Maestro {
                 TrafficLookupResultSelector lookupResult = new TrafficLookupResultSelector(result, trafficMetadataSelected);\r
                 lookupResult.ShowDialog();\r
             }\r
-            Cursor.Current = Cursors.Default;\r
         }\r
 \r
 \r
+        //private void LookupOctopus() {\r
+        //    OctopusAPI api = octopusIDSelector.GetClient();\r
+        //    Cursor.Current = Cursors.WaitCursor;\r
+        //    IEnumerable<Story> stories = api.GetStoriesById(SelectedSource?.Prefix);\r
+        //    if (stories == null || stories.Count() == 0) {\r
+        //        LookupOctopusMOS();\r
+        //        Cursor.Current = Cursors.Default;\r
+        //        return;\r
+        //    }\r
+        //    List<Story> list = stories.ToList();\r
+        //    if (list.Count == 1) {\r
+        //        UpdateEditArchiveMetadataEnabled();\r
+        //        textSelectedMetadata.Text = list[0].ID;\r
+        //        octopusMetadataSelected?.Invoke(list[0].ID, null);\r
+        //    } else {\r
+        //        OctopusLookupResultSelector box = new OctopusLookupResultSelector(list, octopusMetadataSelected);\r
+        //        box.ShowDialog();\r
+        //    }\r
+        //    Cursor.Current = Cursors.Default;\r
+        //}\r
+\r
         private void LookupOctopus() {\r
             OctopusAPI api = octopusIDSelector.GetClient();\r
-            Cursor.Current = Cursors.WaitCursor;\r
-            IEnumerable<Story> stories = api.GetStoriesById(SelectedSource?.Prefix);\r
-            if (stories == null || stories.Count() == 0) {\r
-                LookupOctopusMOS(api);\r
-                Cursor.Current = Cursors.Default;\r
-                return;\r
-            }\r
-            List<Story> list = stories.ToList();\r
-            if (list.Count == 1) {\r
-                UpdateEditArchiveMetadataEnabled();\r
-                textSelectedMetadata.Text = list[0].ID;\r
-                octopusMetadataSelected?.Invoke(list[0].ID, null);\r
-            } else {\r
-                OctopusLookupResultSelector box = new OctopusLookupResultSelector(list, octopusMetadataSelected);\r
-                box.ShowDialog();\r
-            }\r
-            Cursor.Current = Cursors.Default;\r
-        }\r
-\r
-        private void LookupOctopusMOS(OctopusAPI api) {\r
             IEnumerable<MosObject> mosIDs = api.GetMosObjectsByID(SelectedSource?.Prefix);\r
             if (mosIDs == null) {\r
                 MessageBox.Show(this, StringResources.NINCS_TALALAT);\r
@@ -295,15 +297,15 @@ namespace Maestro {
                 UpdateEditArchiveMetadataEnabled();\r
                 textSelectedMetadata.Text = list[0].ID;\r
                 octopusMetadataSelected?.Invoke(list[0].ID, null);\r
-                //octopusIDSelector.IDSelectedFromOutside(list[0].ID);\r
-                return;\r
+            } else {\r
+                OctopusLookupResultSelector box = new OctopusLookupResultSelector(list, octopusMetadataSelected);\r
+                box.ShowDialog();\r
             }\r
-            OctopusLookupResultSelector box = new OctopusLookupResultSelector(list, octopusMetadataSelected);\r
-            box.ShowDialog();\r
         }\r
 \r
         private void UpdateLookupMetadataEnabled() {\r
-            buttonMetadata.Enabled = !String.IsNullOrEmpty(SelectedSource?.Prefix) && GetSourceType(SelectedSource?.Prefix) != SourceIDType.MediaCube;\r
+            MetadataType metadataType = GuessMetadataType(SelectedSource?.Prefix);\r
+            buttonMetadata.Enabled = !String.IsNullOrEmpty(SelectedSource?.Prefix) && metadataType != MetadataType.MediaCube && metadataType != MetadataType.None;\r
         }\r
 \r
     }\r
index 613042161dad4d59f6cf987a1984ee79171adc2a..bae458b5f5f404210077886193a4b9e9458ba5d0 100644 (file)
@@ -105,7 +105,7 @@ namespace Maestro {
         }\r
 \r
         private bool EnsureSegments(Target target) {\r
-            if (target.SaveSegments && segments == null) {\r
+            if (target.SaveSegments && (segments == null || segments.Count == 0)) {\r
                 if (selectedMetadata?.VariantID != null && selectedMetadata?.VariantID != 0)\r
                     switch (selectedMetadata.Kind) {\r
                         case MetadataType.TrafficMaterial: {\r
@@ -176,16 +176,6 @@ namespace Maestro {
             };\r
         }\r
 \r
-        private bool IsOffCheckAble(String text) {\r
-            List<CheckBox> checkBoxes = new List<CheckBox>(currentProcessors.Keys);\r
-            foreach (CheckBox actual in checkBoxes) {\r
-                Target target = actual.Tag as Target;\r
-                if (text.Equals(target.Reference))\r
-                    return false;\r
-            }\r
-            return true;\r
-        }\r
-\r
         private void HandleCheckBoxReferences(string reference, bool check) {\r
             if (String.IsNullOrEmpty(reference))\r
                 return;\r
@@ -209,14 +199,6 @@ namespace Maestro {
             return result;\r
         }\r
 \r
-        private void OnMetadataIDChanged(object sender, EventArgs e) {\r
-            UpdateProcessorButtonsEnabled();\r
-            UpdateDefineSegmentEnabled();\r
-            UpdateEditArchiveMetadataEnabled();\r
-            UpdateLookupMetadataEnabled();\r
-            archiveMetadata = null;\r
-        }\r
-\r
         private void ChangeProcessButtonsState(bool enabled) {\r
             if (panelActions.Controls == null)\r
                 return;\r
diff --git a/client/Maestro/Metadata/IDTypes.cs b/client/Maestro/Metadata/IDTypes.cs
deleted file mode 100644 (file)
index cd21a3f..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Maestro.Metadata {\r
-    public enum SourceIDType {\r
-        TrafficID = 1,\r
-        OctopusID = 2,\r
-        MediaCube = 0\r
-    }\r
-}\r
index 19083e9e0a82445fe25d15aaafb363c267a8752b..184ae1742559cd9811016c6a15db2ffa54fe14e3 100644 (file)
@@ -2,6 +2,6 @@
 \r
 namespace Maestro.Metadata {\r
     public enum MetadataType {\r
-        None, OctopusStory, OctopusPlaceHolder, TrafficMaterial = TrafficMetadataType.TrafficMaterial, TrafficPromo = TrafficMetadataType.TrafficPromo, TrafficAD = TrafficMetadataType.TrafficAD \r
+        None, MediaCube, OctopusStory, OctopusPlaceHolder, TrafficMaterial = TrafficMetadataType.TrafficMaterial, TrafficPromo = TrafficMetadataType.TrafficPromo, TrafficAD = TrafficMetadataType.TrafficAD \r
     }\r
 }\r
index 195b8e13f022daa5f14f9eee7e434c174415007c..05a5e7a07194fb3162c415c860a91e9c4fe111d8 100644 (file)
@@ -1,6 +1,6 @@
 Microsoft Visual Studio Solution File, Format Version 12.00\r
 # Visual Studio 15\r
-VisualStudioVersion = 15.0.26430.14\r
+VisualStudioVersion = 15.0.26430.15\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
@@ -48,8 +48,8 @@ Global
                {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Debug|x86.Build.0 = Debug|x86\r
                {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
                {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|Any CPU.Build.0 = Release|Any CPU\r
-               {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|x64.ActiveCfg = Release|Any CPU\r
-               {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|x64.Build.0 = Release|Any CPU\r
+               {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|x64.ActiveCfg = Release|x64\r
+               {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|x64.Build.0 = Release|x64\r
                {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|x86.ActiveCfg = Release|Any CPU\r
                {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|x86.Build.0 = Release|Any CPU\r
                {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
@@ -60,8 +60,8 @@ Global
                {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Debug|x86.Build.0 = Debug|x86\r
                {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
                {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|Any CPU.Build.0 = Release|Any CPU\r
-               {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|x64.ActiveCfg = Release|Any CPU\r
-               {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|x64.Build.0 = Release|Any CPU\r
+               {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|x64.ActiveCfg = Release|x64\r
+               {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|x64.Build.0 = Release|x64\r
                {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|x86.ActiveCfg = Release|Any CPU\r
                {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|x86.Build.0 = Release|Any CPU\r
                {8CC7C930-9DBF-487B-AED5-776937A649D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
@@ -72,8 +72,8 @@ Global
                {8CC7C930-9DBF-487B-AED5-776937A649D5}.Debug|x86.Build.0 = Debug|x86\r
                {8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
                {8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|Any CPU.Build.0 = Release|Any CPU\r
-               {8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|x64.ActiveCfg = Release|Any CPU\r
-               {8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|x64.Build.0 = Release|Any CPU\r
+               {8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|x64.ActiveCfg = Release|x64\r
+               {8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|x64.Build.0 = Release|x64\r
                {8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|x86.ActiveCfg = Release|Any CPU\r
                {8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|x86.Build.0 = Release|Any CPU\r
                {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
@@ -84,8 +84,8 @@ Global
                {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Debug|x86.Build.0 = Debug|x86\r
                {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
                {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|Any CPU.Build.0 = Release|Any CPU\r
-               {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|x64.ActiveCfg = Release|Any CPU\r
-               {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|x64.Build.0 = Release|Any CPU\r
+               {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|x64.ActiveCfg = Release|x64\r
+               {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|x64.Build.0 = Release|x64\r
                {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|x86.ActiveCfg = Release|Any CPU\r
                {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|x86.Build.0 = Release|Any CPU\r
                {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
@@ -96,7 +96,8 @@ Global
                {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Debug|x86.Build.0 = Debug|x86\r
                {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
                {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|Any CPU.Build.0 = Release|Any CPU\r
-               {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|x64.ActiveCfg = Release|Any CPU\r
+               {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|x64.ActiveCfg = Release|x64\r
+               {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|x64.Build.0 = Release|x64\r
                {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|x86.ActiveCfg = Release|x86\r
                {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|x86.Build.0 = Release|x86\r
                {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
@@ -107,8 +108,8 @@ Global
                {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Debug|x86.Build.0 = Debug|x86\r
                {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
                {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|Any CPU.Build.0 = Release|Any CPU\r
-               {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|x64.ActiveCfg = Release|Any CPU\r
-               {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|x64.Build.0 = Release|Any CPU\r
+               {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|x64.ActiveCfg = Release|x64\r
+               {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|x64.Build.0 = Release|x64\r
                {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|x86.ActiveCfg = Release|Any CPU\r
                {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|x86.Build.0 = Release|Any CPU\r
                {8C51D508-1759-4C10-84A4-80965FD074FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
@@ -119,8 +120,8 @@ Global
                {8C51D508-1759-4C10-84A4-80965FD074FF}.Debug|x86.Build.0 = Debug|Any CPU\r
                {8C51D508-1759-4C10-84A4-80965FD074FF}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
                {8C51D508-1759-4C10-84A4-80965FD074FF}.Release|Any CPU.Build.0 = Release|Any CPU\r
-               {8C51D508-1759-4C10-84A4-80965FD074FF}.Release|x64.ActiveCfg = Release|Any CPU\r
-               {8C51D508-1759-4C10-84A4-80965FD074FF}.Release|x64.Build.0 = Release|Any CPU\r
+               {8C51D508-1759-4C10-84A4-80965FD074FF}.Release|x64.ActiveCfg = Release|x64\r
+               {8C51D508-1759-4C10-84A4-80965FD074FF}.Release|x64.Build.0 = Release|x64\r
                {8C51D508-1759-4C10-84A4-80965FD074FF}.Release|x86.ActiveCfg = Release|Any CPU\r
                {8C51D508-1759-4C10-84A4-80965FD074FF}.Release|x86.Build.0 = Release|Any CPU\r
        EndGlobalSection\r
index 2f1f6c2a3dd99bb6a55e714ed4ee00f15b93bd6d..425250f87f455b13cb7b786a9a481a8f94359cc5 100644 (file)
@@ -68,7 +68,7 @@ namespace OctopusClient {
                     HideCheckBox(treeOctopus, actualNode);\r
                     MosObject[] mosObjects = story.MosObjects;\r
                     foreach (MosObject mosObject in mosObjects) {\r
-                        TreeNode node = actualNode.Nodes.Add(mosObject.ObjID, String.Format($"{mosObject.ObjID}"));\r
+                        TreeNode node = actualNode.Nodes.Add(mosObject.ObjID, String.Format($"{mosObject.ID} {mosObject.ObjID}"));\r
                         node.Tag = mosObject.ID;\r
                     }\r
                 }\r
@@ -91,7 +91,7 @@ namespace OctopusClient {
                 HideCheckBox(treeOctopus, actualNode);\r
                 MosObject[] mosObjects = story.MosObjects;\r
                 foreach (MosObject mosObject in mosObjects) {\r
-                    TreeNode node = actualNode.Nodes.Add(mosObject.ObjID, String.Format($"{mosObject.ObjID}"));\r
+                    TreeNode node = actualNode.Nodes.Add(mosObject.ObjID, String.Format($"{mosObject.ID} {mosObject.ObjID}"));\r
                     node.Tag = mosObject.ID;\r
                 }\r
             }\r
index f717a45e8f0791537ba5a40be3322a839402b5d4..e125561d241725edbc3eed99a5a950e1ca3e068e 100644 (file)
@@ -131,7 +131,7 @@ namespace TrafficClient {
         }\r
 \r
         private void OnDataGridKeyDown(object sender, KeyEventArgs e) {\r
-            if (e.KeyCode == Keys.Space && dgTraffic.CurrentCell.GetType() != typeof(DataGridViewCheckBoxCell))\r
+            if (e.KeyCode == Keys.Space && dgTraffic.CurrentCell.ColumnIndex != 0)\r
                 OnSelectionChanged(dgTraffic.SelectedRows[0]);\r
         }\r
     }\r