git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorBellai Ádám <USER\adam.bellai>
Thu, 19 Oct 2017 09:40:17 +0000 (09:40 +0000)
committerBellai Ádám <USER\adam.bellai>
Thu, 19 Oct 2017 09:40:17 +0000 (09:40 +0000)
client/IntegrationTests/PlanAIRTests.cs
client/Maestro/MaestroForm.Target.cs
client/Maestro/MaestroForm.cs
client/Maestro/Targets/UNCTargetProcessor.cs
client/PlanAIRClient/TrafficAPI.cs
client/PlanAIRClient/Workers/AdvertisementWorker.cs
client/PlanAIRClient/Workers/PromotionalWorker.cs

index 0972a51cd3cba00ddb9efb19e905ec3aac8526b4..dec97aff7c2c821cd8d87ae8c9b6364f266516ae 100644 (file)
@@ -79,7 +79,7 @@ namespace IntegrationTests {
             const int ITEM_ID = 24;\r
 \r
             //Exercise\r
-            sut.BroadcastOKForAir(ITEM_ID, true);\r
+            sut.SetBroadcastOKForAir(ITEM_ID, true);\r
         }\r
     }\r
 }\r
index 067107aa066608176ff03c20d6bafe1b049fc0b2..ee38e44226f00b2fec3c5ddc11c13746f41fa935 100644 (file)
@@ -21,6 +21,8 @@ namespace Maestro {
         public ArchiveMetadata ArchiveMetadata { get; set; }\r
         public TrafficAPI TrafficApi { get; set; }\r
         public int VariantID { get; set; }\r
+\r
+        public MetadataType MetadataKind {get; set;}\r
     }\r
 \r
     public partial class MaestroForm {\r
@@ -137,7 +139,8 @@ namespace Maestro {
                 InputFileName = sourceItem.Name,\r
                 Segments = segments == null ? null : new List<Segment>(segments),\r
                 ArchiveMetadata = ArchiveMetadata.DeepClone(archiveMetadata),\r
-                VariantID = selectedMetadata == null ? 0 : selectedMetadata.VariantID\r
+                VariantID = selectedMetadata == null ? 0 : selectedMetadata.VariantID,\r
+                MetadataKind = selectedMetadata.Kind\r
             };\r
         }\r
 \r
index 5b8c3585b5fe36e583979ff19299c0ad7405129d..462a3760e224a8873dc1b07c288fc70358f9ba7f 100644 (file)
@@ -266,24 +266,16 @@ namespace Maestro {
             searchResult.ShowDialog();\r
         }\r
 \r
-\r
         public void ReportError(DateTime time, String level, String message, Color color) {\r
-            systemMessageBindingSource.Insert(0, new SystemMessage() { Time = time, message = message, Level = level });\r
+            ObjectExtensions.SafeCall(tabControl2, () => {\r
+                systemMessageBindingSource.Insert(0, new SystemMessage() { Time = time, message = message, Level = level });\r
+            });\r
             newMSGColor = color;\r
             ActivateTabOnTabControl2(1);\r
         }\r
 \r
         private void ActivateTabOnTabControl2(int index) {\r
-            if (!tabControl2.InvokeRequired)\r
-                tabControl2.SelectedIndex = index;\r
-            else {\r
-                TabControlSelectedIndex activateErrorPageDelagate = new TabControlSelectedIndex(SetActiveTheErrorPage);\r
-                Invoke(activateErrorPageDelagate, new object[] { index });\r
-            }\r
-        }\r
-\r
-        private void SetActiveTheErrorPage(int index) {\r
-            tabControl2.SelectedIndex = index;\r
+            ObjectExtensions.SafeCall(tabControl2, () => { tabControl2.SelectedIndex = index; });\r
         }\r
 \r
         private void UpdateDataChanged() {\r
@@ -296,8 +288,8 @@ namespace Maestro {
             if (actual == null)\r
                 return;\r
             if (actual.Level.Equals("Error")) {\r
-                dataGridMessages.Rows[e.RowIndex].DefaultCellStyle.BackColor = newMSGColor;\r
-                dataGridMessages.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor = newMSGColor;\r
+                dataGridMessages.Rows[e.RowIndex].DefaultCellStyle.ForeColor = newMSGColor;\r
+                dataGridMessages.Rows[e.RowIndex].DefaultCellStyle.SelectionForeColor = newMSGColor;\r
             }\r
         }\r
 \r
index 33ee24e94c4743a38030c0b3b0a0b8506e158890..0eea131f506613a1489ad5f9a4a779e125a9aaaf 100644 (file)
@@ -102,9 +102,18 @@ namespace Maestro.Targets {
             if (parameters.TargetConfig.CreateMetadata && parameters.ArchiveMetadata != null)\r
                 CreateMetadata();\r
             if (parameters.TargetConfig.SaveSegments && parameters.Segments != null) {\r
-                parameters.TrafficApi.BroadcastOKForAir(parameters.VariantID, false);\r
-                SaveSegments();\r
-                parameters.TrafficApi.BroadcastOKForAir(parameters.VariantID, true);\r
+                switch (parameters.MetadataKind) {\r
+                    case Metadata.MetadataType.TrafficMaterial: {\r
+                            SaveMaterialSegments();\r
+                            break; }\r
+                    case Metadata.MetadataType.TrafficAD: {\r
+                            SaveADSegments();\r
+                            break; }\r
+                    case Metadata.MetadataType.TrafficPromo: {\r
+                            SavePromoSegments();\r
+                            break; }\r
+                }\r
+                \r
             }\r
             if (parameters.TargetConfig.SendEmailOnSuccess && !String.IsNullOrEmpty(parameters.TargetConfig.SuccessEmailRecipient) && !String.IsNullOrEmpty(parameters.TargetConfig.SuccessEmailPattern))\r
                 SendEmail(parameters.TargetConfig.SuccessEmailRecipient, parameters.TargetConfig.SuccessEmailPattern);\r
@@ -112,6 +121,24 @@ namespace Maestro.Targets {
             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
index 1dfcb67ac5ce242eb12e0e10c956b3bd79e428bf..9ba4108d6ccc402619651929f7ee8a63dda9b421 100644 (file)
@@ -35,7 +35,7 @@ namespace TrafficClient {
             return broadvastWorker.GetBroadcastArchiveMetadata(strParam);\r
         }\r
 \r
-        public void BroadcastOKForAir(int itemID, bool ok) {\r
+        public void SetBroadcastOKForAir(int itemID, bool ok) {\r
             broadvastWorker.SetBroadcastOKForAir(itemID, ok);\r
         }\r
 \r
@@ -47,10 +47,18 @@ 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<MamResultWrapper> 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<ArchiveMatadataWrapper> GetAdvertisementArchiveMetadata(string strParam) {\r
             return adWorker.GetAdvertisementArchiveMetadata(strParam);\r
         }\r
index 6a01a2fbf1b2bc8dacc21714aab337b51edc0116..36b41b88dccafb5f27f383aff1712ddef378cdd3 100644 (file)
@@ -58,13 +58,35 @@ namespace TrafficClient.Workers {
             foreach (clIFsp_EC_MAMAdvertismentResult actual in sqlResult) {\r
                 MamResultWrapper actualObject = new MamResultWrapper() {\r
                     MediaID = actual.t_MediaID,\r
-                    Title = actual.v_Title\r
+                    Title = actual.v_Title,\r
+                    VariantID = actual.t_SpotID\r
                 };\r
                 result.Add(actualObject);\r
             }\r
             return result;\r
         }\r
 \r
+        public void SetAdvertisementToOkForAir(int spotID, bool ok) {\r
+            try {\r
+                TryConnect();\r
+                int options = ok ? 1 : 0;\r
+                using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
+                    cmd.CommandType = CommandType.StoredProcedure;\r
+                    cmd.Parameters.AddWithValue("@Operation", 3100);\r
+                    cmd.Parameters.AddWithValue("@@ItemID", spotID);\r
+                    cmd.Parameters.AddWithValue("@@@Options", options);\r
+                    cmd.ExecuteNonQuery();\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
+        }\r
+\r
         public List<ArchiveMatadataWrapper> GetAdvertisementArchiveMetadata(string strParam) {\r
             List<clIFsp_EC_MAMAdvertismentResult> sqlResult = null;\r
             List<ArchiveMatadataWrapper> result = null;\r
index 3ddb8f55c3bf49e75db51e2e86ab920b6f442037..19f89e9461311779571aab99d427431e64dc18c9 100644 (file)
@@ -48,7 +48,8 @@ namespace TrafficClient.Workers {
                     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
+                    NextBroadcastDate = actual.t_PSStart,\r
+                    VariantID = actual.t_SpotID\r
                 };\r
                 result.Add(actualObject);\r
             }\r
@@ -73,6 +74,27 @@ namespace TrafficClient.Workers {
             return result;\r
         }\r
 \r
+        public void SetPromotionalToOkForAir(int spotID, bool ok) {\r
+            try {\r
+                TryConnect();\r
+                int options = ok ? 1 : 0;\r
+                using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
+                    cmd.CommandType = CommandType.StoredProcedure;\r
+                    cmd.Parameters.AddWithValue("@Operation", 2100);\r
+                    cmd.Parameters.AddWithValue("@@ItemID", spotID);\r
+                    cmd.Parameters.AddWithValue("@@@Options", options);\r
+                    cmd.ExecuteNonQuery();\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
+        }\r
+\r
         public List<ArchiveMatadataWrapper> GetPromotionalArchiveMetadata(string strParam) {\r
             List<clIFsp_EC_MAMPromotionalResult> sqlResult = null;\r
             List<ArchiveMatadataWrapper> result = null;\r