From a41530b1efb2a1b4c05578ef77e1f4e3de205ceb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bellai=20=C3=81d=C3=A1m?= Date: Fri, 6 Oct 2017 08:14:16 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C30547 --- client/DxPlay/PlayerForm.cs | 10 +-- client/IntegrationTests/PlanAIRTests.cs | 13 ++- client/Maestro/MaestroForm.Target.cs | 6 +- client/Maestro/MaestroForm.cs | 6 +- client/Maestro/Targets/UNCTargetProcessor.cs | 1 + client/PlanAIRClient/BroadcastWorker.cs | 92 ++++++++++++++++++++ client/PlanAIRClient/TrafficAPI.cs | 53 +++++++---- client/PlanAIRClient/TrafficClient.csproj | 1 + client/PlanAIRClient/TrafficIDSelector.cs | 6 +- 9 files changed, 152 insertions(+), 36 deletions(-) create mode 100644 client/PlanAIRClient/BroadcastWorker.cs diff --git a/client/DxPlay/PlayerForm.cs b/client/DxPlay/PlayerForm.cs index aba635fd..c282888a 100644 --- a/client/DxPlay/PlayerForm.cs +++ b/client/DxPlay/PlayerForm.cs @@ -344,10 +344,7 @@ namespace DxPlay { currentSegment.TCIn = actual; } else { MessageBox.Show("A kilépõ a belépõ elõtt van!", "Hiba"); - //így kell? - currentSegment.TCIn = null; - //vagy így? - //currentSegment.TCIn = new Timecode(); + currentSegment.TCIn = new Timecode(); } } } else { @@ -382,10 +379,7 @@ namespace DxPlay { currentSegment.TCOut = actual; } else { MessageBox.Show("A kilépõ a belépõ elõtt van!", "Hiba"); - //így kell? - currentSegment.TCIn = null; - //vagy így? - //currentSegment.TCIn = new Timecode(); + currentSegment.TCIn = new Timecode(); } } } else { diff --git a/client/IntegrationTests/PlanAIRTests.cs b/client/IntegrationTests/PlanAIRTests.cs index fd3382c9..29e8c990 100644 --- a/client/IntegrationTests/PlanAIRTests.cs +++ b/client/IntegrationTests/PlanAIRTests.cs @@ -59,7 +59,7 @@ namespace IntegrationTests { const string STR_PARAM = ""; //Exercise - List actual = sut.SearchPromotional(STR_PARAM); + List actual = sut.GetPromotionals(STR_PARAM); } [TestMethod] @@ -68,7 +68,16 @@ namespace IntegrationTests { const string STR_PARAM = ""; //Exercise - List actual = sut.SearchAdvertisement(STR_PARAM); + List actual = sut.GetAdvertisements(STR_PARAM); + } + + [TestMethod] + public void MediaOKForAirTest() { + //Fixture + const int ITEM_ID = 24; + + //Exercise + sut.MediaOKForAir(ITEM_ID); } } } diff --git a/client/Maestro/MaestroForm.Target.cs b/client/Maestro/MaestroForm.Target.cs index 7b4cab5a..f2fdc3b3 100644 --- a/client/Maestro/MaestroForm.Target.cs +++ b/client/Maestro/MaestroForm.Target.cs @@ -139,11 +139,11 @@ namespace Maestro { TrafficAPI api = trafficIDSelector.trafficAPI; List result = null; if (id.StartsWith("M")) - result = api.SearchArchiveMetadataBroadcast(id); + result = api.GetBroadcastArchiveMetadata(id); else if (id.StartsWith("P")) - result = api.SearchArchiveMetadataPromotional(id); + result = api.GetPromotionalArchiveMetadata(id); else if (id.StartsWith("R")) - result = api.SearchArchiveMetadataAdvertisement(id); + result = api.GetAdvertisementArchiveMetadata(id); if (result == null) return; ArchiveMatadataWrapper actualResult = result[0]; diff --git a/client/Maestro/MaestroForm.cs b/client/Maestro/MaestroForm.cs index 8bd406ac..d99aa6fa 100644 --- a/client/Maestro/MaestroForm.cs +++ b/client/Maestro/MaestroForm.cs @@ -220,12 +220,12 @@ namespace Maestro { Cursor.Current = Cursors.WaitCursor; List result = null; if (startingName.StartsWith("M")) - result = api.SearchBroadcast(startingName, null, null, true); + result = api.GetBroadcasts(startingName, null, null, true); else if (startingName.StartsWith("P")) - result = api.SearchPromotional(startingName); + result = api.GetPromotionals(startingName); //todo ha az adatbázis felvan töltve normális adatokkal, megnézni hogy tényleg R betüvel kezdődnek-e a reklámok else if (startingName.StartsWith("R")) - result = api.SearchAdvertisement(startingName); + result = api.GetAdvertisements(startingName); ProcessMamResults(result); } diff --git a/client/Maestro/Targets/UNCTargetProcessor.cs b/client/Maestro/Targets/UNCTargetProcessor.cs index 423671e4..2350a9d6 100644 --- a/client/Maestro/Targets/UNCTargetProcessor.cs +++ b/client/Maestro/Targets/UNCTargetProcessor.cs @@ -93,6 +93,7 @@ namespace Maestro.Targets { SaveSegments(); } + private void SaveSegments() { MaestroForm maestroForm = parent as MaestroForm; TrafficMetadata metadata = maestroForm.Configuration.Metadatas.Where(m => { return m is TrafficMetadata; }).FirstOrDefault() as TrafficMetadata; diff --git a/client/PlanAIRClient/BroadcastWorker.cs b/client/PlanAIRClient/BroadcastWorker.cs new file mode 100644 index 00000000..a0766124 --- /dev/null +++ b/client/PlanAIRClient/BroadcastWorker.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using NLog; + +namespace TrafficClient { + + public class BroadcastWorker { + + private string connectionString; + private CliFSPReader cliFSPReader; + private SqlConnection connection; + private static Logger logger = LogManager.GetCurrentClassLogger(); + + public List GetBroadcasts(string strParam, DateTime? from, DateTime? to, bool missingCopia) { + List sqlResult = null; + List result = null; + try { + TryConnect(); + using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { + cmd.CommandType = CommandType.StoredProcedure; + cmd.Parameters.AddWithValue("@Operation", 1001); + cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); + if (!missingCopia) { + cmd.Parameters.AddWithValue("@@@Options", 1); + cmd.Parameters.AddWithValue("@@StrParam1", strParam); + cmd.Parameters.AddWithValue("@@DateParam1", from.Value.Date); + cmd.Parameters.AddWithValue("@@DateParam2", to.Value.Date); + } else { + cmd.Parameters.AddWithValue("@@@Options", 24); + if (!String.IsNullOrEmpty(strParam)) + cmd.Parameters.AddWithValue("@@StrParam1", strParam); + if (from.HasValue) { + cmd.Parameters.AddWithValue("@@DateParam1", from.Value.Date); + cmd.Parameters.AddWithValue("@@DateParam2", to.Value.Date); + } + } + sqlResult = ExecuteAndReadBradcast(cmd); + result = ProcessMamBroadcastResult(sqlResult); + } + } + catch (Exception e) { + logger.Error(e.Message); + throw e; + } + finally { + connection.Close(); + } + return result; + } + + private List ProcessMamBroadcastResult(List sqlResult) { + if (sqlResult == null) + return null; + List result = new List(); + foreach (clIFsp_EC_MAMBradocastResult actual in sqlResult) { + MamResultWrapper actualObject = new MamResultWrapper() { + MediaID = actual.v_MediaID, + EpisodeTitle = actual.v_EpTitle, + Title = actual.v_ProgTitle, + EpisodeNumber = actual.v_EpisodeID, + VariantID = actual.v_VariantID.HasValue ? actual.v_VariantID.Value : -1, + Episode = actual.v_Episode.HasValue ? actual.v_Episode.Value : (short)-1, + NextBroadcastDate = actual.v_NextBroadcastDate + }; + result.Add(actualObject); + } + return result; + } + + private List ExecuteAndReadBradcast(SqlCommand cmd) { + List result = null; + using (SqlDataReader reader = cmd.ExecuteReader()) { + while (reader.Read()) { + if (result == null) + result = new List(); + clIFsp_EC_MAMBradocastResult item = cliFSPReader.ToclIFsp_MAMBroadcastResult(reader); + result.Add(item); + } + } + return result; + } + + private void TryConnect() { + if (connection.State != ConnectionState.Open) { + connection.Close(); + connection.Open(); + } + } + } +} diff --git a/client/PlanAIRClient/TrafficAPI.cs b/client/PlanAIRClient/TrafficAPI.cs index 44cbf772..5125b7de 100644 --- a/client/PlanAIRClient/TrafficAPI.cs +++ b/client/PlanAIRClient/TrafficAPI.cs @@ -2,8 +2,8 @@ using System.Collections.Generic; using System.Data; using System.Data.SqlClient; -using System.Diagnostics; using NLog; + namespace TrafficClient { public class TrafficAPI { private TrafficContext context = new TrafficContext(); @@ -18,7 +18,7 @@ namespace TrafficClient { cliFSPReader = new CliFSPReader(); } - public List SearchBroadcast(string strParam, DateTime? from, DateTime? to, bool missingCopia) { + public List GetBroadcasts(string strParam, DateTime? from, DateTime? to, bool missingCopia) { List sqlResult = null; List result = null; try { @@ -81,7 +81,6 @@ namespace TrafficClient { return result; } - public List GetSegmentReady(int itemID) { List result = null; try { @@ -170,7 +169,7 @@ namespace TrafficClient { } } - public void AddSegmentToCopia(int itemID, string strParam, long tcIn, long tcOut, bool options) { + 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)) @@ -178,7 +177,7 @@ namespace TrafficClient { try { TryConnect(); using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { - int optionsParam = options ? 1 : 0; + int optionalParam = optional ? 1 : 0; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@Operation", 1115); cmd.Parameters.AddWithValue("@@ItemID", itemID); @@ -186,7 +185,7 @@ namespace TrafficClient { cmd.Parameters.AddWithValue("@@IntParam2", tcOut); cmd.Parameters.AddWithValue("@@StrParam1", strparam); cmd.Parameters.AddWithValue("@@StrParam2", DBNull.Value); - cmd.Parameters.AddWithValue("@@@Options", optionsParam); + cmd.Parameters.AddWithValue("@@@Options", optionalParam); cmd.ExecuteNonQuery(); } } @@ -212,7 +211,7 @@ namespace TrafficClient { return result; } - public List SearchArchiveMetadataBroadcast(string strParam) { + public List GetBroadcastArchiveMetadata(string strParam) { List sqlResult = null; List result = null; try { @@ -224,7 +223,7 @@ namespace TrafficClient { cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); cmd.Parameters.AddWithValue("@@StrParam1", strParam); sqlResult = ExecuteAndReadBradcast(cmd); - result = ProcessArchiveBroadcastResult(sqlResult); + result = ProcessaBroadcastArchiveMetadatResult(sqlResult); } } catch (Exception e) { @@ -237,7 +236,7 @@ namespace TrafficClient { return result; } - public List SearchArchiveMetadataPromotional(string strParam) { + public List GetPromotionalArchiveMetadata(string strParam) { List sqlResult = null; List result = null; try { @@ -249,7 +248,7 @@ namespace TrafficClient { cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); cmd.Parameters.AddWithValue("@@StrParam1", strParam); sqlResult = ExecuteAndReadPromotionals(cmd); - result = ProcessArchivePromotionalResult(sqlResult); + result = ProcessPromotionalArchiveMetadataResult(sqlResult); } } catch (Exception e) { @@ -262,7 +261,7 @@ namespace TrafficClient { return result; } - public List SearchArchiveMetadataAdvertisement(string strParam) { + public List GetAdvertisementArchiveMetadata(string strParam) { List sqlResult = null; List result = null; try { @@ -274,7 +273,7 @@ namespace TrafficClient { cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); cmd.Parameters.AddWithValue("@@StrParam1", strParam); sqlResult = ExecuteAndReadAdvertisement(cmd); - result = ProcessArchiveAdvertisementResult(sqlResult); + result = ProcessAdvertisementArchiveMetadataResult(sqlResult); } } catch (Exception e) { @@ -287,7 +286,7 @@ namespace TrafficClient { return result; } - private List ProcessArchiveBroadcastResult(List sqlResult) { + private List ProcessaBroadcastArchiveMetadatResult(List sqlResult) { if (sqlResult == null) return null; List result = new List(); @@ -303,7 +302,7 @@ namespace TrafficClient { return result; } - private List ProcessArchivePromotionalResult(List sqlResult) { + private List ProcessPromotionalArchiveMetadataResult(List sqlResult) { if (sqlResult == null) return null; List result = new List(); @@ -318,7 +317,7 @@ namespace TrafficClient { return result; } - private List ProcessArchiveAdvertisementResult(List sqlResult) { + private List ProcessAdvertisementArchiveMetadataResult(List sqlResult) { if (sqlResult == null) return null; List result = new List(); @@ -334,7 +333,7 @@ namespace TrafficClient { return result; } - public List SearchPromotional(string strParam) { + public List GetPromotionals(string strParam) { List sqlResult = null; List result = null; try { @@ -389,7 +388,7 @@ namespace TrafficClient { return result; } - public List SearchAdvertisement(string strParam) { + public List GetAdvertisements(string strParam) { List sqlResult = null; List result = null; try { @@ -440,5 +439,25 @@ namespace TrafficClient { } return result; } + + public void MediaOKForAir(int itemID) { + try { + TryConnect(); + using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { + cmd.CommandType = CommandType.StoredProcedure; + cmd.Parameters.AddWithValue("@Operation", 1100); + cmd.Parameters.AddWithValue("@@ItemID", itemID); + cmd.Parameters.AddWithValue("@@@Options", 1); + cmd.ExecuteNonQuery(); + } + } + catch (Exception e) { + logger.Error(e.Message); + throw e; + } + finally { + connection.Close(); + } + } } } diff --git a/client/PlanAIRClient/TrafficClient.csproj b/client/PlanAIRClient/TrafficClient.csproj index f152a4c0..7ce25542 100644 --- a/client/PlanAIRClient/TrafficClient.csproj +++ b/client/PlanAIRClient/TrafficClient.csproj @@ -50,6 +50,7 @@ + diff --git a/client/PlanAIRClient/TrafficIDSelector.cs b/client/PlanAIRClient/TrafficIDSelector.cs index b8d39bab..54392a40 100644 --- a/client/PlanAIRClient/TrafficIDSelector.cs +++ b/client/PlanAIRClient/TrafficIDSelector.cs @@ -87,11 +87,11 @@ namespace TrafficClient { } MamResultWrapper[] result = null; if (radioButtonBroadCast.Checked) - result = trafficAPI.SearchBroadcast(searchText, from, to, copiaCheckBox.Checked)?.ToArray(); + result = trafficAPI.GetBroadcasts(searchText, from, to, copiaCheckBox.Checked)?.ToArray(); else if (radioButtonAD.Checked) - result = trafficAPI.SearchAdvertisement(searchText)?.ToArray(); + result = trafficAPI.GetAdvertisements(searchText)?.ToArray(); else if (radioButtonPromo.Checked) - result = trafficAPI.SearchPromotional(searchText)?.ToArray(); + result = trafficAPI.GetPromotionals(searchText)?.ToArray(); if (result == null) { dataGridView1.DataSource = null; return; -- 2.54.0