From: Bellai Ádám Date: Fri, 6 Oct 2017 10:56:18 +0000 (+0000) Subject: git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube... X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=5e1982fc68323ce672cc8fb2ece4ee369a5d462c;p=mediacube.git git-tfs-id: [tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C30549 --- diff --git a/client/IntegrationTests/PlanAIRTests.cs b/client/IntegrationTests/PlanAIRTests.cs index 29e8c990..c46d1060 100644 --- a/client/IntegrationTests/PlanAIRTests.cs +++ b/client/IntegrationTests/PlanAIRTests.cs @@ -22,7 +22,7 @@ namespace IntegrationTests { [TestMethod] public void GetSegmentReadyTest() { //Exercise - List actual = sut.GetSegmentReady(ITEM_ID); + List actual = sut.GetSegments(ITEM_ID); //Verify Assert.IsTrue(actual.Count > 0); @@ -77,7 +77,7 @@ namespace IntegrationTests { const int ITEM_ID = 24; //Exercise - sut.MediaOKForAir(ITEM_ID); + sut.BroadcastOKForAir(ITEM_ID); } } } diff --git a/client/Maestro/MaestroForm.Metadata.cs b/client/Maestro/MaestroForm.Metadata.cs index 91ffa1e7..7d95d55c 100644 --- a/client/Maestro/MaestroForm.Metadata.cs +++ b/client/Maestro/MaestroForm.Metadata.cs @@ -122,7 +122,7 @@ namespace Maestro { private BindingList GetMovieSegmentsFromSegments() { BindingList result = new BindingList(); TrafficAPI trafficApi = trafficIDSelector.trafficAPI; - List segments = trafficApi.GetSegmentReady(selectedMetadata.VariantID); + List segments = trafficApi.GetSegments(selectedMetadata.VariantID); if (segments != null) foreach (Segment segment in segments) { MovieSegment movieSegment = segmentConverter.ConvertToMovieSegment(segment); diff --git a/client/PlanAIRClient/Reader.cs b/client/PlanAIRClient/Reader.cs index 93d1103f..00b7a50f 100644 --- a/client/PlanAIRClient/Reader.cs +++ b/client/PlanAIRClient/Reader.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; using System.Data.SqlClient; namespace TrafficClient { - class CliFSPReader { + public class CliFSPReader { private string ReadString(SqlDataReader reader, ref int f) { string result = null; @@ -88,7 +88,7 @@ namespace TrafficClient { item.v_Duration = ReadString(reader, ref f); item.v_Stations = ReadString(reader, ref f); item.t_OkForAir = ReadBool(reader, ref f); - item.v_OkForAirs = ReadBool(reader, ref f); + item.v_OkForAirs = ReadString(reader, ref f); item.v_IsInactive = ReadBool(reader, ref f); return item; } @@ -108,7 +108,7 @@ namespace TrafficClient { item.v_TcOut = ReadString(reader, ref f); item.v_Duration = ReadString(reader, ref f); item.t_OkForAir = ReadBool(reader, ref f); - item.v_OkForAirs = ReadBool(reader, ref f); + item.v_OkForAirs = ReadString(reader, ref f); return item; } diff --git a/client/PlanAIRClient/TrafficAPI.cs b/client/PlanAIRClient/TrafficAPI.cs index 5125b7de..5edaac15 100644 --- a/client/PlanAIRClient/TrafficAPI.cs +++ b/client/PlanAIRClient/TrafficAPI.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using NLog; +using TrafficClient.Workers; namespace TrafficClient { public class TrafficAPI { @@ -11,453 +12,63 @@ namespace TrafficClient { private CliFSPReader cliFSPReader; private SqlConnection connection; private static Logger logger = LogManager.GetCurrentClassLogger(); + private BroadcastWorker broadvastWorker; + private PromotionalWorker promoWorker; + private AdvertisementWorker adWorker; + private SegmentWorker segmentWorker; public TrafficAPI(string connString, string user, string password, int timeout) { connectionString = String.Format("{0};User ID={1};Password={2};Connection Timeout={3}", connString, user, password, timeout); connection = new SqlConnection(connectionString); cliFSPReader = new CliFSPReader(); + broadvastWorker = new BroadcastWorker(connection, cliFSPReader); + promoWorker = new PromotionalWorker(connection, cliFSPReader); + adWorker = new AdvertisementWorker(connection, cliFSPReader); + segmentWorker = new SegmentWorker(connection, cliFSPReader); } 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 void TryConnect() { - if (connection.State != ConnectionState.Open) { - connection.Close(); - connection.Open(); - } - } - - 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; - } - - public List GetSegmentReady(int itemID) { - List result = null; - try { - TryConnect(); - using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { - cmd.CommandType = CommandType.StoredProcedure; - cmd.Parameters.AddWithValue("@Operation", 1010); - cmd.Parameters.AddWithValue("@@@Options", DBNull.Value); - cmd.Parameters.AddWithValue("@@ItemID", itemID); - using (SqlDataReader reader = cmd.ExecuteReader()) { - List list = new List(); - while (reader.Read()) { - clIFsp_EC_SegmentResult item = cliFSPReader.ToclIFsp_SegmentResult(reader); - list.Add(item); - } - result = ProcessSegmentResult(list); - } - } - } - catch (Exception e) { - logger.Error(e.Message); - throw e; - } - finally { - connection.Close(); - } - return result; - } - - private List ProcessSegmentResult(List sqlResult) { - if (sqlResult == null) - return null; - List result = new List(); - foreach (clIFsp_EC_SegmentResult actual in sqlResult) { - Segment actualObject = new Segment() { - TCIn = actual.v_TcIn.HasValue ? actual.v_TcIn.Value : -1, - TCOut = actual.v_TcOut.HasValue ? actual.v_TcOut.Value : -1, - Comment = actual.v_SegTitle, - Optional = actual.v_Dropable.HasValue ? actual.v_Dropable.Value : false - }; - result.Add(actualObject); - } - return result; - } - - public void DeleteSegments(int itemID) { - try { - TryConnect(); - using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { - cmd.CommandType = CommandType.StoredProcedure; - cmd.Parameters.AddWithValue("@Operation", 1110); - cmd.Parameters.AddWithValue("@@ItemID", itemID); - cmd.Parameters.AddWithValue("@@@Options", DBNull.Value); - cmd.ExecuteNonQuery(); - logger.Info(String.Format("Segments deleted from itemID {0}", itemID)); - } - } - catch (Exception e) { - logger.Error(e.Message); - throw e; - } - finally { - connection.Close(); - } - } - - public void DeleteSegment(int itemID, int segmentID) { - try { - TryConnect(); - using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { - cmd.CommandType = CommandType.StoredProcedure; - cmd.Parameters.AddWithValue("@Operation", 1111); - cmd.Parameters.AddWithValue("@@ItemID", itemID); - cmd.Parameters.AddWithValue("@@IntParam1", segmentID); - cmd.Parameters.AddWithValue("@@@Options", DBNull.Value); - cmd.ExecuteNonQuery(); - logger.Info(String.Format("{0} segment deleted from itemID: {1}", segmentID, itemID)); - } - } - catch (Exception e) { - logger.Error(e.Message); - throw e; - } - finally { - connection.Close(); - } - } - - 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)) - strparam = DBNull.Value; - try { - TryConnect(); - using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { - int optionalParam = optional ? 1 : 0; - cmd.CommandType = CommandType.StoredProcedure; - cmd.Parameters.AddWithValue("@Operation", 1115); - cmd.Parameters.AddWithValue("@@ItemID", itemID); - cmd.Parameters.AddWithValue("@@IntParam1", tcIn); - cmd.Parameters.AddWithValue("@@IntParam2", tcOut); - cmd.Parameters.AddWithValue("@@StrParam1", strparam); - cmd.Parameters.AddWithValue("@@StrParam2", DBNull.Value); - cmd.Parameters.AddWithValue("@@@Options", optionalParam); - cmd.ExecuteNonQuery(); - } - } - catch (Exception e) { - logger.Error(e.Message); - throw e; - } - finally { - connection.Close(); - } - } - - 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; + return broadvastWorker.GetBroadcasts(strParam, from, to, missingCopia); } public List GetBroadcastArchiveMetadata(string strParam) { - 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("@@@Options", 1); - cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); - cmd.Parameters.AddWithValue("@@StrParam1", strParam); - sqlResult = ExecuteAndReadBradcast(cmd); - result = ProcessaBroadcastArchiveMetadatResult(sqlResult); - } - } - catch (Exception e) { - logger.Error(e.Message); - throw e; - } - finally { - connection.Close(); - } - return result; - } - - public List GetPromotionalArchiveMetadata(string strParam) { - 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", 2001); - cmd.Parameters.AddWithValue("@@@Options", 40); - cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); - cmd.Parameters.AddWithValue("@@StrParam1", strParam); - sqlResult = ExecuteAndReadPromotionals(cmd); - result = ProcessPromotionalArchiveMetadataResult(sqlResult); - } - } - catch (Exception e) { - logger.Error(e.Message); - throw e; - } - finally { - connection.Close(); - } - return result; - } - - public List GetAdvertisementArchiveMetadata(string strParam) { - 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", 3001); - cmd.Parameters.AddWithValue("@@@Options", 40); - cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); - cmd.Parameters.AddWithValue("@@StrParam1", strParam); - sqlResult = ExecuteAndReadAdvertisement(cmd); - result = ProcessAdvertisementArchiveMetadataResult(sqlResult); - } - } - catch (Exception e) { - logger.Error(e.Message); - throw e; - } - finally { - connection.Close(); - } - return result; - } - - private List ProcessaBroadcastArchiveMetadatResult(List sqlResult) { - if (sqlResult == null) - return null; - List result = new List(); - foreach (clIFsp_EC_MAMBradocastResult actual in sqlResult) { - ArchiveMatadataWrapper actualObject = new ArchiveMatadataWrapper() { - EpisodeID = actual.v_EpisodeID, - EpisodeTitle = actual.v_EpTitle, - ProgID = actual.v_ProgrammeID.ToString(), - ProgTitle = actual.v_ProgTitle, - }; - result.Add(actualObject); - } - return result; + return broadvastWorker.GetBroadcastArchiveMetadata(strParam); } - private List ProcessPromotionalArchiveMetadataResult(List sqlResult) { - if (sqlResult == null) - return null; - List result = new List(); - foreach (clIFsp_EC_MAMPromotionalResult actual in sqlResult) { - ArchiveMatadataWrapper actualObject = new ArchiveMatadataWrapper() { - EpisodeID = actual.t_MediaID, - ProgID = actual.t_SpotID.ToString(), - ProgTitle = actual.v_ProgTitle, - }; - result.Add(actualObject); - } - return result; + public void BroadcastOKForAir(int itemID) { + broadvastWorker.BroadcastOKForAir(itemID); } - private List ProcessAdvertisementArchiveMetadataResult(List sqlResult) { - if (sqlResult == null) - return null; - List result = new List(); - foreach (clIFsp_EC_MAMAdvertismentResult actual in sqlResult) { - ArchiveMatadataWrapper actualObject = new ArchiveMatadataWrapper() { - EpisodeID = actual.t_MediaID, - EpisodeTitle = actual.v_Title, - ProgID = actual.t_SpotID.ToString(), - ProgTitle = actual.v_Title - }; - result.Add(actualObject); - } - return result; + public List GetPromotionals(string strParam) { + return promoWorker.GetPromotionals(strParam); } - public List GetPromotionals(string strParam) { - 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", 2001); - cmd.Parameters.AddWithValue("@@@Options", 40); - cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); - cmd.Parameters.AddWithValue("@@StrParam1", strParam); - sqlResult = ExecuteAndReadPromotionals(cmd); - result = ProcessMamPromotionalResult(sqlResult); - } - } - catch (Exception e) { - logger.Error(e.Message); - throw e; - } - finally { - connection.Close(); - } - return result; + public List GetPromotionalArchiveMetadata(string strParam) { + return promoWorker.GetPromotionalArchiveMetadata(strParam); } - private List ExecuteAndReadPromotionals(SqlCommand cmd) { - List result = null; - using (SqlDataReader reader = cmd.ExecuteReader()) { - while (reader.Read()) { - if (result == null) - result = new List(); - clIFsp_EC_MAMPromotionalResult item = cliFSPReader.ToclIFsp_MAMPromotionalResult(reader); - result.Add(item); - } - } - return result; + public List GetAdvertisements(string strParam) { + return adWorker.GetAdvertisements(strParam); } - private List ProcessMamPromotionalResult(List sqlResult) { - if (sqlResult == null) - return null; - List result = new List(); - foreach (clIFsp_EC_MAMPromotionalResult actual in sqlResult) { - MamResultWrapper actualObject = new MamResultWrapper() { - MediaID = actual.t_MediaID, - EpisodeTitle = actual.v_Title, - Title = actual.v_ProgTitle, - Episode = actual.v_Episode.HasValue ? actual.v_Episode.Value : (short)-1, - NextBroadcastDate = actual.t_PSStart - }; - result.Add(actualObject); - } - return result; + public List GetAdvertisementArchiveMetadata(string strParam) { + return adWorker.GetAdvertisementArchiveMetadata(strParam); } - public List GetAdvertisements(string strParam) { - 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", 3001); - cmd.Parameters.AddWithValue("@@@Options", 40); - cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); - cmd.Parameters.AddWithValue("@@StrParam1", strParam); - sqlResult = ExecuteAndReadAdvertisement(cmd); - result = ProcessMamAdvertismentResult(sqlResult); - } - } - catch (Exception e) { - logger.Error(e.Message); - throw e; - } - finally { - connection.Close(); - } - return result; + public List GetSegments(int itemID) { + return segmentWorker.GetSegments(itemID); } - private List ExecuteAndReadAdvertisement(SqlCommand cmd) { - List result = null; - using (SqlDataReader reader = cmd.ExecuteReader()) { - while (reader.Read()) { - if (result == null) - result = new List(); - clIFsp_EC_MAMAdvertismentResult item = cliFSPReader.ToclIFsp_MAMAdvertisementResult(reader); - result.Add(item); - } - } - return result; + public void DeleteSegments(int itemID) { + segmentWorker.DeleteSegments(itemID); } - private List ProcessMamAdvertismentResult(List sqlResult) { - if (sqlResult == null) - return null; - List result = new List(); - foreach (clIFsp_EC_MAMAdvertismentResult actual in sqlResult) { - MamResultWrapper actualObject = new MamResultWrapper() { - MediaID = actual.t_MediaID, - Title = actual.v_Title - }; - result.Add(actualObject); - } - return result; + public void DeleteSegment(int itemID, int segmentID) { + segmentWorker.DeleteSegment(itemID, segmentID); } - 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(); - } + public void AddSegmentToCopia(int itemID, string strParam, long tcIn, long tcOut, bool optional) { + segmentWorker.AddSegmentToCopia(itemID, strParam, tcIn, tcOut, optional); } } } diff --git a/client/PlanAIRClient/TrafficClient.csproj b/client/PlanAIRClient/TrafficClient.csproj index 7ce25542..3760d93d 100644 --- a/client/PlanAIRClient/TrafficClient.csproj +++ b/client/PlanAIRClient/TrafficClient.csproj @@ -50,7 +50,8 @@ - + + @@ -60,6 +61,7 @@ CustomDataGridView.cs + True @@ -95,6 +97,8 @@ TrafficIDSelector.cs + + diff --git a/client/PlanAIRClient/Workers/AdvertisementWorker.cs b/client/PlanAIRClient/Workers/AdvertisementWorker.cs new file mode 100644 index 00000000..2ddf0720 --- /dev/null +++ b/client/PlanAIRClient/Workers/AdvertisementWorker.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using NLog; + +namespace TrafficClient.Workers { + public class AdvertisementWorker : TrafficWorker { + + private static Logger logger = LogManager.GetCurrentClassLogger(); + + public AdvertisementWorker(SqlConnection connection, CliFSPReader cliFSPReader) : base(connection, cliFSPReader) { + } + + public List GetAdvertisements(string strParam) { + 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", 3001); + cmd.Parameters.AddWithValue("@@@Options", 40); + cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); + cmd.Parameters.AddWithValue("@@StrParam1", strParam); + sqlResult = ExecuteAndReadAdvertisement(cmd); + result = ProcessMamAdvertismentResult(sqlResult); + } + } + catch (Exception e) { + logger.Error(e.Message); + throw e; + } + finally { + connection.Close(); + } + return result; + } + + private List ExecuteAndReadAdvertisement(SqlCommand cmd) { + List result = null; + using (SqlDataReader reader = cmd.ExecuteReader()) { + while (reader.Read()) { + if (result == null) + result = new List(); + clIFsp_EC_MAMAdvertismentResult item = cliFSPReader.ToclIFsp_MAMAdvertisementResult(reader); + result.Add(item); + } + } + return result; + } + + private List ProcessMamAdvertismentResult(List sqlResult) { + if (sqlResult == null) + return null; + List result = new List(); + foreach (clIFsp_EC_MAMAdvertismentResult actual in sqlResult) { + MamResultWrapper actualObject = new MamResultWrapper() { + MediaID = actual.t_MediaID, + Title = actual.v_Title + }; + result.Add(actualObject); + } + return result; + } + + public List GetAdvertisementArchiveMetadata(string strParam) { + 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", 3001); + cmd.Parameters.AddWithValue("@@@Options", 40); + cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); + cmd.Parameters.AddWithValue("@@StrParam1", strParam); + sqlResult = ExecuteAndReadAdvertisement(cmd); + result = ProcessAdvertisementArchiveMetadataResult(sqlResult); + } + } + catch (Exception e) { + logger.Error(e.Message); + throw e; + } + finally { + connection.Close(); + } + return result; + } + + private List ProcessAdvertisementArchiveMetadataResult(List sqlResult) { + if (sqlResult == null) + return null; + List result = new List(); + foreach (clIFsp_EC_MAMAdvertismentResult actual in sqlResult) { + ArchiveMatadataWrapper actualObject = new ArchiveMatadataWrapper() { + EpisodeID = actual.t_MediaID, + EpisodeTitle = actual.v_Title, + ProgID = actual.t_SpotID.ToString(), + ProgTitle = actual.v_Title + }; + result.Add(actualObject); + } + return result; + } + } +} diff --git a/client/PlanAIRClient/BroadcastWorker.cs b/client/PlanAIRClient/Workers/BroadcastWorker.cs similarity index 55% rename from client/PlanAIRClient/BroadcastWorker.cs rename to client/PlanAIRClient/Workers/BroadcastWorker.cs index a0766124..ec29695f 100644 --- a/client/PlanAIRClient/BroadcastWorker.cs +++ b/client/PlanAIRClient/Workers/BroadcastWorker.cs @@ -4,15 +4,16 @@ using System.Data; using System.Data.SqlClient; using NLog; -namespace TrafficClient { +namespace TrafficClient.Workers { - public class BroadcastWorker { + public class BroadcastWorker : TrafficWorker { - private string connectionString; - private CliFSPReader cliFSPReader; - private SqlConnection connection; private static Logger logger = LogManager.GetCurrentClassLogger(); + public BroadcastWorker(SqlConnection connection, CliFSPReader cliFSPReader) + : base(connection, cliFSPReader){ + } + public List GetBroadcasts(string strParam, DateTime? from, DateTime? to, bool missingCopia) { List sqlResult = null; List result = null; @@ -82,10 +83,64 @@ namespace TrafficClient { return result; } - private void TryConnect() { - if (connection.State != ConnectionState.Open) { + public List GetBroadcastArchiveMetadata(string strParam) { + 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("@@@Options", 1); + cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); + cmd.Parameters.AddWithValue("@@StrParam1", strParam); + sqlResult = ExecuteAndReadBradcast(cmd); + result = ProcessaBroadcastArchiveMetadatResult(sqlResult); + } + } + catch (Exception e) { + logger.Error(e.Message); + throw e; + } + finally { + connection.Close(); + } + return result; + } + + private List ProcessaBroadcastArchiveMetadatResult(List sqlResult) { + if (sqlResult == null) + return null; + List result = new List(); + foreach (clIFsp_EC_MAMBradocastResult actual in sqlResult) { + ArchiveMatadataWrapper actualObject = new ArchiveMatadataWrapper() { + EpisodeID = actual.v_EpisodeID, + EpisodeTitle = actual.v_EpTitle, + ProgID = actual.v_ProgrammeID.ToString(), + ProgTitle = actual.v_ProgTitle, + }; + result.Add(actualObject); + } + return result; + } + + public void BroadcastOKForAir(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(); - connection.Open(); } } } diff --git a/client/PlanAIRClient/Workers/PromotionalWorker.cs b/client/PlanAIRClient/Workers/PromotionalWorker.cs new file mode 100644 index 00000000..ec61c8f0 --- /dev/null +++ b/client/PlanAIRClient/Workers/PromotionalWorker.cs @@ -0,0 +1,116 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using NLog; + +namespace TrafficClient.Workers { + public class PromotionalWorker : TrafficWorker { + + private static Logger logger = LogManager.GetCurrentClassLogger(); + + public PromotionalWorker(SqlConnection connection, CliFSPReader cliFSPReader) + : base(connection, cliFSPReader) { + } + + public List GetPromotionals(string strParam) { + 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", 2001); + cmd.Parameters.AddWithValue("@@@Options", 16); + cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); + cmd.Parameters.AddWithValue("@@StrParam1", strParam); + sqlResult = ExecuteAndReadPromotionals(cmd); + result = ProcessMamPromotionalResult(sqlResult); + } + } + catch (Exception e) { + logger.Error(e.Message); + throw e; + } + finally { + connection.Close(); + } + return result; + } + + private List ProcessMamPromotionalResult(List sqlResult) { + if (sqlResult == null) + return null; + List result = new List(); + foreach (clIFsp_EC_MAMPromotionalResult actual in sqlResult) { + MamResultWrapper actualObject = new MamResultWrapper() { + MediaID = actual.t_MediaID, + EpisodeTitle = actual.v_Title, + Title = actual.v_ProgTitle, + Episode = actual.v_Episode.HasValue ? actual.v_Episode.Value : (short)-1, + NextBroadcastDate = actual.t_PSStart + }; + result.Add(actualObject); + } + return result; + } + + private List ExecuteAndReadPromotionals(SqlCommand cmd) { + List result = null; + try { + using (SqlDataReader reader = cmd.ExecuteReader()) { + while (reader.Read()) { + if (result == null) + result = new List(); + clIFsp_EC_MAMPromotionalResult item = cliFSPReader.ToclIFsp_MAMPromotionalResult(reader); + result.Add(item); + } + } + } + catch (Exception e) { + logger.Error(e.Message); + } + return result; + } + + public List GetPromotionalArchiveMetadata(string strParam) { + 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", 2001); + cmd.Parameters.AddWithValue("@@@Options", 40); + cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value); + cmd.Parameters.AddWithValue("@@StrParam1", strParam); + sqlResult = ExecuteAndReadPromotionals(cmd); + result = ProcessPromotionalArchiveMetadataResult(sqlResult); + } + } + catch (Exception e) { + logger.Error(e.Message); + throw e; + } + finally { + connection.Close(); + } + return result; + } + + private List ProcessPromotionalArchiveMetadataResult(List sqlResult) { + if (sqlResult == null) + return null; + List result = new List(); + foreach (clIFsp_EC_MAMPromotionalResult actual in sqlResult) { + ArchiveMatadataWrapper actualObject = new ArchiveMatadataWrapper() { + EpisodeID = actual.t_MediaID, + ProgID = actual.t_SpotID.ToString(), + ProgTitle = actual.v_ProgTitle, + }; + result.Add(actualObject); + } + return result; + } + } +} diff --git a/client/PlanAIRClient/Workers/SegmentWorker.cs b/client/PlanAIRClient/Workers/SegmentWorker.cs new file mode 100644 index 00000000..16514d53 --- /dev/null +++ b/client/PlanAIRClient/Workers/SegmentWorker.cs @@ -0,0 +1,133 @@ +using System; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using NLog; + +namespace TrafficClient.Workers { + public class SegmentWorker : TrafficWorker { + + private static Logger logger = LogManager.GetCurrentClassLogger(); + + public SegmentWorker(SqlConnection connection, CliFSPReader cliFSPReader) : base(connection, cliFSPReader) { + } + + public List GetSegments(int itemID) { + List result = null; + try { + TryConnect(); + using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { + cmd.CommandType = CommandType.StoredProcedure; + cmd.Parameters.AddWithValue("@Operation", 1010); + cmd.Parameters.AddWithValue("@@@Options", DBNull.Value); + cmd.Parameters.AddWithValue("@@ItemID", itemID); + using (SqlDataReader reader = cmd.ExecuteReader()) { + List list = new List(); + while (reader.Read()) { + clIFsp_EC_SegmentResult item = cliFSPReader.ToclIFsp_SegmentResult(reader); + list.Add(item); + } + result = ProcessSegmentResult(list); + } + } + } + catch (Exception e) { + logger.Error(e.Message); + throw e; + } + finally { + connection.Close(); + } + return result; + } + + private List ProcessSegmentResult(List sqlResult) { + if (sqlResult == null) + return null; + List result = new List(); + foreach (clIFsp_EC_SegmentResult actual in sqlResult) { + Segment actualObject = new Segment() { + TCIn = actual.v_TcIn.HasValue ? actual.v_TcIn.Value : -1, + TCOut = actual.v_TcOut.HasValue ? actual.v_TcOut.Value : -1, + Comment = actual.v_SegTitle, + Optional = actual.v_Dropable.HasValue ? actual.v_Dropable.Value : false + }; + result.Add(actualObject); + } + return result; + } + + public void DeleteSegments(int itemID) { + try { + TryConnect(); + using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { + cmd.CommandType = CommandType.StoredProcedure; + cmd.Parameters.AddWithValue("@Operation", 1110); + cmd.Parameters.AddWithValue("@@ItemID", itemID); + cmd.Parameters.AddWithValue("@@@Options", DBNull.Value); + cmd.ExecuteNonQuery(); + logger.Info(String.Format("Segments deleted from itemID {0}", itemID)); + } + } + catch (Exception e) { + logger.Error(e.Message); + throw e; + } + finally { + connection.Close(); + } + } + + public void DeleteSegment(int itemID, int segmentID) { + try { + TryConnect(); + using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { + cmd.CommandType = CommandType.StoredProcedure; + cmd.Parameters.AddWithValue("@Operation", 1111); + cmd.Parameters.AddWithValue("@@ItemID", itemID); + cmd.Parameters.AddWithValue("@@IntParam1", segmentID); + cmd.Parameters.AddWithValue("@@@Options", DBNull.Value); + cmd.ExecuteNonQuery(); + logger.Info(String.Format("{0} segment deleted from itemID: {1}", segmentID, itemID)); + } + } + catch (Exception e) { + logger.Error(e.Message); + throw e; + } + finally { + connection.Close(); + } + } + + 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)) + strparam = DBNull.Value; + try { + TryConnect(); + using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) { + int optionalParam = optional ? 1 : 0; + cmd.CommandType = CommandType.StoredProcedure; + cmd.Parameters.AddWithValue("@Operation", 1115); + cmd.Parameters.AddWithValue("@@ItemID", itemID); + cmd.Parameters.AddWithValue("@@IntParam1", tcIn); + cmd.Parameters.AddWithValue("@@IntParam2", tcOut); + cmd.Parameters.AddWithValue("@@StrParam1", strparam); + cmd.Parameters.AddWithValue("@@StrParam2", DBNull.Value); + cmd.Parameters.AddWithValue("@@@Options", optionalParam); + cmd.ExecuteNonQuery(); + } + } + catch (Exception e) { + logger.Error(e.Message); + throw e; + } + finally { + connection.Close(); + } + } + } +} diff --git a/client/PlanAIRClient/Workers/TrafficWorker.cs b/client/PlanAIRClient/Workers/TrafficWorker.cs new file mode 100644 index 00000000..793b156f --- /dev/null +++ b/client/PlanAIRClient/Workers/TrafficWorker.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; + +namespace TrafficClient.Workers { + public class TrafficWorker { + + protected CliFSPReader cliFSPReader; + protected SqlConnection connection; + + public TrafficWorker(SqlConnection connection, CliFSPReader cliFSPReader) { + this.connection = connection; + this.cliFSPReader = cliFSPReader; + } + protected void TryConnect() { + if (connection.State != ConnectionState.Open) { + connection.Close(); + connection.Open(); + } + } + + } +} diff --git a/client/PlanAIRClient/clIFsp_EC_MAMAdvertismentsResult.cs b/client/PlanAIRClient/clIFsp_EC_MAMAdvertismentsResult.cs index 00cee67e..d3fdab2f 100644 --- a/client/PlanAIRClient/clIFsp_EC_MAMAdvertismentsResult.cs +++ b/client/PlanAIRClient/clIFsp_EC_MAMAdvertismentsResult.cs @@ -31,7 +31,7 @@ namespace TrafficClient { private System.Nullable _t_OkForAir; - private System.Nullable _v_OkForAirs; + private string _v_OkForAirs; public clIFsp_EC_MAMAdvertismentResult() { } @@ -180,8 +180,8 @@ namespace TrafficClient { } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_v_OkForAirs", DbType = "Bit")] - public System.Nullable v_OkForAirs { + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_v_OkForAirs", DbType = "NVarchar(60)")] + public string v_OkForAirs { get { return this._v_OkForAirs; } diff --git a/client/PlanAIRClient/clIFsp_EC_MAMPromotionalResult.cs b/client/PlanAIRClient/clIFsp_EC_MAMPromotionalResult.cs index 2a94fe37..01ffebac 100644 --- a/client/PlanAIRClient/clIFsp_EC_MAMPromotionalResult.cs +++ b/client/PlanAIRClient/clIFsp_EC_MAMPromotionalResult.cs @@ -35,7 +35,7 @@ private System.Nullable _t_OkForAir; - private System.Nullable _v_OkForAirs; + private string _v_OkForAirs; private System.Nullable _v_IsInactive; @@ -246,8 +246,8 @@ } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_v_OkForAirs", DbType = "Bit")] - public System.Nullable v_OkForAirs { + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_v_OkForAirs", DbType = "NVarchar(60)")] + public string v_OkForAirs { get { return this._v_OkForAirs; }