[TestMethod]\r
public void GetSegmentReadyTest() {\r
//Exercise\r
- List<Segment> actual = sut.GetSegmentReady(ITEM_ID);\r
+ List<Segment> actual = sut.GetSegments(ITEM_ID);\r
\r
//Verify\r
Assert.IsTrue(actual.Count > 0);\r
const int ITEM_ID = 24;\r
\r
//Exercise\r
- sut.MediaOKForAir(ITEM_ID);\r
+ sut.BroadcastOKForAir(ITEM_ID);\r
}\r
}\r
}\r
private BindingList<MovieSegment> GetMovieSegmentsFromSegments() {\r
BindingList<MovieSegment> result = new BindingList<MovieSegment>();\r
TrafficAPI trafficApi = trafficIDSelector.trafficAPI;\r
- List<Segment> segments = trafficApi.GetSegmentReady(selectedMetadata.VariantID);\r
+ List<Segment> segments = trafficApi.GetSegments(selectedMetadata.VariantID);\r
if (segments != null)\r
foreach (Segment segment in segments) {\r
MovieSegment movieSegment = segmentConverter.ConvertToMovieSegment(segment);\r
using System.Data.SqlClient;\r
\r
namespace TrafficClient {\r
- class CliFSPReader {\r
+ public class CliFSPReader {\r
\r
private string ReadString(SqlDataReader reader, ref int f) {\r
string result = null;\r
item.v_Duration = ReadString(reader, ref f);\r
item.v_Stations = ReadString(reader, ref f);\r
item.t_OkForAir = ReadBool(reader, ref f);\r
- item.v_OkForAirs = ReadBool(reader, ref f);\r
+ item.v_OkForAirs = ReadString(reader, ref f);\r
item.v_IsInactive = ReadBool(reader, ref f);\r
return item;\r
}\r
item.v_TcOut = ReadString(reader, ref f);\r
item.v_Duration = ReadString(reader, ref f);\r
item.t_OkForAir = ReadBool(reader, ref f);\r
- item.v_OkForAirs = ReadBool(reader, ref f);\r
+ item.v_OkForAirs = ReadString(reader, ref f);\r
return item;\r
}\r
\r
using System.Data;\r
using System.Data.SqlClient;\r
using NLog;\r
+using TrafficClient.Workers;\r
\r
namespace TrafficClient {\r
public class TrafficAPI {\r
private CliFSPReader cliFSPReader;\r
private SqlConnection connection;\r
private static Logger logger = LogManager.GetCurrentClassLogger();\r
+ private BroadcastWorker broadvastWorker;\r
+ private PromotionalWorker promoWorker;\r
+ private AdvertisementWorker adWorker;\r
+ private SegmentWorker segmentWorker;\r
\r
public TrafficAPI(string connString, string user, string password, int timeout) {\r
connectionString = String.Format("{0};User ID={1};Password={2};Connection Timeout={3}", connString, user, password, timeout);\r
connection = new SqlConnection(connectionString);\r
cliFSPReader = new CliFSPReader();\r
+ broadvastWorker = new BroadcastWorker(connection, cliFSPReader);\r
+ promoWorker = new PromotionalWorker(connection, cliFSPReader);\r
+ adWorker = new AdvertisementWorker(connection, cliFSPReader);\r
+ segmentWorker = new SegmentWorker(connection, cliFSPReader);\r
}\r
\r
public List<MamResultWrapper> GetBroadcasts(string strParam, DateTime? from, DateTime? to, bool missingCopia) {\r
- List<clIFsp_EC_MAMBradocastResult> sqlResult = null;\r
- List<MamResultWrapper> result = null;\r
- try {\r
- TryConnect();\r
- using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
- cmd.CommandType = CommandType.StoredProcedure;\r
- cmd.Parameters.AddWithValue("@Operation", 1001);\r
- cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value);\r
- if (!missingCopia) {\r
- cmd.Parameters.AddWithValue("@@@Options", 1);\r
- cmd.Parameters.AddWithValue("@@StrParam1", strParam);\r
- cmd.Parameters.AddWithValue("@@DateParam1", from.Value.Date);\r
- cmd.Parameters.AddWithValue("@@DateParam2", to.Value.Date);\r
- } else {\r
- cmd.Parameters.AddWithValue("@@@Options", 24);\r
- if (!String.IsNullOrEmpty(strParam))\r
- cmd.Parameters.AddWithValue("@@StrParam1", strParam);\r
- if (from.HasValue) {\r
- cmd.Parameters.AddWithValue("@@DateParam1", from.Value.Date);\r
- cmd.Parameters.AddWithValue("@@DateParam2", to.Value.Date);\r
- }\r
- }\r
- sqlResult = ExecuteAndReadBradcast(cmd);\r
- result = ProcessMamBroadcastResult(sqlResult);\r
- }\r
- }\r
- catch (Exception e) {\r
- logger.Error(e.Message);\r
- throw e;\r
- }\r
- finally {\r
- connection.Close();\r
- }\r
- return result;\r
- }\r
-\r
- private void TryConnect() {\r
- if (connection.State != ConnectionState.Open) {\r
- connection.Close();\r
- connection.Open();\r
- }\r
- }\r
-\r
- private List<MamResultWrapper> ProcessMamBroadcastResult(List<clIFsp_EC_MAMBradocastResult> sqlResult) {\r
- if (sqlResult == null)\r
- return null;\r
- List<MamResultWrapper> result = new List<MamResultWrapper>();\r
- foreach (clIFsp_EC_MAMBradocastResult actual in sqlResult) {\r
- MamResultWrapper actualObject = new MamResultWrapper() {\r
- MediaID = actual.v_MediaID,\r
- EpisodeTitle = actual.v_EpTitle,\r
- Title = actual.v_ProgTitle,\r
- EpisodeNumber = actual.v_EpisodeID,\r
- VariantID = actual.v_VariantID.HasValue ? actual.v_VariantID.Value : -1,\r
- Episode = actual.v_Episode.HasValue ? actual.v_Episode.Value : (short)-1,\r
- NextBroadcastDate = actual.v_NextBroadcastDate\r
- };\r
- result.Add(actualObject);\r
- }\r
- return result;\r
- }\r
-\r
- public List<Segment> GetSegmentReady(int itemID) {\r
- List<Segment> result = null;\r
- try {\r
- TryConnect();\r
- using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
- cmd.CommandType = CommandType.StoredProcedure;\r
- cmd.Parameters.AddWithValue("@Operation", 1010);\r
- cmd.Parameters.AddWithValue("@@@Options", DBNull.Value);\r
- cmd.Parameters.AddWithValue("@@ItemID", itemID);\r
- using (SqlDataReader reader = cmd.ExecuteReader()) {\r
- List<clIFsp_EC_SegmentResult> list = new List<clIFsp_EC_SegmentResult>();\r
- while (reader.Read()) {\r
- clIFsp_EC_SegmentResult item = cliFSPReader.ToclIFsp_SegmentResult(reader);\r
- list.Add(item);\r
- }\r
- result = ProcessSegmentResult(list);\r
- }\r
- }\r
- }\r
- catch (Exception e) {\r
- logger.Error(e.Message);\r
- throw e;\r
- }\r
- finally {\r
- connection.Close();\r
- }\r
- return result;\r
- }\r
-\r
- private List<Segment> ProcessSegmentResult(List<clIFsp_EC_SegmentResult> sqlResult) {\r
- if (sqlResult == null)\r
- return null;\r
- List<Segment> result = new List<Segment>();\r
- foreach (clIFsp_EC_SegmentResult actual in sqlResult) {\r
- Segment actualObject = new Segment() {\r
- TCIn = actual.v_TcIn.HasValue ? actual.v_TcIn.Value : -1,\r
- TCOut = actual.v_TcOut.HasValue ? actual.v_TcOut.Value : -1,\r
- Comment = actual.v_SegTitle,\r
- Optional = actual.v_Dropable.HasValue ? actual.v_Dropable.Value : false\r
- };\r
- result.Add(actualObject);\r
- }\r
- return result;\r
- }\r
-\r
- public void DeleteSegments(int itemID) {\r
- try {\r
- TryConnect();\r
- using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
- cmd.CommandType = CommandType.StoredProcedure;\r
- cmd.Parameters.AddWithValue("@Operation", 1110);\r
- cmd.Parameters.AddWithValue("@@ItemID", itemID);\r
- cmd.Parameters.AddWithValue("@@@Options", DBNull.Value);\r
- cmd.ExecuteNonQuery();\r
- logger.Info(String.Format("Segments deleted from itemID {0}", itemID));\r
- }\r
- }\r
- catch (Exception e) {\r
- logger.Error(e.Message);\r
- throw e;\r
- }\r
- finally {\r
- connection.Close();\r
- }\r
- }\r
-\r
- public void DeleteSegment(int itemID, int segmentID) {\r
- try {\r
- TryConnect();\r
- using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
- cmd.CommandType = CommandType.StoredProcedure;\r
- cmd.Parameters.AddWithValue("@Operation", 1111);\r
- cmd.Parameters.AddWithValue("@@ItemID", itemID);\r
- cmd.Parameters.AddWithValue("@@IntParam1", segmentID);\r
- cmd.Parameters.AddWithValue("@@@Options", DBNull.Value);\r
- cmd.ExecuteNonQuery();\r
- logger.Info(String.Format("{0} segment deleted from itemID: {1}", segmentID, itemID));\r
- }\r
- }\r
- catch (Exception e) {\r
- logger.Error(e.Message);\r
- throw e;\r
- }\r
- finally {\r
- connection.Close();\r
- }\r
- }\r
-\r
- public void AddSegmentToCopia(int itemID, string strParam, long tcIn, long tcOut, bool optional) {\r
- //string strparam = String.IsNullOrEmpty(strParam) ? string.Empty : strParam;\r
- object strparam = strParam;\r
- if (String.IsNullOrEmpty(strParam))\r
- strparam = DBNull.Value;\r
- try {\r
- TryConnect();\r
- using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
- int optionalParam = optional ? 1 : 0;\r
- cmd.CommandType = CommandType.StoredProcedure;\r
- cmd.Parameters.AddWithValue("@Operation", 1115);\r
- cmd.Parameters.AddWithValue("@@ItemID", itemID);\r
- cmd.Parameters.AddWithValue("@@IntParam1", tcIn);\r
- cmd.Parameters.AddWithValue("@@IntParam2", tcOut);\r
- cmd.Parameters.AddWithValue("@@StrParam1", strparam);\r
- cmd.Parameters.AddWithValue("@@StrParam2", DBNull.Value);\r
- cmd.Parameters.AddWithValue("@@@Options", optionalParam);\r
- cmd.ExecuteNonQuery();\r
- }\r
- }\r
- catch (Exception e) {\r
- logger.Error(e.Message);\r
- throw e;\r
- }\r
- finally {\r
- connection.Close();\r
- }\r
- }\r
-\r
- private List<clIFsp_EC_MAMBradocastResult> ExecuteAndReadBradcast(SqlCommand cmd) {\r
- List<clIFsp_EC_MAMBradocastResult> result = null;\r
- using (SqlDataReader reader = cmd.ExecuteReader()) {\r
- while (reader.Read()) {\r
- if (result == null)\r
- result = new List<clIFsp_EC_MAMBradocastResult>();\r
- clIFsp_EC_MAMBradocastResult item = cliFSPReader.ToclIFsp_MAMBroadcastResult(reader);\r
- result.Add(item);\r
- }\r
- }\r
- return result;\r
+ return broadvastWorker.GetBroadcasts(strParam, from, to, missingCopia);\r
}\r
\r
public List<ArchiveMatadataWrapper> GetBroadcastArchiveMetadata(string strParam) {\r
- List<clIFsp_EC_MAMBradocastResult> sqlResult = null;\r
- List<ArchiveMatadataWrapper> result = null;\r
- try {\r
- TryConnect();\r
- using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
- cmd.CommandType = CommandType.StoredProcedure;\r
- cmd.Parameters.AddWithValue("@Operation", 1001);\r
- cmd.Parameters.AddWithValue("@@@Options", 1);\r
- cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value);\r
- cmd.Parameters.AddWithValue("@@StrParam1", strParam);\r
- sqlResult = ExecuteAndReadBradcast(cmd);\r
- result = ProcessaBroadcastArchiveMetadatResult(sqlResult);\r
- }\r
- }\r
- catch (Exception e) {\r
- logger.Error(e.Message);\r
- throw e;\r
- }\r
- finally {\r
- connection.Close();\r
- }\r
- return result;\r
- }\r
-\r
- public List<ArchiveMatadataWrapper> GetPromotionalArchiveMetadata(string strParam) {\r
- List<clIFsp_EC_MAMPromotionalResult> sqlResult = null;\r
- List<ArchiveMatadataWrapper> result = null;\r
- try {\r
- TryConnect();\r
- using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
- cmd.CommandType = CommandType.StoredProcedure;\r
- cmd.Parameters.AddWithValue("@Operation", 2001);\r
- cmd.Parameters.AddWithValue("@@@Options", 40);\r
- cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value);\r
- cmd.Parameters.AddWithValue("@@StrParam1", strParam);\r
- sqlResult = ExecuteAndReadPromotionals(cmd);\r
- result = ProcessPromotionalArchiveMetadataResult(sqlResult);\r
- }\r
- }\r
- catch (Exception e) {\r
- logger.Error(e.Message);\r
- throw e;\r
- }\r
- finally {\r
- connection.Close();\r
- }\r
- return result;\r
- }\r
-\r
- public List<ArchiveMatadataWrapper> GetAdvertisementArchiveMetadata(string strParam) {\r
- List<clIFsp_EC_MAMAdvertismentResult> sqlResult = null;\r
- List<ArchiveMatadataWrapper> result = null;\r
- try {\r
- TryConnect();\r
- using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
- cmd.CommandType = CommandType.StoredProcedure;\r
- cmd.Parameters.AddWithValue("@Operation", 3001);\r
- cmd.Parameters.AddWithValue("@@@Options", 40);\r
- cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value);\r
- cmd.Parameters.AddWithValue("@@StrParam1", strParam);\r
- sqlResult = ExecuteAndReadAdvertisement(cmd);\r
- result = ProcessAdvertisementArchiveMetadataResult(sqlResult);\r
- }\r
- }\r
- catch (Exception e) {\r
- logger.Error(e.Message);\r
- throw e;\r
- }\r
- finally {\r
- connection.Close();\r
- }\r
- return result;\r
- }\r
-\r
- private List<ArchiveMatadataWrapper> ProcessaBroadcastArchiveMetadatResult(List<clIFsp_EC_MAMBradocastResult> sqlResult) {\r
- if (sqlResult == null)\r
- return null;\r
- List<ArchiveMatadataWrapper> result = new List<ArchiveMatadataWrapper>();\r
- foreach (clIFsp_EC_MAMBradocastResult actual in sqlResult) {\r
- ArchiveMatadataWrapper actualObject = new ArchiveMatadataWrapper() {\r
- EpisodeID = actual.v_EpisodeID,\r
- EpisodeTitle = actual.v_EpTitle,\r
- ProgID = actual.v_ProgrammeID.ToString(),\r
- ProgTitle = actual.v_ProgTitle,\r
- };\r
- result.Add(actualObject);\r
- }\r
- return result;\r
+ return broadvastWorker.GetBroadcastArchiveMetadata(strParam);\r
}\r
\r
- private List<ArchiveMatadataWrapper> ProcessPromotionalArchiveMetadataResult(List<clIFsp_EC_MAMPromotionalResult> sqlResult) {\r
- if (sqlResult == null)\r
- return null;\r
- List<ArchiveMatadataWrapper> result = new List<ArchiveMatadataWrapper>();\r
- foreach (clIFsp_EC_MAMPromotionalResult actual in sqlResult) {\r
- ArchiveMatadataWrapper actualObject = new ArchiveMatadataWrapper() {\r
- EpisodeID = actual.t_MediaID,\r
- ProgID = actual.t_SpotID.ToString(),\r
- ProgTitle = actual.v_ProgTitle,\r
- };\r
- result.Add(actualObject);\r
- }\r
- return result;\r
+ public void BroadcastOKForAir(int itemID) {\r
+ broadvastWorker.BroadcastOKForAir(itemID);\r
}\r
\r
- private List<ArchiveMatadataWrapper> ProcessAdvertisementArchiveMetadataResult(List<clIFsp_EC_MAMAdvertismentResult> sqlResult) {\r
- if (sqlResult == null)\r
- return null;\r
- List<ArchiveMatadataWrapper> result = new List<ArchiveMatadataWrapper>();\r
- foreach (clIFsp_EC_MAMAdvertismentResult actual in sqlResult) {\r
- ArchiveMatadataWrapper actualObject = new ArchiveMatadataWrapper() {\r
- EpisodeID = actual.t_MediaID,\r
- EpisodeTitle = actual.v_Title,\r
- ProgID = actual.t_SpotID.ToString(),\r
- ProgTitle = actual.v_Title\r
- };\r
- result.Add(actualObject);\r
- }\r
- return result;\r
+ public List<MamResultWrapper> GetPromotionals(string strParam) {\r
+ return promoWorker.GetPromotionals(strParam);\r
}\r
\r
- public List<MamResultWrapper> GetPromotionals(string strParam) {\r
- List<clIFsp_EC_MAMPromotionalResult> sqlResult = null;\r
- List<MamResultWrapper> result = null;\r
- try {\r
- TryConnect();\r
- using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
- cmd.CommandType = CommandType.StoredProcedure;\r
- cmd.Parameters.AddWithValue("@Operation", 2001);\r
- cmd.Parameters.AddWithValue("@@@Options", 40);\r
- cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value);\r
- cmd.Parameters.AddWithValue("@@StrParam1", strParam);\r
- sqlResult = ExecuteAndReadPromotionals(cmd);\r
- result = ProcessMamPromotionalResult(sqlResult);\r
- }\r
- }\r
- catch (Exception e) {\r
- logger.Error(e.Message);\r
- throw e;\r
- }\r
- finally {\r
- connection.Close();\r
- }\r
- return result;\r
+ public List<ArchiveMatadataWrapper> GetPromotionalArchiveMetadata(string strParam) {\r
+ return promoWorker.GetPromotionalArchiveMetadata(strParam);\r
}\r
\r
- private List<clIFsp_EC_MAMPromotionalResult> ExecuteAndReadPromotionals(SqlCommand cmd) {\r
- List<clIFsp_EC_MAMPromotionalResult> result = null;\r
- using (SqlDataReader reader = cmd.ExecuteReader()) {\r
- while (reader.Read()) {\r
- if (result == null)\r
- result = new List<clIFsp_EC_MAMPromotionalResult>();\r
- clIFsp_EC_MAMPromotionalResult item = cliFSPReader.ToclIFsp_MAMPromotionalResult(reader);\r
- result.Add(item);\r
- }\r
- }\r
- return result;\r
+ public List<MamResultWrapper> GetAdvertisements(string strParam) {\r
+ return adWorker.GetAdvertisements(strParam);\r
}\r
\r
- private List<MamResultWrapper> ProcessMamPromotionalResult(List<clIFsp_EC_MAMPromotionalResult> sqlResult) {\r
- if (sqlResult == null)\r
- return null;\r
- List<MamResultWrapper> result = new List<MamResultWrapper>();\r
- foreach (clIFsp_EC_MAMPromotionalResult actual in sqlResult) {\r
- MamResultWrapper actualObject = new MamResultWrapper() {\r
- MediaID = actual.t_MediaID,\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
- };\r
- result.Add(actualObject);\r
- }\r
- return result;\r
+ public List<ArchiveMatadataWrapper> GetAdvertisementArchiveMetadata(string strParam) {\r
+ return adWorker.GetAdvertisementArchiveMetadata(strParam);\r
}\r
\r
- public List<MamResultWrapper> GetAdvertisements(string strParam) {\r
- List<clIFsp_EC_MAMAdvertismentResult> sqlResult = null;\r
- List<MamResultWrapper> result = null;\r
- try {\r
- TryConnect();\r
- using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
- cmd.CommandType = CommandType.StoredProcedure;\r
- cmd.Parameters.AddWithValue("@Operation", 3001);\r
- cmd.Parameters.AddWithValue("@@@Options", 40);\r
- cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value);\r
- cmd.Parameters.AddWithValue("@@StrParam1", strParam);\r
- sqlResult = ExecuteAndReadAdvertisement(cmd);\r
- result = ProcessMamAdvertismentResult(sqlResult);\r
- }\r
- }\r
- catch (Exception e) {\r
- logger.Error(e.Message);\r
- throw e;\r
- }\r
- finally {\r
- connection.Close();\r
- }\r
- return result;\r
+ public List<Segment> GetSegments(int itemID) {\r
+ return segmentWorker.GetSegments(itemID);\r
}\r
\r
- private List<clIFsp_EC_MAMAdvertismentResult> ExecuteAndReadAdvertisement(SqlCommand cmd) {\r
- List<clIFsp_EC_MAMAdvertismentResult> result = null;\r
- using (SqlDataReader reader = cmd.ExecuteReader()) {\r
- while (reader.Read()) {\r
- if (result == null)\r
- result = new List<clIFsp_EC_MAMAdvertismentResult>();\r
- clIFsp_EC_MAMAdvertismentResult item = cliFSPReader.ToclIFsp_MAMAdvertisementResult(reader);\r
- result.Add(item);\r
- }\r
- }\r
- return result;\r
+ public void DeleteSegments(int itemID) {\r
+ segmentWorker.DeleteSegments(itemID);\r
}\r
\r
- private List<MamResultWrapper> ProcessMamAdvertismentResult(List<clIFsp_EC_MAMAdvertismentResult> sqlResult) {\r
- if (sqlResult == null)\r
- return null;\r
- List<MamResultWrapper> result = new List<MamResultWrapper>();\r
- foreach (clIFsp_EC_MAMAdvertismentResult actual in sqlResult) {\r
- MamResultWrapper actualObject = new MamResultWrapper() {\r
- MediaID = actual.t_MediaID,\r
- Title = actual.v_Title\r
- };\r
- result.Add(actualObject);\r
- }\r
- return result;\r
+ public void DeleteSegment(int itemID, int segmentID) {\r
+ segmentWorker.DeleteSegment(itemID, segmentID);\r
}\r
\r
- public void MediaOKForAir(int itemID) {\r
- try {\r
- TryConnect();\r
- using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
- cmd.CommandType = CommandType.StoredProcedure;\r
- cmd.Parameters.AddWithValue("@Operation", 1100);\r
- cmd.Parameters.AddWithValue("@@ItemID", itemID);\r
- cmd.Parameters.AddWithValue("@@@Options", 1);\r
- cmd.ExecuteNonQuery();\r
- }\r
- }\r
- catch (Exception e) {\r
- logger.Error(e.Message);\r
- throw e;\r
- }\r
- finally {\r
- connection.Close();\r
- }\r
+ public void AddSegmentToCopia(int itemID, string strParam, long tcIn, long tcOut, bool optional) {\r
+ segmentWorker.AddSegmentToCopia(itemID, strParam, tcIn, tcOut, optional);\r
}\r
}\r
}\r
<Reference Include="System.Xml" />\r
</ItemGroup>\r
<ItemGroup>\r
- <Compile Include="BroadcastWorker.cs" />\r
+ <Compile Include="Workers\AdvertisementWorker.cs" />\r
+ <Compile Include="Workers\BroadcastWorker.cs" />\r
<Compile Include="clIFsp_EC_MAMAdvertismentsResult.cs" />\r
<Compile Include="clIFsp_EC_MAMPromotionalResult.cs" />\r
<Compile Include="clIFsp_EC_SegmentResult.cs" />\r
<Compile Include="CustomDataGridView.Designer.cs">\r
<DependentUpon>CustomDataGridView.cs</DependentUpon>\r
</Compile>\r
+ <Compile Include="Workers\PromotionalWorker.cs" />\r
<Compile Include="Reader.cs" />\r
<Compile Include="Resources.Designer.cs">\r
<AutoGen>True</AutoGen>\r
<Compile Include="TrafficIDSelector.Designer.cs">\r
<DependentUpon>TrafficIDSelector.cs</DependentUpon>\r
</Compile>\r
+ <Compile Include="Workers\TrafficWorker.cs" />\r
+ <Compile Include="Workers\SegmentWorker.cs" />\r
</ItemGroup>\r
<ItemGroup>\r
<None Include="app.config" />\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Data;\r
+using System.Data.SqlClient;\r
+using NLog;\r
+\r
+namespace TrafficClient.Workers {\r
+ public class AdvertisementWorker : TrafficWorker {\r
+\r
+ private static Logger logger = LogManager.GetCurrentClassLogger();\r
+\r
+ public AdvertisementWorker(SqlConnection connection, CliFSPReader cliFSPReader) : base(connection, cliFSPReader) {\r
+ }\r
+\r
+ public List<MamResultWrapper> GetAdvertisements(string strParam) {\r
+ List<clIFsp_EC_MAMAdvertismentResult> sqlResult = null;\r
+ List<MamResultWrapper> result = null;\r
+ try {\r
+ TryConnect();\r
+ using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
+ cmd.CommandType = CommandType.StoredProcedure;\r
+ cmd.Parameters.AddWithValue("@Operation", 3001);\r
+ cmd.Parameters.AddWithValue("@@@Options", 40);\r
+ cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value);\r
+ cmd.Parameters.AddWithValue("@@StrParam1", strParam);\r
+ sqlResult = ExecuteAndReadAdvertisement(cmd);\r
+ result = ProcessMamAdvertismentResult(sqlResult);\r
+ }\r
+ }\r
+ catch (Exception e) {\r
+ logger.Error(e.Message);\r
+ throw e;\r
+ }\r
+ finally {\r
+ connection.Close();\r
+ }\r
+ return result;\r
+ }\r
+\r
+ private List<clIFsp_EC_MAMAdvertismentResult> ExecuteAndReadAdvertisement(SqlCommand cmd) {\r
+ List<clIFsp_EC_MAMAdvertismentResult> result = null;\r
+ using (SqlDataReader reader = cmd.ExecuteReader()) {\r
+ while (reader.Read()) {\r
+ if (result == null)\r
+ result = new List<clIFsp_EC_MAMAdvertismentResult>();\r
+ clIFsp_EC_MAMAdvertismentResult item = cliFSPReader.ToclIFsp_MAMAdvertisementResult(reader);\r
+ result.Add(item);\r
+ }\r
+ }\r
+ return result;\r
+ }\r
+\r
+ private List<MamResultWrapper> ProcessMamAdvertismentResult(List<clIFsp_EC_MAMAdvertismentResult> sqlResult) {\r
+ if (sqlResult == null)\r
+ return null;\r
+ List<MamResultWrapper> result = new List<MamResultWrapper>();\r
+ foreach (clIFsp_EC_MAMAdvertismentResult actual in sqlResult) {\r
+ MamResultWrapper actualObject = new MamResultWrapper() {\r
+ MediaID = actual.t_MediaID,\r
+ Title = actual.v_Title\r
+ };\r
+ result.Add(actualObject);\r
+ }\r
+ return result;\r
+ }\r
+\r
+ public List<ArchiveMatadataWrapper> GetAdvertisementArchiveMetadata(string strParam) {\r
+ List<clIFsp_EC_MAMAdvertismentResult> sqlResult = null;\r
+ List<ArchiveMatadataWrapper> result = null;\r
+ try {\r
+ TryConnect();\r
+ using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
+ cmd.CommandType = CommandType.StoredProcedure;\r
+ cmd.Parameters.AddWithValue("@Operation", 3001);\r
+ cmd.Parameters.AddWithValue("@@@Options", 40);\r
+ cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value);\r
+ cmd.Parameters.AddWithValue("@@StrParam1", strParam);\r
+ sqlResult = ExecuteAndReadAdvertisement(cmd);\r
+ result = ProcessAdvertisementArchiveMetadataResult(sqlResult);\r
+ }\r
+ }\r
+ catch (Exception e) {\r
+ logger.Error(e.Message);\r
+ throw e;\r
+ }\r
+ finally {\r
+ connection.Close();\r
+ }\r
+ return result;\r
+ }\r
+\r
+ private List<ArchiveMatadataWrapper> ProcessAdvertisementArchiveMetadataResult(List<clIFsp_EC_MAMAdvertismentResult> sqlResult) {\r
+ if (sqlResult == null)\r
+ return null;\r
+ List<ArchiveMatadataWrapper> result = new List<ArchiveMatadataWrapper>();\r
+ foreach (clIFsp_EC_MAMAdvertismentResult actual in sqlResult) {\r
+ ArchiveMatadataWrapper actualObject = new ArchiveMatadataWrapper() {\r
+ EpisodeID = actual.t_MediaID,\r
+ EpisodeTitle = actual.v_Title,\r
+ ProgID = actual.t_SpotID.ToString(),\r
+ ProgTitle = actual.v_Title\r
+ };\r
+ result.Add(actualObject);\r
+ }\r
+ return result;\r
+ }\r
+ }\r
+}\r
using System.Data.SqlClient;\r
using NLog;\r
\r
-namespace TrafficClient {\r
+namespace TrafficClient.Workers {\r
\r
- public class BroadcastWorker {\r
+ public class BroadcastWorker : TrafficWorker {\r
\r
- private string connectionString;\r
- private CliFSPReader cliFSPReader;\r
- private SqlConnection connection;\r
private static Logger logger = LogManager.GetCurrentClassLogger();\r
\r
+ public BroadcastWorker(SqlConnection connection, CliFSPReader cliFSPReader) \r
+ : base(connection, cliFSPReader){\r
+ }\r
+\r
public List<MamResultWrapper> GetBroadcasts(string strParam, DateTime? from, DateTime? to, bool missingCopia) {\r
List<clIFsp_EC_MAMBradocastResult> sqlResult = null;\r
List<MamResultWrapper> result = null;\r
return result;\r
}\r
\r
- private void TryConnect() {\r
- if (connection.State != ConnectionState.Open) {\r
+ public List<ArchiveMatadataWrapper> GetBroadcastArchiveMetadata(string strParam) {\r
+ List<clIFsp_EC_MAMBradocastResult> sqlResult = null;\r
+ List<ArchiveMatadataWrapper> result = null;\r
+ try {\r
+ TryConnect();\r
+ using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
+ cmd.CommandType = CommandType.StoredProcedure;\r
+ cmd.Parameters.AddWithValue("@Operation", 1001);\r
+ cmd.Parameters.AddWithValue("@@@Options", 1);\r
+ cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value);\r
+ cmd.Parameters.AddWithValue("@@StrParam1", strParam);\r
+ sqlResult = ExecuteAndReadBradcast(cmd);\r
+ result = ProcessaBroadcastArchiveMetadatResult(sqlResult);\r
+ }\r
+ }\r
+ catch (Exception e) {\r
+ logger.Error(e.Message);\r
+ throw e;\r
+ }\r
+ finally {\r
+ connection.Close();\r
+ }\r
+ return result;\r
+ }\r
+\r
+ private List<ArchiveMatadataWrapper> ProcessaBroadcastArchiveMetadatResult(List<clIFsp_EC_MAMBradocastResult> sqlResult) {\r
+ if (sqlResult == null)\r
+ return null;\r
+ List<ArchiveMatadataWrapper> result = new List<ArchiveMatadataWrapper>();\r
+ foreach (clIFsp_EC_MAMBradocastResult actual in sqlResult) {\r
+ ArchiveMatadataWrapper actualObject = new ArchiveMatadataWrapper() {\r
+ EpisodeID = actual.v_EpisodeID,\r
+ EpisodeTitle = actual.v_EpTitle,\r
+ ProgID = actual.v_ProgrammeID.ToString(),\r
+ ProgTitle = actual.v_ProgTitle,\r
+ };\r
+ result.Add(actualObject);\r
+ }\r
+ return result;\r
+ }\r
+\r
+ public void BroadcastOKForAir(int itemID) {\r
+ try {\r
+ TryConnect();\r
+ using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
+ cmd.CommandType = CommandType.StoredProcedure;\r
+ cmd.Parameters.AddWithValue("@Operation", 1100);\r
+ cmd.Parameters.AddWithValue("@@ItemID", itemID);\r
+ cmd.Parameters.AddWithValue("@@@Options", 1);\r
+ cmd.ExecuteNonQuery();\r
+ }\r
+ }\r
+ catch (Exception e) {\r
+ logger.Error(e.Message);\r
+ throw e;\r
+ }\r
+ finally {\r
connection.Close();\r
- connection.Open();\r
}\r
}\r
}\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Data;\r
+using System.Data.SqlClient;\r
+using NLog;\r
+\r
+namespace TrafficClient.Workers {\r
+ public class PromotionalWorker : TrafficWorker {\r
+\r
+ private static Logger logger = LogManager.GetCurrentClassLogger();\r
+\r
+ public PromotionalWorker(SqlConnection connection, CliFSPReader cliFSPReader)\r
+ : base(connection, cliFSPReader) {\r
+ }\r
+\r
+ public List<MamResultWrapper> GetPromotionals(string strParam) {\r
+ List<clIFsp_EC_MAMPromotionalResult> sqlResult = null;\r
+ List<MamResultWrapper> result = null;\r
+ try {\r
+ TryConnect();\r
+ using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
+ cmd.CommandType = CommandType.StoredProcedure;\r
+ cmd.Parameters.AddWithValue("@Operation", 2001);\r
+ cmd.Parameters.AddWithValue("@@@Options", 16);\r
+ cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value);\r
+ cmd.Parameters.AddWithValue("@@StrParam1", strParam);\r
+ sqlResult = ExecuteAndReadPromotionals(cmd);\r
+ result = ProcessMamPromotionalResult(sqlResult);\r
+ }\r
+ }\r
+ catch (Exception e) {\r
+ logger.Error(e.Message);\r
+ throw e;\r
+ }\r
+ finally {\r
+ connection.Close();\r
+ }\r
+ return result;\r
+ }\r
+\r
+ private List<MamResultWrapper> ProcessMamPromotionalResult(List<clIFsp_EC_MAMPromotionalResult> sqlResult) {\r
+ if (sqlResult == null)\r
+ return null;\r
+ List<MamResultWrapper> result = new List<MamResultWrapper>();\r
+ foreach (clIFsp_EC_MAMPromotionalResult actual in sqlResult) {\r
+ MamResultWrapper actualObject = new MamResultWrapper() {\r
+ MediaID = actual.t_MediaID,\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
+ };\r
+ result.Add(actualObject);\r
+ }\r
+ return result;\r
+ }\r
+\r
+ private List<clIFsp_EC_MAMPromotionalResult> ExecuteAndReadPromotionals(SqlCommand cmd) {\r
+ List<clIFsp_EC_MAMPromotionalResult> result = null;\r
+ try {\r
+ using (SqlDataReader reader = cmd.ExecuteReader()) {\r
+ while (reader.Read()) {\r
+ if (result == null)\r
+ result = new List<clIFsp_EC_MAMPromotionalResult>();\r
+ clIFsp_EC_MAMPromotionalResult item = cliFSPReader.ToclIFsp_MAMPromotionalResult(reader);\r
+ result.Add(item);\r
+ }\r
+ }\r
+ }\r
+ catch (Exception e) {\r
+ logger.Error(e.Message);\r
+ }\r
+ return result;\r
+ }\r
+\r
+ public List<ArchiveMatadataWrapper> GetPromotionalArchiveMetadata(string strParam) {\r
+ List<clIFsp_EC_MAMPromotionalResult> sqlResult = null;\r
+ List<ArchiveMatadataWrapper> result = null;\r
+ try {\r
+ TryConnect();\r
+ using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
+ cmd.CommandType = CommandType.StoredProcedure;\r
+ cmd.Parameters.AddWithValue("@Operation", 2001);\r
+ cmd.Parameters.AddWithValue("@@@Options", 40);\r
+ cmd.Parameters.AddWithValue("@@ItemID", DBNull.Value);\r
+ cmd.Parameters.AddWithValue("@@StrParam1", strParam);\r
+ sqlResult = ExecuteAndReadPromotionals(cmd);\r
+ result = ProcessPromotionalArchiveMetadataResult(sqlResult);\r
+ }\r
+ }\r
+ catch (Exception e) {\r
+ logger.Error(e.Message);\r
+ throw e;\r
+ }\r
+ finally {\r
+ connection.Close();\r
+ }\r
+ return result;\r
+ }\r
+\r
+ private List<ArchiveMatadataWrapper> ProcessPromotionalArchiveMetadataResult(List<clIFsp_EC_MAMPromotionalResult> sqlResult) {\r
+ if (sqlResult == null)\r
+ return null;\r
+ List<ArchiveMatadataWrapper> result = new List<ArchiveMatadataWrapper>();\r
+ foreach (clIFsp_EC_MAMPromotionalResult actual in sqlResult) {\r
+ ArchiveMatadataWrapper actualObject = new ArchiveMatadataWrapper() {\r
+ EpisodeID = actual.t_MediaID,\r
+ ProgID = actual.t_SpotID.ToString(),\r
+ ProgTitle = actual.v_ProgTitle,\r
+ };\r
+ result.Add(actualObject);\r
+ }\r
+ return result;\r
+ }\r
+ }\r
+}\r
--- /dev/null
+using System;\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Data;\r
+using System.Data.SqlClient;\r
+using NLog;\r
+\r
+namespace TrafficClient.Workers {\r
+ public class SegmentWorker : TrafficWorker {\r
+\r
+ private static Logger logger = LogManager.GetCurrentClassLogger();\r
+\r
+ public SegmentWorker(SqlConnection connection, CliFSPReader cliFSPReader) : base(connection, cliFSPReader) {\r
+ }\r
+\r
+ public List<Segment> GetSegments(int itemID) {\r
+ List<Segment> result = null;\r
+ try {\r
+ TryConnect();\r
+ using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
+ cmd.CommandType = CommandType.StoredProcedure;\r
+ cmd.Parameters.AddWithValue("@Operation", 1010);\r
+ cmd.Parameters.AddWithValue("@@@Options", DBNull.Value);\r
+ cmd.Parameters.AddWithValue("@@ItemID", itemID);\r
+ using (SqlDataReader reader = cmd.ExecuteReader()) {\r
+ List<clIFsp_EC_SegmentResult> list = new List<clIFsp_EC_SegmentResult>();\r
+ while (reader.Read()) {\r
+ clIFsp_EC_SegmentResult item = cliFSPReader.ToclIFsp_SegmentResult(reader);\r
+ list.Add(item);\r
+ }\r
+ result = ProcessSegmentResult(list);\r
+ }\r
+ }\r
+ }\r
+ catch (Exception e) {\r
+ logger.Error(e.Message);\r
+ throw e;\r
+ }\r
+ finally {\r
+ connection.Close();\r
+ }\r
+ return result;\r
+ }\r
+\r
+ private List<Segment> ProcessSegmentResult(List<clIFsp_EC_SegmentResult> sqlResult) {\r
+ if (sqlResult == null)\r
+ return null;\r
+ List<Segment> result = new List<Segment>();\r
+ foreach (clIFsp_EC_SegmentResult actual in sqlResult) {\r
+ Segment actualObject = new Segment() {\r
+ TCIn = actual.v_TcIn.HasValue ? actual.v_TcIn.Value : -1,\r
+ TCOut = actual.v_TcOut.HasValue ? actual.v_TcOut.Value : -1,\r
+ Comment = actual.v_SegTitle,\r
+ Optional = actual.v_Dropable.HasValue ? actual.v_Dropable.Value : false\r
+ };\r
+ result.Add(actualObject);\r
+ }\r
+ return result;\r
+ }\r
+\r
+ public void DeleteSegments(int itemID) {\r
+ try {\r
+ TryConnect();\r
+ using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
+ cmd.CommandType = CommandType.StoredProcedure;\r
+ cmd.Parameters.AddWithValue("@Operation", 1110);\r
+ cmd.Parameters.AddWithValue("@@ItemID", itemID);\r
+ cmd.Parameters.AddWithValue("@@@Options", DBNull.Value);\r
+ cmd.ExecuteNonQuery();\r
+ logger.Info(String.Format("Segments deleted from itemID {0}", itemID));\r
+ }\r
+ }\r
+ catch (Exception e) {\r
+ logger.Error(e.Message);\r
+ throw e;\r
+ }\r
+ finally {\r
+ connection.Close();\r
+ }\r
+ }\r
+\r
+ public void DeleteSegment(int itemID, int segmentID) {\r
+ try {\r
+ TryConnect();\r
+ using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
+ cmd.CommandType = CommandType.StoredProcedure;\r
+ cmd.Parameters.AddWithValue("@Operation", 1111);\r
+ cmd.Parameters.AddWithValue("@@ItemID", itemID);\r
+ cmd.Parameters.AddWithValue("@@IntParam1", segmentID);\r
+ cmd.Parameters.AddWithValue("@@@Options", DBNull.Value);\r
+ cmd.ExecuteNonQuery();\r
+ logger.Info(String.Format("{0} segment deleted from itemID: {1}", segmentID, itemID));\r
+ }\r
+ }\r
+ catch (Exception e) {\r
+ logger.Error(e.Message);\r
+ throw e;\r
+ }\r
+ finally {\r
+ connection.Close();\r
+ }\r
+ }\r
+\r
+ public void AddSegmentToCopia(int itemID, string strParam, long tcIn, long tcOut, bool optional) {\r
+ //string strparam = String.IsNullOrEmpty(strParam) ? string.Empty : strParam;\r
+ object strparam = strParam;\r
+ if (String.IsNullOrEmpty(strParam))\r
+ strparam = DBNull.Value;\r
+ try {\r
+ TryConnect();\r
+ using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
+ int optionalParam = optional ? 1 : 0;\r
+ cmd.CommandType = CommandType.StoredProcedure;\r
+ cmd.Parameters.AddWithValue("@Operation", 1115);\r
+ cmd.Parameters.AddWithValue("@@ItemID", itemID);\r
+ cmd.Parameters.AddWithValue("@@IntParam1", tcIn);\r
+ cmd.Parameters.AddWithValue("@@IntParam2", tcOut);\r
+ cmd.Parameters.AddWithValue("@@StrParam1", strparam);\r
+ cmd.Parameters.AddWithValue("@@StrParam2", DBNull.Value);\r
+ cmd.Parameters.AddWithValue("@@@Options", optionalParam);\r
+ cmd.ExecuteNonQuery();\r
+ }\r
+ }\r
+ catch (Exception e) {\r
+ logger.Error(e.Message);\r
+ throw e;\r
+ }\r
+ finally {\r
+ connection.Close();\r
+ }\r
+ }\r
+ }\r
+}\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Data;\r
+using System.Data.SqlClient;\r
+\r
+namespace TrafficClient.Workers {\r
+ public class TrafficWorker {\r
+\r
+ protected CliFSPReader cliFSPReader;\r
+ protected SqlConnection connection;\r
+\r
+ public TrafficWorker(SqlConnection connection, CliFSPReader cliFSPReader) {\r
+ this.connection = connection;\r
+ this.cliFSPReader = cliFSPReader;\r
+ }\r
+ protected void TryConnect() {\r
+ if (connection.State != ConnectionState.Open) {\r
+ connection.Close();\r
+ connection.Open();\r
+ }\r
+ }\r
+\r
+ }\r
+}\r
\r
private System.Nullable<bool> _t_OkForAir;\r
\r
- private System.Nullable<bool> _v_OkForAirs;\r
+ private string _v_OkForAirs;\r
\r
public clIFsp_EC_MAMAdvertismentResult() {\r
}\r
}\r
}\r
\r
- [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_v_OkForAirs", DbType = "Bit")]\r
- public System.Nullable<bool> v_OkForAirs {\r
+ [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_v_OkForAirs", DbType = "NVarchar(60)")]\r
+ public string v_OkForAirs {\r
get {\r
return this._v_OkForAirs;\r
}\r
\r
private System.Nullable<bool> _t_OkForAir;\r
\r
- private System.Nullable<bool> _v_OkForAirs;\r
+ private string _v_OkForAirs;\r
\r
private System.Nullable<bool> _v_IsInactive;\r
\r
}\r
}\r
\r
- [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_v_OkForAirs", DbType = "Bit")]\r
- public System.Nullable<bool> v_OkForAirs {\r
+ [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_v_OkForAirs", DbType = "NVarchar(60)")]\r
+ public string v_OkForAirs {\r
get {\r
return this._v_OkForAirs;\r
}\r