From f607be6b6ae0f7eae23046c1a2a0ffe55c350f9f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bellai=20=C3=81d=C3=A1m?= Date: Thu, 19 Oct 2017 09:40:17 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C30649 --- client/IntegrationTests/PlanAIRTests.cs | 2 +- client/Maestro/MaestroForm.Target.cs | 5 ++- client/Maestro/MaestroForm.cs | 20 ++++------- client/Maestro/Targets/UNCTargetProcessor.cs | 33 +++++++++++++++++-- client/PlanAIRClient/TrafficAPI.cs | 10 +++++- .../Workers/AdvertisementWorker.cs | 24 +++++++++++++- .../Workers/PromotionalWorker.cs | 24 +++++++++++++- 7 files changed, 96 insertions(+), 22 deletions(-) diff --git a/client/IntegrationTests/PlanAIRTests.cs b/client/IntegrationTests/PlanAIRTests.cs index 0972a51c..dec97aff 100644 --- a/client/IntegrationTests/PlanAIRTests.cs +++ b/client/IntegrationTests/PlanAIRTests.cs @@ -79,7 +79,7 @@ namespace IntegrationTests { const int ITEM_ID = 24; //Exercise - sut.BroadcastOKForAir(ITEM_ID, true); + sut.SetBroadcastOKForAir(ITEM_ID, true); } } } diff --git a/client/Maestro/MaestroForm.Target.cs b/client/Maestro/MaestroForm.Target.cs index 067107aa..ee38e442 100644 --- a/client/Maestro/MaestroForm.Target.cs +++ b/client/Maestro/MaestroForm.Target.cs @@ -21,6 +21,8 @@ namespace Maestro { public ArchiveMetadata ArchiveMetadata { get; set; } public TrafficAPI TrafficApi { get; set; } public int VariantID { get; set; } + + public MetadataType MetadataKind {get; set;} } public partial class MaestroForm { @@ -137,7 +139,8 @@ namespace Maestro { InputFileName = sourceItem.Name, Segments = segments == null ? null : new List(segments), ArchiveMetadata = ArchiveMetadata.DeepClone(archiveMetadata), - VariantID = selectedMetadata == null ? 0 : selectedMetadata.VariantID + VariantID = selectedMetadata == null ? 0 : selectedMetadata.VariantID, + MetadataKind = selectedMetadata.Kind }; } diff --git a/client/Maestro/MaestroForm.cs b/client/Maestro/MaestroForm.cs index 5b8c3585..462a3760 100644 --- a/client/Maestro/MaestroForm.cs +++ b/client/Maestro/MaestroForm.cs @@ -266,24 +266,16 @@ namespace Maestro { searchResult.ShowDialog(); } - public void ReportError(DateTime time, String level, String message, Color color) { - systemMessageBindingSource.Insert(0, new SystemMessage() { Time = time, message = message, Level = level }); + ObjectExtensions.SafeCall(tabControl2, () => { + systemMessageBindingSource.Insert(0, new SystemMessage() { Time = time, message = message, Level = level }); + }); newMSGColor = color; ActivateTabOnTabControl2(1); } private void ActivateTabOnTabControl2(int index) { - if (!tabControl2.InvokeRequired) - tabControl2.SelectedIndex = index; - else { - TabControlSelectedIndex activateErrorPageDelagate = new TabControlSelectedIndex(SetActiveTheErrorPage); - Invoke(activateErrorPageDelagate, new object[] { index }); - } - } - - private void SetActiveTheErrorPage(int index) { - tabControl2.SelectedIndex = index; + ObjectExtensions.SafeCall(tabControl2, () => { tabControl2.SelectedIndex = index; }); } private void UpdateDataChanged() { @@ -296,8 +288,8 @@ namespace Maestro { if (actual == null) return; if (actual.Level.Equals("Error")) { - dataGridMessages.Rows[e.RowIndex].DefaultCellStyle.BackColor = newMSGColor; - dataGridMessages.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor = newMSGColor; + dataGridMessages.Rows[e.RowIndex].DefaultCellStyle.ForeColor = newMSGColor; + dataGridMessages.Rows[e.RowIndex].DefaultCellStyle.SelectionForeColor = newMSGColor; } } diff --git a/client/Maestro/Targets/UNCTargetProcessor.cs b/client/Maestro/Targets/UNCTargetProcessor.cs index 33ee24e9..0eea131f 100644 --- a/client/Maestro/Targets/UNCTargetProcessor.cs +++ b/client/Maestro/Targets/UNCTargetProcessor.cs @@ -102,9 +102,18 @@ namespace Maestro.Targets { if (parameters.TargetConfig.CreateMetadata && parameters.ArchiveMetadata != null) CreateMetadata(); if (parameters.TargetConfig.SaveSegments && parameters.Segments != null) { - parameters.TrafficApi.BroadcastOKForAir(parameters.VariantID, false); - SaveSegments(); - parameters.TrafficApi.BroadcastOKForAir(parameters.VariantID, true); + switch (parameters.MetadataKind) { + case Metadata.MetadataType.TrafficMaterial: { + SaveMaterialSegments(); + break; } + case Metadata.MetadataType.TrafficAD: { + SaveADSegments(); + break; } + case Metadata.MetadataType.TrafficPromo: { + SavePromoSegments(); + break; } + } + } if (parameters.TargetConfig.SendEmailOnSuccess && !String.IsNullOrEmpty(parameters.TargetConfig.SuccessEmailRecipient) && !String.IsNullOrEmpty(parameters.TargetConfig.SuccessEmailPattern)) SendEmail(parameters.TargetConfig.SuccessEmailRecipient, parameters.TargetConfig.SuccessEmailPattern); @@ -112,6 +121,24 @@ namespace Maestro.Targets { 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(); diff --git a/client/PlanAIRClient/TrafficAPI.cs b/client/PlanAIRClient/TrafficAPI.cs index 1dfcb67a..9ba4108d 100644 --- a/client/PlanAIRClient/TrafficAPI.cs +++ b/client/PlanAIRClient/TrafficAPI.cs @@ -35,7 +35,7 @@ namespace TrafficClient { return broadvastWorker.GetBroadcastArchiveMetadata(strParam); } - public void BroadcastOKForAir(int itemID, bool ok) { + public void SetBroadcastOKForAir(int itemID, bool ok) { broadvastWorker.SetBroadcastOKForAir(itemID, ok); } @@ -47,10 +47,18 @@ 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 GetAdvertisementArchiveMetadata(string strParam) { return adWorker.GetAdvertisementArchiveMetadata(strParam); } diff --git a/client/PlanAIRClient/Workers/AdvertisementWorker.cs b/client/PlanAIRClient/Workers/AdvertisementWorker.cs index 6a01a2fb..36b41b88 100644 --- a/client/PlanAIRClient/Workers/AdvertisementWorker.cs +++ b/client/PlanAIRClient/Workers/AdvertisementWorker.cs @@ -58,13 +58,35 @@ namespace TrafficClient.Workers { foreach (clIFsp_EC_MAMAdvertismentResult actual in sqlResult) { MamResultWrapper actualObject = new MamResultWrapper() { MediaID = actual.t_MediaID, - Title = actual.v_Title + Title = actual.v_Title, + VariantID = actual.t_SpotID }; result.Add(actualObject); } return result; } + public void SetAdvertisementToOkForAir(int spotID, bool ok) { + try { + TryConnect(); + int options = ok ? 1 : 0; + using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { + cmd.CommandType = CommandType.StoredProcedure; + cmd.Parameters.AddWithValue("@Operation", 3100); + cmd.Parameters.AddWithValue("@@ItemID", spotID); + cmd.Parameters.AddWithValue("@@@Options", options); + cmd.ExecuteNonQuery(); + } + } + 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(); + } + } + public List GetAdvertisementArchiveMetadata(string strParam) { List sqlResult = null; List result = null; diff --git a/client/PlanAIRClient/Workers/PromotionalWorker.cs b/client/PlanAIRClient/Workers/PromotionalWorker.cs index 3ddb8f55..19f89e94 100644 --- a/client/PlanAIRClient/Workers/PromotionalWorker.cs +++ b/client/PlanAIRClient/Workers/PromotionalWorker.cs @@ -48,7 +48,8 @@ namespace TrafficClient.Workers { EpisodeTitle = actual.v_Title, Title = actual.v_ProgTitle, Episode = actual.v_Episode.HasValue ? actual.v_Episode.Value : (short)-1, - NextBroadcastDate = actual.t_PSStart + NextBroadcastDate = actual.t_PSStart, + VariantID = actual.t_SpotID }; result.Add(actualObject); } @@ -73,6 +74,27 @@ namespace TrafficClient.Workers { return result; } + public void SetPromotionalToOkForAir(int spotID, bool ok) { + try { + TryConnect(); + int options = ok ? 1 : 0; + using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { + cmd.CommandType = CommandType.StoredProcedure; + cmd.Parameters.AddWithValue("@Operation", 2100); + cmd.Parameters.AddWithValue("@@ItemID", spotID); + cmd.Parameters.AddWithValue("@@@Options", options); + cmd.ExecuteNonQuery(); + } + } + 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(); + } + } + public List GetPromotionalArchiveMetadata(string strParam) { List sqlResult = null; List result = null; -- 2.54.0