const int ITEM_ID = 24;\r
\r
//Exercise\r
- sut.BroadcastOKForAir(ITEM_ID, true);\r
+ sut.SetBroadcastOKForAir(ITEM_ID, true);\r
}\r
}\r
}\r
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
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
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
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
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
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
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
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
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
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
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