git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorBellai Ádám <USER\adam.bellai>
Fri, 6 Oct 2017 10:56:18 +0000 (10:56 +0000)
committerBellai Ádám <USER\adam.bellai>
Fri, 6 Oct 2017 10:56:18 +0000 (10:56 +0000)
12 files changed:
client/IntegrationTests/PlanAIRTests.cs
client/Maestro/MaestroForm.Metadata.cs
client/PlanAIRClient/Reader.cs
client/PlanAIRClient/TrafficAPI.cs
client/PlanAIRClient/TrafficClient.csproj
client/PlanAIRClient/Workers/AdvertisementWorker.cs [new file with mode: 0644]
client/PlanAIRClient/Workers/BroadcastWorker.cs [moved from client/PlanAIRClient/BroadcastWorker.cs with 55% similarity]
client/PlanAIRClient/Workers/PromotionalWorker.cs [new file with mode: 0644]
client/PlanAIRClient/Workers/SegmentWorker.cs [new file with mode: 0644]
client/PlanAIRClient/Workers/TrafficWorker.cs [new file with mode: 0644]
client/PlanAIRClient/clIFsp_EC_MAMAdvertismentsResult.cs
client/PlanAIRClient/clIFsp_EC_MAMPromotionalResult.cs

index 29e8c990d76bc870b8861a55c6b1b0623f85cbc7..c46d1060c31acd09a8d207b6b38bcad53de81ffb 100644 (file)
@@ -22,7 +22,7 @@ namespace IntegrationTests {
         [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
@@ -77,7 +77,7 @@ namespace IntegrationTests {
             const int ITEM_ID = 24;\r
 \r
             //Exercise\r
-            sut.MediaOKForAir(ITEM_ID);\r
+            sut.BroadcastOKForAir(ITEM_ID);\r
         }\r
     }\r
 }\r
index 91ffa1e713518c4895e4c80555175b48a01e2259..7d95d55c2c90d7eaa04b218bc114a9358e187f26 100644 (file)
@@ -122,7 +122,7 @@ namespace Maestro {
         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
index 93d1103f2feb33a2fa4c6c720063fa5cd0b50946..00b7a50fe31a4fe9e4de5a35fe270a0cd4a31935 100644 (file)
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
 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
@@ -88,7 +88,7 @@ namespace TrafficClient {
             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
@@ -108,7 +108,7 @@ namespace TrafficClient {
             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
index 5125b7de0336ab2261554c0625f4be83934ed1ee..5edaac15da0d9969b66222a1332bc3e0730f1728 100644 (file)
@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Data;\r
 using System.Data.SqlClient;\r
 using NLog;\r
+using TrafficClient.Workers;\r
 \r
 namespace TrafficClient {\r
     public class TrafficAPI {\r
@@ -11,453 +12,63 @@ namespace TrafficClient {
         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
index 7ce25542d9bf48b79d5f714be14eeba2930d704d..3760d93df4c82d25bb103e0a489b81fd77824fb0 100644 (file)
@@ -50,7 +50,8 @@
     <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
@@ -60,6 +61,7 @@
     <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
@@ -95,6 +97,8 @@
     <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
diff --git a/client/PlanAIRClient/Workers/AdvertisementWorker.cs b/client/PlanAIRClient/Workers/AdvertisementWorker.cs
new file mode 100644 (file)
index 0000000..2ddf072
--- /dev/null
@@ -0,0 +1,108 @@
+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
similarity index 55%
rename from client/PlanAIRClient/BroadcastWorker.cs
rename to client/PlanAIRClient/Workers/BroadcastWorker.cs
index a0766124237fa7c93218188ee696a412db3e99cf..ec29695f2a461d4792e55f3a335321c97b4c83fb 100644 (file)
@@ -4,15 +4,16 @@ using System.Data;
 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
@@ -82,10 +83,64 @@ namespace TrafficClient {
             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
diff --git a/client/PlanAIRClient/Workers/PromotionalWorker.cs b/client/PlanAIRClient/Workers/PromotionalWorker.cs
new file mode 100644 (file)
index 0000000..ec61c8f
--- /dev/null
@@ -0,0 +1,116 @@
+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
diff --git a/client/PlanAIRClient/Workers/SegmentWorker.cs b/client/PlanAIRClient/Workers/SegmentWorker.cs
new file mode 100644 (file)
index 0000000..16514d5
--- /dev/null
@@ -0,0 +1,133 @@
+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
diff --git a/client/PlanAIRClient/Workers/TrafficWorker.cs b/client/PlanAIRClient/Workers/TrafficWorker.cs
new file mode 100644 (file)
index 0000000..793b156
--- /dev/null
@@ -0,0 +1,24 @@
+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
index 00cee67e7ca95d7dc8e5bca087024387c9f1f122..d3fdab2f43df1e9f08932a858e055f51b399322b 100644 (file)
@@ -31,7 +31,7 @@ namespace TrafficClient {
 \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
@@ -180,8 +180,8 @@ namespace TrafficClient {
             }\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
index 2a94fe375bc614302ea74891e7d02c0b76aa0e27..01ffebac95bd833a5707884437a06a8e34bbff8b 100644 (file)
@@ -35,7 +35,7 @@
 \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