git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorBellai Ádám <USER\adam.bellai>
Tue, 10 Oct 2017 08:15:54 +0000 (08:15 +0000)
committerBellai Ádám <USER\adam.bellai>
Tue, 10 Oct 2017 08:15:54 +0000 (08:15 +0000)
36 files changed:
client/IntegrationTests/OctopusIT.cs
client/IntegrationTests/PlanAIRTests.cs
client/Maestro/Configuration/ConfigurationInfo.cs
client/Maestro/Maestro.csproj
client/Maestro/MaestroForm.Designer.cs
client/Maestro/MaestroForm.Metadata.cs
client/Maestro/MaestroForm.Source.cs
client/Maestro/MaestroForm.Target.cs
client/Maestro/MaestroForm.cs
client/Maestro/MaestroForm.resx
client/Maestro/Properties/DataSources/SystemMessage.datasource [new file with mode: 0644]
client/Maestro/Resources/configuration-nexio.json
client/Maestro/Resources/configuration-unc.json
client/Maestro/Sources/CreatedFileMonitor.cs
client/Maestro/Sources/FileSourceItem.cs
client/Maestro/Sources/FileSystemSource.cs
client/Maestro/Sources/NexioRESTSource.cs
client/Maestro/StringResources.Designer.cs
client/Maestro/StringResources.resx
client/Maestro/SystemMessage.cs [new file with mode: 0644]
client/MediaCubeClient/MediaCubeApi.cs
client/MediaCubeClient/MediaCubeClient.csproj
client/MediaCubeClient/NexioAPI.cs
client/OctopusClient/OctopusAPI.cs
client/OctopusClient/OctopusIDSelector.cs
client/OctopusClient/Resources.Designer.cs
client/OctopusClient/Resources.resx
client/PlanAIRClient/Reader.cs
client/PlanAIRClient/TrafficAPI.cs
client/PlanAIRClient/TrafficConfiguration.cs
client/PlanAIRClient/TrafficIDSelector.cs
client/PlanAIRClient/Workers/AdvertisementWorker.cs
client/PlanAIRClient/Workers/BroadcastWorker.cs
client/PlanAIRClient/Workers/PromotionalWorker.cs
client/PlanAIRClient/Workers/SegmentWorker.cs
client/PlanAIRClient/Workers/TrafficWorker.cs

index 0c7ce2fcfbde088afe7c28c0fff5acfc6417dee7..41b43e51b0d476de4d403723fc0cac4e338dbb0a 100644 (file)
@@ -20,7 +20,7 @@ namespace IntegrationTests {
 \r
         [TestMethod]\r
         public void TestGetRundowns() {\r
-            OctopusAPI client = new OctopusAPI("http://localhost:8080/rest/services/octopus/", null, null, 100);\r
+            OctopusAPI client = new OctopusAPI("http://localhost:8080/rest/services/octopus/", null, null, 100, null);\r
             var actual = client.GetRundowns(DateTime.Now);\r
         }\r
 \r
index c46d1060c31acd09a8d207b6b38bcad53de81ffb..f60f813e30a32e889de8a978cb35d2827fb5589c 100644 (file)
@@ -16,7 +16,7 @@ namespace IntegrationTests {
 \r
         [TestInitialize]\r
         public void initialize() {\r
-            sut = new TrafficAPI(CONNECTION_STRING, USER_NAME, PASSWORD, TIMEOUT);\r
+            sut = new TrafficAPI(CONNECTION_STRING, USER_NAME, PASSWORD, TIMEOUT, null);\r
         }\r
 \r
         [TestMethod]\r
index 0b484174e6a2ef6e8a3bf41891d02772001f7097..acb4ec997592a9cafcf3837c3c26e23eb05c26aa 100644 (file)
@@ -30,6 +30,7 @@ namespace Maestro.Configuration {
         public bool EnableCustomMetadataId { get; set; }\r
         public MetadataProvider[] Metadatas { get; set; }\r
         public Target[] Targets { get; set; }\r
+        public String Filter { get; set; }\r
     }\r
 \r
     public class Player {\r
index 6c8461244dc7440eeafb033749686eae2a8506c8..a6f2da8f1a9dbd4571dc4de86d9029bb5dc4c3c3 100644 (file)
     <Compile Include="Program.cs" />\r
     <Compile Include="Properties\AssemblyInfo.cs" />\r
     <Compile Include="Sources\Messages\FileActionMsg.cs" />\r
+    <Compile Include="SystemMessage.cs" />\r
     <Compile Include="Targets\UNCTargetProcessor.cs" />\r
     <Compile Include="Targets\FXPTargetProcessor.cs" />\r
     <Compile Include="Targets\FTPTargetProcessor.cs" />\r
     </None>\r
     <None Include="packages.config" />\r
     <None Include="Properties\DataSources\Maestro.Metadata.MetadataInfo.datasource" />\r
+    <None Include="Properties\DataSources\SystemMessage.datasource" />\r
     <None Include="Properties\Settings.settings">\r
       <Generator>SettingsSingleFileGenerator</Generator>\r
       <LastGenOutput>Settings.Designer.cs</LastGenOutput>\r
index df6ddc149532b5c701545b1f718298f150f77fa0..728fbb01033c83a213866a759a42d517cebee127 100644 (file)
@@ -36,6 +36,10 @@ namespace Maestro {
             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();\r
             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();\r
             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();\r
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();\r
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();\r
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();\r
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();\r
             this.groupSource = new System.Windows.Forms.GroupBox();\r
             this.dataGridSource = new System.Windows.Forms.DataGridView();\r
             this.bindingSource = new System.Windows.Forms.BindingSource(this.components);\r
@@ -65,6 +69,8 @@ namespace Maestro {
             this.btnExecute = new System.Windows.Forms.Button();\r
             this.splitContainer2 = new System.Windows.Forms.SplitContainer();\r
             this.groupActions = new System.Windows.Forms.GroupBox();\r
+            this.tabControl2 = new System.Windows.Forms.TabControl();\r
+            this.tabPage1 = new System.Windows.Forms.TabPage();\r
             this.dataGridJobs = new System.Windows.Forms.DataGridView();\r
             this.columnID = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
             this.columnStatus = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
@@ -74,6 +80,11 @@ namespace Maestro {
             this.columnInput = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
             this.columnOutput = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
             this.bindingSourceJobs = new System.Windows.Forms.BindingSource(this.components);\r
+            this.tabPage2 = new System.Windows.Forms.TabPage();\r
+            this.dataGridMessages = new System.Windows.Forms.DataGridView();\r
+            this.timeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+            this.messageDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+            this.systemMessageBindingSource = new System.Windows.Forms.BindingSource(this.components);\r
             this.metadataInfoBindingSource = new System.Windows.Forms.BindingSource(this.components);\r
             this.groupSource.SuspendLayout();\r
             ((System.ComponentModel.ISupportInitialize)(this.dataGridSource)).BeginInit();\r
@@ -100,8 +111,13 @@ namespace Maestro {
             this.splitContainer2.Panel2.SuspendLayout();\r
             this.splitContainer2.SuspendLayout();\r
             this.groupActions.SuspendLayout();\r
+            this.tabControl2.SuspendLayout();\r
+            this.tabPage1.SuspendLayout();\r
             ((System.ComponentModel.ISupportInitialize)(this.dataGridJobs)).BeginInit();\r
             ((System.ComponentModel.ISupportInitialize)(this.bindingSourceJobs)).BeginInit();\r
+            this.tabPage2.SuspendLayout();\r
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridMessages)).BeginInit();\r
+            ((System.ComponentModel.ISupportInitialize)(this.systemMessageBindingSource)).BeginInit();\r
             ((System.ComponentModel.ISupportInitialize)(this.metadataInfoBindingSource)).BeginInit();\r
             this.SuspendLayout();\r
             // \r
@@ -115,7 +131,7 @@ namespace Maestro {
             this.groupSource.Location = new System.Drawing.Point(0, 0);\r
             this.groupSource.Name = "groupSource";\r
             this.groupSource.Padding = new System.Windows.Forms.Padding(10);\r
-            this.groupSource.Size = new System.Drawing.Size(414, 419);\r
+            this.groupSource.Size = new System.Drawing.Size(414, 471);\r
             this.groupSource.TabIndex = 0;\r
             this.groupSource.TabStop = false;\r
             this.groupSource.Text = "Source file";\r
@@ -160,7 +176,7 @@ namespace Maestro {
             this.dataGridSource.RowsDefaultCellStyle = dataGridViewCellStyle3;\r
             this.dataGridSource.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
             this.dataGridSource.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;\r
-            this.dataGridSource.Size = new System.Drawing.Size(394, 304);\r
+            this.dataGridSource.Size = new System.Drawing.Size(394, 356);\r
             this.dataGridSource.TabIndex = 0;\r
             this.dataGridSource.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.sourceGridView_CellContentClick);\r
             this.dataGridSource.CellEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridSource_CellEnter);\r
@@ -190,7 +206,7 @@ namespace Maestro {
             this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0);\r
             this.tableLayoutPanel2.Controls.Add(this.buttonMetadata, 1, 1);\r
             this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Bottom;\r
-            this.tableLayoutPanel2.Location = new System.Drawing.Point(10, 347);\r
+            this.tableLayoutPanel2.Location = new System.Drawing.Point(10, 399);\r
             this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(0);\r
             this.tableLayoutPanel2.Name = "tableLayoutPanel2";\r
             this.tableLayoutPanel2.RowCount = 2;\r
@@ -275,7 +291,7 @@ namespace Maestro {
             // splitContainer1.Panel2\r
             // \r
             this.splitContainer1.Panel2.Controls.Add(this.splitContainer3);\r
-            this.splitContainer1.Size = new System.Drawing.Size(1022, 419);\r
+            this.splitContainer1.Size = new System.Drawing.Size(1022, 471);\r
             this.splitContainer1.SplitterDistance = 414;\r
             this.splitContainer1.TabIndex = 1;\r
             // \r
@@ -292,7 +308,7 @@ namespace Maestro {
             // splitContainer3.Panel2\r
             // \r
             this.splitContainer3.Panel2.Controls.Add(this.groupTarget);\r
-            this.splitContainer3.Size = new System.Drawing.Size(604, 419);\r
+            this.splitContainer3.Size = new System.Drawing.Size(604, 471);\r
             this.splitContainer3.SplitterDistance = 284;\r
             this.splitContainer3.TabIndex = 2;\r
             // \r
@@ -305,7 +321,7 @@ namespace Maestro {
             this.groupMetadata.Location = new System.Drawing.Point(0, 0);\r
             this.groupMetadata.Name = "groupMetadata";\r
             this.groupMetadata.Padding = new System.Windows.Forms.Padding(10);\r
-            this.groupMetadata.Size = new System.Drawing.Size(284, 419);\r
+            this.groupMetadata.Size = new System.Drawing.Size(284, 471);\r
             this.groupMetadata.TabIndex = 1;\r
             this.groupMetadata.TabStop = false;\r
             this.groupMetadata.Text = "Metadata";\r
@@ -321,7 +337,7 @@ namespace Maestro {
             this.tabControl1.Location = new System.Drawing.Point(10, 23);\r
             this.tabControl1.Name = "tabControl1";\r
             this.tabControl1.SelectedIndex = 0;\r
-            this.tabControl1.Size = new System.Drawing.Size(264, 324);\r
+            this.tabControl1.Size = new System.Drawing.Size(264, 376);\r
             this.tabControl1.TabIndex = 1;\r
             // \r
             // tpOctopus\r
@@ -330,7 +346,7 @@ namespace Maestro {
             this.tpOctopus.Location = new System.Drawing.Point(4, 24);\r
             this.tpOctopus.Name = "tpOctopus";\r
             this.tpOctopus.Padding = new System.Windows.Forms.Padding(3);\r
-            this.tpOctopus.Size = new System.Drawing.Size(256, 296);\r
+            this.tpOctopus.Size = new System.Drawing.Size(256, 348);\r
             this.tpOctopus.TabIndex = 0;\r
             this.tpOctopus.Text = "Octopus";\r
             this.tpOctopus.UseVisualStyleBackColor = true;\r
@@ -338,7 +354,7 @@ namespace Maestro {
             // octopusIDSelector\r
             // \r
             this.octopusIDSelector.BackColor = System.Drawing.Color.White;\r
-            this.octopusIDSelector.clearCheckBox = null;\r
+            this.octopusIDSelector.ClearCheckBox = null;\r
             this.octopusIDSelector.Disposeabel = false;\r
             this.octopusIDSelector.Dock = System.Windows.Forms.DockStyle.Fill;\r
             this.octopusIDSelector.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
@@ -348,7 +364,8 @@ namespace Maestro {
             this.octopusIDSelector.MinimumSize = new System.Drawing.Size(200, 300);\r
             this.octopusIDSelector.Name = "octopusIDSelector";\r
             this.octopusIDSelector.Padding = new System.Windows.Forms.Padding(6);\r
-            this.octopusIDSelector.Size = new System.Drawing.Size(250, 300);\r
+            this.octopusIDSelector.ErrorReporter = null;\r
+            this.octopusIDSelector.Size = new System.Drawing.Size(250, 342);\r
             this.octopusIDSelector.TabIndex = 1;\r
             // \r
             // tpTraffic\r
@@ -357,7 +374,7 @@ namespace Maestro {
             this.tpTraffic.Location = new System.Drawing.Point(4, 24);\r
             this.tpTraffic.Name = "tpTraffic";\r
             this.tpTraffic.Padding = new System.Windows.Forms.Padding(3);\r
-            this.tpTraffic.Size = new System.Drawing.Size(256, 296);\r
+            this.tpTraffic.Size = new System.Drawing.Size(256, 348);\r
             this.tpTraffic.TabIndex = 1;\r
             this.tpTraffic.Text = "Traffic";\r
             this.tpTraffic.UseVisualStyleBackColor = true;\r
@@ -373,7 +390,7 @@ namespace Maestro {
             this.trafficIDSelector.Margin = new System.Windows.Forms.Padding(4);\r
             this.trafficIDSelector.Name = "trafficIDSelector";\r
             this.trafficIDSelector.Padding = new System.Windows.Forms.Padding(6);\r
-            this.trafficIDSelector.Size = new System.Drawing.Size(250, 290);\r
+            this.trafficIDSelector.Size = new System.Drawing.Size(250, 342);\r
             this.trafficIDSelector.TabIndex = 0;\r
             // \r
             // tableLayoutPanel1\r
@@ -385,7 +402,7 @@ namespace Maestro {
             this.tableLayoutPanel1.Controls.Add(this.textSelectedMetadata, 0, 1);\r
             this.tableLayoutPanel1.Controls.Add(this.menuButtonActions, 1, 1);\r
             this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Bottom;\r
-            this.tableLayoutPanel1.Location = new System.Drawing.Point(10, 347);\r
+            this.tableLayoutPanel1.Location = new System.Drawing.Point(10, 399);\r
             this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(0);\r
             this.tableLayoutPanel1.Name = "tableLayoutPanel1";\r
             this.tableLayoutPanel1.RowCount = 2;\r
@@ -442,7 +459,7 @@ namespace Maestro {
             this.groupTarget.Location = new System.Drawing.Point(0, 0);\r
             this.groupTarget.Name = "groupTarget";\r
             this.groupTarget.Padding = new System.Windows.Forms.Padding(10);\r
-            this.groupTarget.Size = new System.Drawing.Size(316, 419);\r
+            this.groupTarget.Size = new System.Drawing.Size(316, 471);\r
             this.groupTarget.TabIndex = 0;\r
             this.groupTarget.TabStop = false;\r
             this.groupTarget.Text = "Target action";\r
@@ -462,7 +479,7 @@ namespace Maestro {
             this.panelActions.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);\r
             this.panelActions.RowCount = 1;\r
             this.panelActions.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
-            this.panelActions.Size = new System.Drawing.Size(296, 324);\r
+            this.panelActions.Size = new System.Drawing.Size(296, 376);\r
             this.panelActions.TabIndex = 4;\r
             this.panelActions.MouseClick += new System.Windows.Forms.MouseEventHandler(this.OnTargetPanelsMouseClick);\r
             // \r
@@ -471,7 +488,7 @@ namespace Maestro {
             this.panel1.BackColor = System.Drawing.Color.Transparent;\r
             this.panel1.Controls.Add(this.btnExecute);\r
             this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;\r
-            this.panel1.Location = new System.Drawing.Point(10, 347);\r
+            this.panel1.Location = new System.Drawing.Point(10, 399);\r
             this.panel1.Name = "panel1";\r
             this.panel1.Size = new System.Drawing.Size(296, 62);\r
             this.panel1.TabIndex = 5;\r
@@ -505,25 +522,47 @@ namespace Maestro {
             // splitContainer2.Panel2\r
             // \r
             this.splitContainer2.Panel2.Controls.Add(this.groupActions);\r
-            this.splitContainer2.Size = new System.Drawing.Size(1022, 561);\r
-            this.splitContainer2.SplitterDistance = 419;\r
+            this.splitContainer2.Size = new System.Drawing.Size(1022, 632);\r
+            this.splitContainer2.SplitterDistance = 471;\r
             this.splitContainer2.TabIndex = 2;\r
             // \r
             // groupActions\r
             // \r
             this.groupActions.BackColor = System.Drawing.Color.Transparent;\r
-            this.groupActions.Controls.Add(this.dataGridJobs);\r
+            this.groupActions.Controls.Add(this.tabControl2);\r
             this.groupActions.Dock = System.Windows.Forms.DockStyle.Fill;\r
             this.groupActions.Location = new System.Drawing.Point(0, 0);\r
             this.groupActions.Name = "groupActions";\r
             this.groupActions.Padding = new System.Windows.Forms.Padding(10);\r
-            this.groupActions.Size = new System.Drawing.Size(1022, 138);\r
+            this.groupActions.Size = new System.Drawing.Size(1022, 157);\r
             this.groupActions.TabIndex = 1;\r
             this.groupActions.TabStop = false;\r
             this.groupActions.Text = "Actions";\r
             this.groupActions.Enter += new System.EventHandler(this.groupBox_Enter);\r
             this.groupActions.Leave += new System.EventHandler(this.groupBox_Leave);\r
             // \r
+            // tabControl2\r
+            // \r
+            this.tabControl2.Controls.Add(this.tabPage1);\r
+            this.tabControl2.Controls.Add(this.tabPage2);\r
+            this.tabControl2.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.tabControl2.Location = new System.Drawing.Point(10, 23);\r
+            this.tabControl2.Name = "tabControl2";\r
+            this.tabControl2.SelectedIndex = 0;\r
+            this.tabControl2.Size = new System.Drawing.Size(1002, 124);\r
+            this.tabControl2.TabIndex = 1;\r
+            // \r
+            // tabPage1\r
+            // \r
+            this.tabPage1.Controls.Add(this.dataGridJobs);\r
+            this.tabPage1.Location = new System.Drawing.Point(4, 22);\r
+            this.tabPage1.Name = "tabPage1";\r
+            this.tabPage1.Padding = new System.Windows.Forms.Padding(3);\r
+            this.tabPage1.Size = new System.Drawing.Size(994, 98);\r
+            this.tabPage1.TabIndex = 0;\r
+            this.tabPage1.Text = global::Maestro.StringResources.FOLYAMATOK;\r
+            this.tabPage1.UseVisualStyleBackColor = true;\r
+            // \r
             // dataGridJobs\r
             // \r
             this.dataGridJobs.AllowUserToAddRows = false;\r
@@ -562,7 +601,7 @@ namespace Maestro {
             this.dataGridJobs.DefaultCellStyle = dataGridViewCellStyle8;\r
             this.dataGridJobs.Dock = System.Windows.Forms.DockStyle.Fill;\r
             this.dataGridJobs.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;\r
-            this.dataGridJobs.Location = new System.Drawing.Point(10, 23);\r
+            this.dataGridJobs.Location = new System.Drawing.Point(3, 3);\r
             this.dataGridJobs.Name = "dataGridJobs";\r
             dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;\r
             dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.Control;\r
@@ -577,7 +616,7 @@ namespace Maestro {
             this.dataGridJobs.RowsDefaultCellStyle = dataGridViewCellStyle10;\r
             this.dataGridJobs.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
             this.dataGridJobs.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;\r
-            this.dataGridJobs.Size = new System.Drawing.Size(1002, 105);\r
+            this.dataGridJobs.Size = new System.Drawing.Size(988, 92);\r
             this.dataGridJobs.TabIndex = 0;\r
             this.dataGridJobs.CellEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridJobs_CellEnter);\r
             // \r
@@ -649,6 +688,87 @@ namespace Maestro {
             this.columnOutput.Name = "columnOutput";\r
             this.columnOutput.Width = 68;\r
             // \r
+            // tabPage2\r
+            // \r
+            this.tabPage2.Controls.Add(this.dataGridMessages);\r
+            this.tabPage2.Location = new System.Drawing.Point(4, 22);\r
+            this.tabPage2.Name = "tabPage2";\r
+            this.tabPage2.Padding = new System.Windows.Forms.Padding(3);\r
+            this.tabPage2.Size = new System.Drawing.Size(994, 98);\r
+            this.tabPage2.TabIndex = 1;\r
+            this.tabPage2.Text = global::Maestro.StringResources.UZENETEK;\r
+            this.tabPage2.UseVisualStyleBackColor = true;\r
+            // \r
+            // dataGridMessages\r
+            // \r
+            this.dataGridMessages.AllowUserToAddRows = false;\r
+            this.dataGridMessages.AllowUserToOrderColumns = true;\r
+            this.dataGridMessages.AllowUserToResizeRows = false;\r
+            this.dataGridMessages.AutoGenerateColumns = false;\r
+            this.dataGridMessages.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCells;\r
+            this.dataGridMessages.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.DisplayedCells;\r
+            this.dataGridMessages.BackgroundColor = System.Drawing.Color.White;\r
+            this.dataGridMessages.BorderStyle = System.Windows.Forms.BorderStyle.None;\r
+            dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;\r
+            dataGridViewCellStyle11.BackColor = System.Drawing.SystemColors.Window;\r
+            dataGridViewCellStyle11.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);\r
+            dataGridViewCellStyle11.ForeColor = System.Drawing.SystemColors.WindowText;\r
+            dataGridViewCellStyle11.SelectionBackColor = System.Drawing.SystemColors.Highlight;\r
+            dataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.HighlightText;\r
+            dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True;\r
+            this.dataGridMessages.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle11;\r
+            this.dataGridMessages.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;\r
+            this.dataGridMessages.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {\r
+            this.timeDataGridViewTextBoxColumn,\r
+            this.messageDataGridViewTextBoxColumn});\r
+            this.dataGridMessages.DataSource = this.systemMessageBindingSource;\r
+            dataGridViewCellStyle12.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;\r
+            dataGridViewCellStyle12.BackColor = System.Drawing.SystemColors.Window;\r
+            dataGridViewCellStyle12.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);\r
+            dataGridViewCellStyle12.ForeColor = System.Drawing.SystemColors.ControlText;\r
+            dataGridViewCellStyle12.SelectionBackColor = System.Drawing.Color.Gainsboro;\r
+            dataGridViewCellStyle12.SelectionForeColor = System.Drawing.Color.Black;\r
+            dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.False;\r
+            this.dataGridMessages.DefaultCellStyle = dataGridViewCellStyle12;\r
+            this.dataGridMessages.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.dataGridMessages.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;\r
+            this.dataGridMessages.Location = new System.Drawing.Point(3, 3);\r
+            this.dataGridMessages.Name = "dataGridMessages";\r
+            dataGridViewCellStyle13.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;\r
+            dataGridViewCellStyle13.BackColor = System.Drawing.SystemColors.Control;\r
+            dataGridViewCellStyle13.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);\r
+            dataGridViewCellStyle13.ForeColor = System.Drawing.SystemColors.WindowText;\r
+            dataGridViewCellStyle13.SelectionBackColor = System.Drawing.SystemColors.Highlight;\r
+            dataGridViewCellStyle13.SelectionForeColor = System.Drawing.SystemColors.HighlightText;\r
+            dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True;\r
+            this.dataGridMessages.RowHeadersDefaultCellStyle = dataGridViewCellStyle13;\r
+            this.dataGridMessages.RowHeadersVisible = false;\r
+            dataGridViewCellStyle14.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);\r
+            this.dataGridMessages.RowsDefaultCellStyle = dataGridViewCellStyle14;\r
+            this.dataGridMessages.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);\r
+            this.dataGridMessages.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;\r
+            this.dataGridMessages.Size = new System.Drawing.Size(988, 92);\r
+            this.dataGridMessages.TabIndex = 0;\r
+            this.dataGridMessages.RowsAdded += new System.Windows.Forms.DataGridViewRowsAddedEventHandler(this.dataGridMessages_RowsAdded);\r
+            // \r
+            // timeDataGridViewTextBoxColumn\r
+            // \r
+            this.timeDataGridViewTextBoxColumn.DataPropertyName = "Time";\r
+            this.timeDataGridViewTextBoxColumn.HeaderText = "Time";\r
+            this.timeDataGridViewTextBoxColumn.Name = "timeDataGridViewTextBoxColumn";\r
+            this.timeDataGridViewTextBoxColumn.Width = 60;\r
+            // \r
+            // messageDataGridViewTextBoxColumn\r
+            // \r
+            this.messageDataGridViewTextBoxColumn.DataPropertyName = "message";\r
+            this.messageDataGridViewTextBoxColumn.HeaderText = "message";\r
+            this.messageDataGridViewTextBoxColumn.Name = "messageDataGridViewTextBoxColumn";\r
+            this.messageDataGridViewTextBoxColumn.Width = 83;\r
+            // \r
+            // systemMessageBindingSource\r
+            // \r
+            this.systemMessageBindingSource.DataSource = typeof(Maestro.SystemMessage);\r
+            // \r
             // metadataInfoBindingSource\r
             // \r
             this.metadataInfoBindingSource.DataSource = typeof(Maestro.Metadata.MetadataInfo);\r
@@ -658,7 +778,7 @@ namespace Maestro {
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
             this.BackColor = System.Drawing.SystemColors.Control;\r
-            this.ClientSize = new System.Drawing.Size(1022, 561);\r
+            this.ClientSize = new System.Drawing.Size(1022, 632);\r
             this.Controls.Add(this.splitContainer2);\r
             this.Icon = global::Maestro.Properties.Resources.AppIcon;\r
             this.Name = "MaestroForm";\r
@@ -696,8 +816,13 @@ namespace Maestro {
             ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();\r
             this.splitContainer2.ResumeLayout(false);\r
             this.groupActions.ResumeLayout(false);\r
+            this.tabControl2.ResumeLayout(false);\r
+            this.tabPage1.ResumeLayout(false);\r
             ((System.ComponentModel.ISupportInitialize)(this.dataGridJobs)).EndInit();\r
             ((System.ComponentModel.ISupportInitialize)(this.bindingSourceJobs)).EndInit();\r
+            this.tabPage2.ResumeLayout(false);\r
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridMessages)).EndInit();\r
+            ((System.ComponentModel.ISupportInitialize)(this.systemMessageBindingSource)).EndInit();\r
             ((System.ComponentModel.ISupportInitialize)(this.metadataInfoBindingSource)).EndInit();\r
             this.ResumeLayout(false);\r
 \r
@@ -744,6 +869,13 @@ namespace Maestro {
         private System.Windows.Forms.DataGridViewTextBoxColumn columnFinished;\r
         private System.Windows.Forms.DataGridViewTextBoxColumn columnInput;\r
         private System.Windows.Forms.DataGridViewTextBoxColumn columnOutput;\r
+        private System.Windows.Forms.TabControl tabControl2;\r
+        private System.Windows.Forms.TabPage tabPage1;\r
+        private System.Windows.Forms.TabPage tabPage2;\r
+        private System.Windows.Forms.DataGridView dataGridMessages;\r
+        private System.Windows.Forms.BindingSource systemMessageBindingSource;\r
+        private System.Windows.Forms.DataGridViewTextBoxColumn timeDataGridViewTextBoxColumn;\r
+        private System.Windows.Forms.DataGridViewTextBoxColumn messageDataGridViewTextBoxColumn;\r
     }\r
 }\r
 \r
index 14c17c322ddbe772caa5eb8baa56f85461d3cbe3..c317cd85e1bc2be4ee0b36ec40c0ae2988d35062 100644 (file)
@@ -42,7 +42,8 @@ namespace Maestro {
                 Address = metadata.Server.Address,\r
                 UserName = metadata.Server.UserName,\r
                 Password = metadata.Server.Password,\r
-                Timeout = metadata.Server.Timeout\r
+                Timeout = metadata.Server.Timeout,\r
+                ErrorReporter = ReportError\r
             };\r
             trafficIDSelector.IDChangedEvent += TrafficIDSelected;\r
         }\r
@@ -64,7 +65,7 @@ namespace Maestro {
             MediaCubeMetadata metadata = Configuration.Metadatas.Where(m => { return m is MediaCubeMetadata; }).FirstOrDefault() as MediaCubeMetadata;\r
             if (metadata == null)\r
                 return;\r
-            mediaCubeApi = new MediaCubeApi(metadata.Server.Address.ToString(), metadata.Server.UserName, metadata.Server.Password, metadata.Server.Timeout);\r
+            mediaCubeApi = new MediaCubeApi(metadata.Server.Address.ToString(), metadata.Server.UserName, metadata.Server.Password, metadata.Server.Timeout) { ErrorReporter = ReportError };\r
         }\r
 \r
         private void OnOctopusIDSelected(string selectedID) {\r
index a044d31bd4f4f89ffffcf574c15e6d051180e966..88cac0c91047de25a56ec6fb822d542641529d4d 100644 (file)
@@ -37,12 +37,12 @@ namespace Maestro {
 \r
             if (Configuration?.Source is UNCSource) {\r
                 logger.Debug("UNC source initialization");\r
-                source = new FileSystemSource(this, MessageBus);\r
+                source = new FileSystemSource(this, MessageBus, Configuration.Filter);\r
                 logger.Debug("UNC source created");\r
             }\r
             if (Configuration?.Source is NEXIOSource) {\r
                 logger.Debug("NEXIO source  initialization");\r
-                source = new NexioRESTSource(this, MessageBus);\r
+                source = new NexioRESTSource(this, MessageBus, ReportError);\r
                 logger.Debug("NEXIO source created");\r
             }\r
 \r
index d8a69d2345bd2f21713f58ec33efd406d2f66c09..3323c8df972a1d6be9646d013dcbdbd92307e161 100644 (file)
@@ -77,15 +77,6 @@ namespace Maestro {
                         ITargetProcessor processor = (ITargetProcessor)Activator.CreateInstance(type, parameters);\r
                         processors.Add(processor);\r
                     }\r
-                    //foreach (String actual in selectedSources) {\r
-                    //    string typeName = string.Format("{0}.{1}", typeof(ITargetProcessor).Namespace, target.Processor);\r
-                    //    Type type = Type.GetType(typeName);\r
-                    //    ISourceItem selectedFile = GetSourceItemFromBindingSource(actual);//bindingSource.Current as ISourceItem;\r
-                    //    string id = selectedMetadata.ID;\r
-                    //    object[] parameters = new object[] { this, Configuration.Source, target, selectedFile.Name, id, segments, mediaCubeApi, model };\r
-                    //    ITargetProcessor processor = (ITargetProcessor)Activator.CreateInstance(type, parameters);\r
-                    //    processors.Add(processor);\r
-                    //}\r
                     currentProcessors.Add(checkBox, processors);\r
                 } else\r
                     currentProcessors.Remove(checkBox);\r
index e9a08042f3a4c095a84b60f2938434c5b9211bbd..038d9f80dfa49a5845cf0c5305ea5d3bea77e79b 100644 (file)
@@ -29,6 +29,7 @@ namespace Maestro {
         public ConfigurationInfo Configuration;\r
         private TraficMetadataSelected trafficMetadataSelected;\r
         private OctopusMetadataSelected octopusMetadataSelected;\r
+        private Color newMSGColor;\r
 \r
         public Clear clear;\r
 \r
@@ -41,7 +42,8 @@ namespace Maestro {
         public MaestroForm() {\r
             InitializeComponent();\r
             trafficIDSelector.clearCheckBox = octopusIDSelector.ClearEveryCheckBox;\r
-            octopusIDSelector.clearCheckBox = trafficIDSelector.ClearSelectionSource;\r
+            octopusIDSelector.ClearCheckBox = trafficIDSelector.ClearSelectionSource;\r
+            octopusIDSelector.ErrorReporter = ReportError;\r
             groups = new GroupBox[] { groupSource, groupMetadata, groupTarget, groupActions };\r
             trafficMetadataSelected = TrafficIDSelected;\r
             octopusMetadataSelected = OnOctopusIDSelected;\r
@@ -64,7 +66,6 @@ namespace Maestro {
             columnStatus.HeaderText = StringResources.STATUSZ;\r
             ctxiDefineSegments.Text = StringResources.SZEGMENS_LETREHOZASA;\r
             ctxiModifyArchiveMetadata.Text = StringResources.ARCHÍV_METAADATOK_MODOSITASA;\r
-            buttonMetadata.Text = StringResources.METAADAT;\r
         }\r
 \r
         private void InitializeComponents() {\r
@@ -72,9 +73,23 @@ namespace Maestro {
             InitializeMetadata();\r
             InitializeTarget();\r
             InitializeJobs();\r
+            InitializeMessages();\r
             InitializeControlTexts();\r
         }\r
 \r
+        private void InitializeMessages() {\r
+            dataGridMessages.Columns.AddRange(new DataGridViewTextBoxColumn() {\r
+                AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells,\r
+                DataPropertyName = "Time",\r
+                HeaderText = StringResources.IDO\r
+            },\r
+                new DataGridViewTextBoxColumn() {\r
+                    AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells,\r
+                    DataPropertyName = "Message",\r
+                    HeaderText = StringResources.UZENET\r
+                });\r
+        }\r
+\r
         private void InitializeJobs() {\r
             bindingSourceJobs.DataSource = jobs;\r
             foreach (DataGridViewColumn column in dataGridJobs.Columns) {\r
@@ -244,5 +259,19 @@ namespace Maestro {
         }\r
 \r
 \r
+        public void ReportError(DateTime time, String message, Color color) {\r
+            systemMessageBindingSource.Insert(0, new SystemMessage() { Time = time, message = message});\r
+            UpdateDataChanged();\r
+            newMSGColor = color;\r
+        }\r
+\r
+        private void UpdateDataChanged() {\r
+            dataGridMessages.DataSource = null;\r
+            dataGridMessages.DataSource = systemMessageBindingSource;\r
+        }\r
+\r
+        private void dataGridMessages_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) {\r
+            dataGridMessages.Rows[0].DefaultCellStyle.BackColor = newMSGColor;\r
+        }\r
     }\r
 }\r
index 6323a0bb14c360013f02d55850f8f5d460da23ab..a7fb3dc3646e8b3ee23266d11827ccc6f0792a1a 100644 (file)
   <metadata name="bindingSourceJobs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
     <value>154, 17</value>\r
   </metadata>\r
+  <metadata name="systemMessageBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+    <value>630, 17</value>\r
+  </metadata>\r
   <metadata name="metadataInfoBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
     <value>309, 17</value>\r
   </metadata>\r
diff --git a/client/Maestro/Properties/DataSources/SystemMessage.datasource b/client/Maestro/Properties/DataSources/SystemMessage.datasource
new file mode 100644 (file)
index 0000000..4435d11
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!--\r
+    This file is automatically generated by Visual Studio .Net. It is \r
+    used to store generic object data source configuration information.  \r
+    Renaming the file extension or editing the content of this file may   \r
+    cause the file to be unrecognizable by the program.\r
+-->\r
+<GenericObjectDataSource DisplayName="SystemMessage" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">\r
+   <TypeInfo>Maestro.SystemMessage, Maestro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>\r
+</GenericObjectDataSource>
\ No newline at end of file
index afd9612fe4b012f3712d452b5203c28970b87e80..0ac702f2176932239c719d93b8b7afb1aeab8f65 100644 (file)
@@ -3,6 +3,7 @@
   "active": true,\r
   "startInTray": false,\r
   "enableNameOverride": false,\r
+  "filter": "avi",\r
   "player": {\r
     "enabled": true,\r
     "autoStart": false,\r
index 32c05da0056e7991721eb33dd9480ae63e109c07..dba3de992778fe6519b14e9f6a9865df22c6a42f 100644 (file)
@@ -4,6 +4,7 @@
   "startInTray": false,\r
   "enableNameOverride": false,\r
   "enableCustomMetadataId": true,\r
+  "filter": "avi,wav",\r
   "player": {\r
     "enabled": true,\r
     "autoStart": false,\r
   "source": {\r
     "$type": "UNCSource",\r
     "local": {\r
-      "address": "file://10.10.1.100/BRAAVOS/_TEST_/_ECHO/hirado/test"\r
+      "address": "file://localhost/watch"\r
     },\r
     "remote": {\r
-      "address": "ftp://10.10.1.100:21/_TEST_/_ECHO/hirado/test",\r
-      "userName": "mediacube",\r
-      "password": "Broadca5T"\r
+      "address": "ftp://localhost:21/watch",\r
+      "userName": "dani",\r
+      "password": "dani"\r
     }\r
   },\r
   "metadatas": [\r
     {\r
       "$type": "OctopusMetadata",\r
       "server": {\r
-        "address": "http://10.10.1.28:8080/services/rest/octopus/",\r
+        "address": "http://100.10.1.28:8080/services/rest/octopus/",\r
         "userName": "dani",\r
         "password": "dani",\r
         "timeout": 1000\r
index fa65e0aef19723744f76ad938008380279da34a5..212a6789cdbddc3e4231821a736ce6020f29e5a3 100644 (file)
@@ -17,14 +17,14 @@ namespace Maestro.Sources {
             while (!e.Cancel) {\r
                 Thread.Sleep(3000);\r
                 FileInfo fi = new FileInfo(path);\r
-                if (lastSize == fi.Length) {\r
-                    e.Result = fi;\r
-                    break;\r
-                }\r
-                else\r
-                    lastSize = fi.Length;\r
+                if (fi.Exists)\r
+                    if (lastSize == fi.Length) {\r
+                        e.Result = fi;\r
+                        break;\r
+                    } else\r
+                        lastSize = fi.Length;\r
             }\r
-            \r
+\r
         }\r
 \r
 \r
index 815c1248cede6124114e9eda8b0382f79a3879d2..d441a31538d153f9167c0ce4854f726181a37ffd 100644 (file)
@@ -3,6 +3,7 @@ using System.ComponentModel;
 using System.Drawing;\r
 using System.IO;\r
 using System.Runtime.CompilerServices;\r
+using System.Collections.Generic;\r
 \r
 namespace Maestro.Sources {\r
     public class FileSourceItem : ISourceItem {\r
@@ -60,5 +61,13 @@ namespace Maestro.Sources {
             }\r
         }\r
 \r
+\r
+        public bool CanHandle(List<String> extensions) {\r
+             if (extensions == null || extensions.Count < 1)\r
+                return true;\r
+            if (extensions.Contains(fileInfo.Extension.Substring(1)))\r
+                return true;\r
+            return false;\r
+        }\r
     }\r
 }\r
index cdeec3c5260c3f375956a2f44f7ecd2e2ecca782..b4148f8badf36c56e8b71c9f4b6ebf5818e2ef80 100644 (file)
@@ -19,6 +19,8 @@ namespace Maestro.Sources {
         private List<CreatedFileMonitor> createdFileMonitors = new List<CreatedFileMonitor>();\r
         private Control parent;\r
         private string filter;\r
+        private string fileExtensionFilter;\r
+        private List<String> acceptableExtensions = new List<string>();\r
         private List<FileSourceItem> cache = new List<FileSourceItem>();\r
 \r
         public DataGridViewColumn[] Columns {\r
@@ -62,9 +64,15 @@ namespace Maestro.Sources {
 \r
         public bool SupportsFiltering => true;\r
 \r
-        public FileSystemSource(Control parent, IMessageBus messageBus) {\r
+        public FileSystemSource(Control parent, IMessageBus messageBus, String fileExtensionFilter) {\r
             this.parent = parent;\r
             this.messageBus = messageBus;\r
+            this.fileExtensionFilter = fileExtensionFilter;\r
+            SetAcceptableExtensions();\r
+        }\r
+\r
+        private void SetAcceptableExtensions() {\r
+            acceptableExtensions = fileExtensionFilter.Split(',').ToList();\r
         }\r
 \r
         public void Startup(Uri address) {\r
@@ -88,7 +96,8 @@ namespace Maestro.Sources {
 \r
         private void initializeList(string path) {\r
             string[] files = Directory.GetFiles(path);\r
-            files.Select(f => CreateItem(new FileInfo(f), false)).OrderByDescending(i => i.Created).ToList().ForEach(i => parent.SafeCall(() => Add(i)));\r
+            //files.Select(f => CreateItem(new FileInfo(f), false)).Where(x => x.Name.EndsWith("avi")).OrderByDescending(i => i.Created).ToList().ForEach(i => parent.SafeCall(() => Add(i)));\r
+            files.Select(f => CreateItem(new FileInfo(f), false)).Where(x => x.CanHandle(acceptableExtensions)).OrderByDescending(i => i.Created).ToList().ForEach(i => parent.SafeCall(() => Add(i)));\r
             cache.AddRange(this);\r
         }\r
 \r
@@ -109,13 +118,15 @@ namespace Maestro.Sources {
             var item = this.Where(x => x.Name == e.OldName).SingleOrDefault();\r
             if (item == null)\r
                 return;\r
-            item.FileInfo = new FileInfo(e.FullPath);\r
-            parent.SafeCall(() => {\r
-                messageBus.Send(new ModifyFileActionMsg() {\r
-                    FileName = e.Name,\r
-                    Source = parent\r
+            if (item.CanHandle(acceptableExtensions)) {\r
+                item.FileInfo = new FileInfo(e.FullPath);\r
+                parent.SafeCall(() => {\r
+                    messageBus.Send(new ModifyFileActionMsg() {\r
+                        FileName = e.Name,\r
+                        Source = parent\r
+                    });\r
                 });\r
-            });\r
+            }\r
         }\r
 \r
         private void OnChanged(object sender, FileSystemEventArgs e) {\r
@@ -123,13 +134,15 @@ namespace Maestro.Sources {
             var item = this.Where(x => x.Name == e.Name).SingleOrDefault();\r
             if (item == null)\r
                 return;\r
-            item.FileInfo = new FileInfo(e.FullPath);\r
-            parent.SafeCall(() => {\r
-                messageBus.Send(new ModifyFileActionMsg() {\r
-                    FileName = e.Name,\r
-                    Source = parent\r
+            if (item.CanHandle(acceptableExtensions)) {\r
+                item.FileInfo = new FileInfo(e.FullPath);\r
+                parent.SafeCall(() => {\r
+                    messageBus.Send(new ModifyFileActionMsg() {\r
+                        FileName = e.Name,\r
+                        Source = parent\r
+                    });\r
                 });\r
-            });\r
+            }\r
         }\r
 \r
         private void OnCreated(object sender, FileSystemEventArgs e) {\r
@@ -148,18 +161,24 @@ namespace Maestro.Sources {
             logger.Debug("{0} {1}", e.ChangeType, e.Name);\r
         }\r
 \r
-        private void OnDeleted(object sender, FileSystemEventArgs e) {\r
+        private void OnDeleted(object sender, FileSystemEventArgs e) { \r
             logger.Debug("{0} {1}", e.ChangeType, e.Name);\r
-            FileSourceItem fileSourceItem = this.Where(item => item.Name.Equals(e.Name)).First();\r
-            parent.SafeCall(() => {\r
-                Remove(fileSourceItem);\r
-                messageBus.Send(new RemoveFileActionMsg() {\r
-                    FileName = e.Name,\r
-                    Source = parent\r
+            var enumList = this.Where(item => item.Name.Equals(e.Name))?.ToList();\r
+            FileSourceItem fileSourceItem = enumList.Count == 0 ? null : enumList.First();\r
+            if (fileSourceItem == null)\r
+                return;\r
+            if (fileSourceItem.CanHandle(acceptableExtensions)) {\r
+                parent.SafeCall(() => {\r
+                    Remove(fileSourceItem);\r
+                    messageBus.Send(new RemoveFileActionMsg() {\r
+                        FileName = e.Name,\r
+                        Source = parent\r
+                    });\r
                 });\r
-            });\r
-            MaestroForm form = (MaestroForm)parent;\r
-            form.SourceDeleted(e.Name);\r
+                MaestroForm form = (MaestroForm)parent;\r
+                form.SourceDeleted(e.Name);\r
+                return;\r
+            }\r
         }\r
 \r
         public void ApplySort(ListSortDescriptionCollection sorts) {\r
index bfc2c5ab586aa02383590bf424de4c46215cc7ba..ad86398c49d6a313eac93f20456c6323fbdeabcf 100644 (file)
@@ -11,6 +11,7 @@ using WebSocketSharp;
 using System;\r
 using System.Drawing;\r
 using NLog;\r
+using JobEngineClient;\r
 \r
 namespace Maestro.Sources {\r
     class NexioRESTSource : BindingList<NexioSourceItem>, ISource {\r
@@ -66,9 +67,12 @@ namespace Maestro.Sources {
 \r
         public bool SupportsFiltering => throw new NotImplementedException();\r
 \r
-        public NexioRESTSource(Control parent, IMessageBus messageBus) {\r
+        private MediaCubeErrorReporter errorReporter;\r
+\r
+        public NexioRESTSource(Control parent, IMessageBus messageBus, MediaCubeErrorReporter errorReporter) {\r
             this.parent = parent;\r
             this.messageBus = messageBus;\r
+            this.errorReporter = errorReporter;\r
         }\r
 \r
         public void Startup(Uri address) {\r
@@ -80,7 +84,7 @@ namespace Maestro.Sources {
         private void CreateWatch(string path) {\r
             logger.Info("info");\r
             logger.Error("error");\r
-            dataClient = new NexioAPI(path);\r
+            dataClient = new NexioAPI(path) { ErrorReporter = errorReporter};\r
             dataClient.Open(OnResponse);\r
         }\r
 \r
index 6855d6b360a876f184553eaf35751fa1b1ddf16d..452f016e87a744b712da73bae8b7f3839848cdc0 100644 (file)
@@ -132,6 +132,15 @@ namespace Maestro {
             }\r
         }\r
         \r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Folyamatok.\r
+        /// </summary>\r
+        internal static string FOLYAMATOK {\r
+            get {\r
+                return ResourceManager.GetString("FOLYAMATOK", resourceCulture);\r
+            }\r
+        }\r
+        \r
         /// <summary>\r
         ///   Looks up a localized string similar to Forrás.\r
         /// </summary>\r
@@ -150,6 +159,15 @@ namespace Maestro {
             }\r
         }\r
         \r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Idő.\r
+        /// </summary>\r
+        internal static string IDO {\r
+            get {\r
+                return ResourceManager.GetString("IDO", resourceCulture);\r
+            }\r
+        }\r
+        \r
         /// <summary>\r
         ///   Looks up a localized string similar to Kezdés.\r
         /// </summary>\r
@@ -258,6 +276,24 @@ namespace Maestro {
             }\r
         }\r
         \r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Üzenet.\r
+        /// </summary>\r
+        internal static string UZENET {\r
+            get {\r
+                return ResourceManager.GetString("UZENET", resourceCulture);\r
+            }\r
+        }\r
+        \r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Üzenetek.\r
+        /// </summary>\r
+        internal static string UZENETEK {\r
+            get {\r
+                return ResourceManager.GetString("UZENETEK", resourceCulture);\r
+            }\r
+        }\r
+        \r
         /// <summary>\r
         ///   Looks up a localized string similar to Vége.\r
         /// </summary>\r
index cbbbbab7953aa93046b9a1dd8e33062a7275d517..66d10991122876aee809a58e1ab828d264e764ea 100644 (file)
   <data name="FELVETEL_DATUMA" xml:space="preserve">\r
     <value>Felvétel dátuma</value>\r
   </data>\r
+  <data name="FOLYAMATOK" xml:space="preserve">\r
+    <value>Folyamatok</value>\r
+  </data>\r
   <data name="FORRAS" xml:space="preserve">\r
     <value>Forrás</value>\r
   </data>\r
   <data name="FORRAS_FAJL" xml:space="preserve">\r
     <value>Forrás fájl</value>\r
   </data>\r
+  <data name="IDO" xml:space="preserve">\r
+    <value>Idő</value>\r
+  </data>\r
   <data name="KEZDES" xml:space="preserve">\r
     <value>Kezdés</value>\r
   </data>\r
   <data name="UGYNOKSEG" xml:space="preserve">\r
     <value>Ügynökség</value>\r
   </data>\r
+  <data name="UZENET" xml:space="preserve">\r
+    <value>Üzenet</value>\r
+  </data>\r
+  <data name="UZENETEK" xml:space="preserve">\r
+    <value>Üzenetek</value>\r
+  </data>\r
   <data name="VEGE" xml:space="preserve">\r
     <value>Vége</value>\r
   </data>\r
diff --git a/client/Maestro/SystemMessage.cs b/client/Maestro/SystemMessage.cs
new file mode 100644 (file)
index 0000000..f5b8db3
--- /dev/null
@@ -0,0 +1,13 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using System.Threading.Tasks;\r
+\r
+namespace Maestro {\r
+    public class SystemMessage {\r
+\r
+        public DateTime Time { get; set; }\r
+        public String message { get; set; }\r
+    }\r
+}\r
index afa9fcee94b26ada104fc0044b24296c0ad0d51f..647a99c22686f74a352aca7b5e9d4a0d6676cdb6 100644 (file)
@@ -8,8 +8,12 @@ using System;
 using System.Diagnostics;\r
 using System.Net;\r
 using System.Runtime.Serialization;\r
+using System.Drawing;\r
 \r
 namespace JobEngineClient {\r
+\r
+    public delegate void MediaCubeErrorReporter(DateTime time, String message, Color color);\r
+\r
     public class MediaCubeApi {\r
         private const string DATEFORMAT = "yyyy'-'MM'-'dd'T'HH':'mm':'ssK";\r
         private static Logger logger = LogManager.GetCurrentClassLogger();\r
@@ -17,6 +21,7 @@ namespace JobEngineClient {
         private JsonSerializerSettings serializerSettings;\r
         private string user;\r
         private string pwd;\r
+        public MediaCubeErrorReporter ErrorReporter { get; set; }\r
 \r
         public MediaCubeApi(string address, string user, string pwd, int timeout) {\r
             this.user = user;\r
@@ -39,8 +44,10 @@ namespace JobEngineClient {
             //Debug.WriteLine(body);\r
             request.AddParameter("application/json", body, ParameterType.RequestBody);\r
             var response = client.Execute(request);\r
-            if (response.StatusCode != HttpStatusCode.OK || response.ContentLength < 1)\r
+            if (response.StatusCode != HttpStatusCode.OK || response.ContentLength < 1) {\r
+                ErrorReporter?.Invoke(DateTime.Now, String.Format("[MediaCube] {0}", response.ErrorMessage), Color.Red);\r
                 return null;\r
+            }\r
             //Debug.WriteLine(response.Content);\r
             var result = JsonConvert.DeserializeObject<WorkflowAction>(response.Content);\r
             return result;\r
index 5cacaf49073ba97b4a744dcac1ee65c0a0c6f4b2..6d1f57373b495372605e726e064edc4197fb7721 100644 (file)
@@ -72,6 +72,7 @@
     <Reference Include="System" />\r
     <Reference Include="System.ComponentModel.DataAnnotations" />\r
     <Reference Include="System.Data" />\r
+    <Reference Include="System.Drawing" />\r
     <Reference Include="System.Runtime.Serialization" />\r
     <Reference Include="System.Xml" />\r
     <Reference Include="websocket-sharp, Version=1.0.2.42480, Culture=neutral, PublicKeyToken=5660b08a1845a91e, processorArchitecture=MSIL">\r
index 4bcaacc3abc7c6c70a64ec4ba19bdfefe2fe05af..69dadbddca339f873b30cb34e2dd31555ff2acc4 100644 (file)
@@ -2,7 +2,7 @@ using Newtonsoft.Json.Linq;
 using System;\r
 using System.Diagnostics;\r
 using WebSocketSharp;\r
-\r
+using JobEngineClient;\r
 \r
 namespace NexioClient {\r
     public class NexioAPI {\r
@@ -14,7 +14,7 @@ namespace NexioClient {
         public const string UPDATE = "update";\r
         private WebSocket ws = null;\r
         private string path;\r
-\r
+        public MediaCubeErrorReporter ErrorReporter { get; set; }\r
         public NexioAPI(String path) {\r
             this.path = path;\r
         }\r
@@ -55,6 +55,7 @@ namespace NexioClient {
                 ws.Connect();\r
             }\r
             catch (Exception e) {\r
+                ErrorReporter?.Invoke(DateTime.Now, String.Format("[NexioAPI] {0}", e.Message), System.Drawing.Color.Red);\r
             } \r
         }\r
 \r
@@ -65,6 +66,7 @@ namespace NexioClient {
                 ws.Send(data.ToString());\r
             }\r
             catch (Exception e) {\r
+                ErrorReporter?.Invoke(DateTime.Now, String.Format("[NexioAPI] {0}", e.Message), System.Drawing.Color.Red);\r
             }\r
         }\r
 \r
index f23fda47e13fbc2a53a25de8b463506dc8ed925b..988bf0593cb336fb6ea9924d2d5772cb03161a46 100644 (file)
@@ -67,14 +67,16 @@ namespace OctopusClient {
         private RestClient client;\r
         private string user;\r
         private string pwd;\r
+        private OctopusErrorReporterDelegate errorRiporter;\r
 \r
-        public OctopusAPI(string address, string user, string pwd, int timeout) {\r
+        public OctopusAPI(string address, string user, string pwd, int timeout, OctopusErrorReporterDelegate errorRiporter) {\r
             this.user = user;\r
             this.pwd = pwd;\r
             client = new RestClient(address) {\r
                 Authenticator = new HttpBasicAuthenticator(user, pwd),\r
                 Timeout = timeout\r
             };\r
+            this.errorRiporter = errorRiporter;\r
         }\r
 \r
         public IEnumerable<Rundown> GetRundowns(DateTime scheduledDate) {\r
@@ -85,7 +87,7 @@ namespace OctopusClient {
                 request.AddParameter("scheduledDate", dt, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
                 if (response.ContentLength == 0)\r
-                    return null;\r
+                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -99,7 +101,8 @@ namespace OctopusClient {
                 });\r
             }\r
             catch (Exception e) {\r
-                //log e.Message ??\r
+                errorRiporter?.Invoke(DateTime.Now, e.Message, System.Drawing.Color.Red);\r
+                return result;\r
             }\r
             return result;\r
         }\r
@@ -111,7 +114,7 @@ namespace OctopusClient {
                 request.AddParameter("rundownID", rundownID, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
                 if (response.ContentLength == 0)\r
-                    return null;\r
+                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -133,7 +136,9 @@ namespace OctopusClient {
                     return r.ID;\r
                 });\r
             }\r
-            catch (Exception e) { }\r
+            catch (Exception e) {\r
+                errorRiporter?.Invoke(DateTime.Now, e.Message, System.Drawing.Color.Red);\r
+            }\r
             return result;\r
         }\r
 \r
@@ -144,7 +149,7 @@ namespace OctopusClient {
                 request.AddParameter("storyFolderID", storyFolderID, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
                 if (response.ContentLength == 0)\r
-                    return null;\r
+                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -167,7 +172,9 @@ namespace OctopusClient {
                     return r.ID;\r
                 });\r
             }\r
-            catch (Exception e) { }\r
+            catch (Exception e) {\r
+                errorRiporter?.Invoke(DateTime.Now, e.Message, System.Drawing.Color.Red);\r
+            }\r
             return result;\r
         }\r
 \r
@@ -214,7 +221,7 @@ namespace OctopusClient {
                 var request = new RestRequest("storyfolders", Method.GET);\r
                 var response = client.Execute<JsonArray>(request);\r
                 if (response.ContentLength == 0)\r
-                    return null;\r
+                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -226,7 +233,9 @@ namespace OctopusClient {
                     return r;\r
                 });\r
             }\r
-            catch (Exception e) { }\r
+            catch (Exception e) {\r
+                errorRiporter?.Invoke(DateTime.Now, e.Message, System.Drawing.Color.Red);\r
+            }\r
             return result;\r
         }\r
 \r
@@ -236,7 +245,7 @@ namespace OctopusClient {
                 var request = new RestRequest("stories", Method.GET);\r
                 var response = client.Execute<JsonArray>(request);\r
                 if (response.ContentLength == 0)\r
-                    return null;\r
+                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -254,7 +263,9 @@ namespace OctopusClient {
                     return r;\r
                 });\r
             }\r
-            catch (Exception e) { }\r
+            catch (Exception e) {\r
+                errorRiporter?.Invoke(DateTime.Now, e.Message, System.Drawing.Color.Red);\r
+            }\r
             return result;\r
         }\r
 \r
@@ -265,7 +276,7 @@ namespace OctopusClient {
                 request.AddParameter("id", id, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
                 if (response.ContentLength == 0)\r
-                    return null;\r
+                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -283,7 +294,9 @@ namespace OctopusClient {
                     return r;\r
                 });\r
             }\r
-            catch (Exception e) { }\r
+            catch (Exception e) {\r
+                errorRiporter?.Invoke(DateTime.Now, e.Message, System.Drawing.Color.Red);\r
+            }\r
             return result;\r
         }\r
 \r
@@ -294,7 +307,7 @@ namespace OctopusClient {
                 request.AddParameter("id", id, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
                 if (response.ContentLength == 0)\r
-                    return null;\r
+                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -307,7 +320,9 @@ namespace OctopusClient {
                     return r;\r
                 });\r
             }\r
-            catch (Exception e) { }\r
+            catch (Exception e) {\r
+                errorRiporter?.Invoke(DateTime.Now, e.Message, System.Drawing.Color.Red);\r
+            }\r
             return result;\r
         }\r
 \r
@@ -318,7 +333,7 @@ namespace OctopusClient {
                 request.AddParameter("id", id, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
                 if (response.ContentLength == 0)\r
-                    return null;\r
+                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -332,7 +347,9 @@ namespace OctopusClient {
                     return r;\r
                 });\r
             }\r
-            catch (Exception e) { }\r
+            catch (Exception e) {\r
+                errorRiporter?.Invoke(DateTime.Now, e.Message, System.Drawing.Color.Red);\r
+            }\r
             return result;\r
         }\r
 \r
@@ -343,7 +360,7 @@ namespace OctopusClient {
                 request.AddParameter("id", id, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
                 if (response.ContentLength == 0)\r
-                    return null;\r
+                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -359,7 +376,9 @@ namespace OctopusClient {
                     return r;\r
                 });\r
             }\r
-            catch (Exception e) { }\r
+            catch (Exception e) {\r
+                errorRiporter?.Invoke(DateTime.Now, e.Message, System.Drawing.Color.Red);\r
+            }\r
             return result;\r
         }\r
 \r
@@ -370,7 +389,7 @@ namespace OctopusClient {
                 request.AddParameter("id", placeHolderID, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
                 if (response.ContentLength == 0)\r
-                    return null;\r
+                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -384,7 +403,7 @@ namespace OctopusClient {
                 });\r
             }\r
             catch (Exception e) {\r
-                //log e.Message ??\r
+                errorRiporter?.Invoke(DateTime.Now, e.Message, System.Drawing.Color.Red);\r
             }\r
             return result;\r
         }\r
@@ -396,7 +415,7 @@ namespace OctopusClient {
                 request.AddParameter("id", placeHolderID, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
                 if (response.ContentLength == 0)\r
-                    return null;\r
+                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -409,7 +428,7 @@ namespace OctopusClient {
                 });\r
             }\r
             catch (Exception e) {\r
-                //log e.Message ??\r
+                errorRiporter?.Invoke(DateTime.Now, e.Message, System.Drawing.Color.Red);\r
             }\r
             return result;\r
         }\r
@@ -421,7 +440,7 @@ namespace OctopusClient {
                 request.AddParameter("id", placeHolderID, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
                 if (response.ContentLength == 0)\r
-                    return null;\r
+                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -444,7 +463,9 @@ namespace OctopusClient {
                     return r.ID;\r
                 });\r
             }\r
-            catch (Exception e) { }\r
+            catch (Exception e) {\r
+                errorRiporter?.Invoke(DateTime.Now, e.Message, System.Drawing.Color.Red);\r
+            }\r
             return result;\r
         }\r
     }\r
index 65a2fe9e4eee6d4eb5a0caa9e79dd7185fe7690c..6d45babf54fcb3f5e159b58706ad78db4c949621 100644 (file)
@@ -4,15 +4,19 @@ using System.Linq;
 using System.Windows.Forms;\r
 using System.Collections.Generic;\r
 using System.ComponentModel;\r
+using System.Drawing;\r
 \r
 namespace OctopusClient {\r
     public delegate void OnSelectedIDChanged(string ID);\r
     public delegate void ClearCheckBox();\r
+    public delegate void OctopusErrorReporterDelegate(DateTime time, String message, Color color);\r
 \r
     public partial class OctopusIDSelector : UserControl {\r
 \r
         private string id;\r
-        public ClearCheckBox clearCheckBox { get; set; }\r
+        public ClearCheckBox ClearCheckBox { get; set; }\r
+\r
+        public OctopusErrorReporterDelegate ErrorReporter { get; set; }\r
 \r
         public bool Disposeabel { get; set; }\r
 \r
@@ -27,7 +31,7 @@ namespace OctopusClient {
 \r
         public OctopusConfiguration Configuration {\r
             set {\r
-                client = new OctopusAPI(value.Address.OriginalString, value.UserName, value.Password, value.Timeout);\r
+                client = new OctopusAPI(value.Address.OriginalString, value.UserName, value.Password, value.Timeout, ErrorReporter);\r
                 refreshStoryFolders();\r
                 refreshRundowns();\r
             }\r
@@ -226,7 +230,7 @@ namespace OctopusClient {
         private void InnerAfterCheck(TreeNode node) {\r
             string text = node.Name;\r
             checkFromCode = false;\r
-            clearCheckBox?.Invoke();\r
+            ClearCheckBox?.Invoke();\r
             ClearSelectionSource(node, treeContent.Nodes);\r
             id = node.Checked ? text : string.Empty;\r
             IDChangedEvent?.Invoke(id);\r
index abda2f3f5718830e34117207dfb076c5eef183d5..d1feb6af835f8de5979aa8f8681af6f66b323cfb 100644 (file)
@@ -177,6 +177,15 @@ namespace OctopusClient {
             }\r
         }\r
         \r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Nem lehet csatlakozni az octopus kiszolgálóhoz.\r
+        /// </summary>\r
+        internal static string OCTOPUS_KAPCSOLATI_HIBA {\r
+            get {\r
+                return ResourceManager.GetString("OCTOPUS_KAPCSOLATI_HIBA", resourceCulture);\r
+            }\r
+        }\r
+        \r
         /// <summary>\r
         ///   Looks up a localized string similar to Válasszon elemet.\r
         /// </summary>\r
index 3baa3ae925184a2cf8d6609ac1e1ed9d3d8abe69..3e037957c68a61aedb9cb0d01aec9985ccaca50b 100644 (file)
   <data name="OBJECT_TYPE" xml:space="preserve">\r
     <value>Objektum típusa</value>\r
   </data>\r
+  <data name="OCTOPUS_KAPCSOLATI_HIBA" xml:space="preserve">\r
+    <value>Nem lehet csatlakozni az octopus kiszolgálóhoz</value>\r
+  </data>\r
   <data name="VALASSZON_ELEMET" xml:space="preserve">\r
     <value>Válasszon elemet</value>\r
   </data>\r
index 00b7a50fe31a4fe9e4de5a35fe270a0cd4a31935..68be041d5228aeecca54be20d250c6f7e512c1b0 100644 (file)
@@ -1,8 +1,4 @@
 using System;\r
-using System.Collections.Generic;\r
-using System.Linq;\r
-using System.Text;\r
-using System.Threading.Tasks;\r
 using System.Data.SqlClient;\r
 \r
 namespace TrafficClient {\r
index 050aacab69a7182afceebe8fa3d3f67604f8868d..4425eacd6450d92caad8a7e23c94e12fc70146a5 100644 (file)
@@ -17,14 +17,14 @@ namespace TrafficClient {
         private AdvertisementWorker adWorker;\r
         private SegmentWorker segmentWorker;\r
 \r
-        public TrafficAPI(string connString, string user, string password, int timeout) {\r
+        public TrafficAPI(string connString, string user, string password, int timeout, TrafficErrorReporterDelegate errorReporter) {\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
+            broadvastWorker = new BroadcastWorker(connection, cliFSPReader, errorReporter);\r
+            promoWorker = new PromotionalWorker(connection, cliFSPReader, errorReporter);\r
+            adWorker = new AdvertisementWorker(connection, cliFSPReader, errorReporter);\r
+            segmentWorker = new SegmentWorker(connection, cliFSPReader, errorReporter);\r
         }\r
 \r
         public List<MamResultWrapper> GetBroadcasts(string strParam, DateTime? from, DateTime? to, bool missingCopia) {\r
index 17542d93974dcf56799a529b03016158c3728144..9c5d76a0dcfd1f1e86329550f9166bb56508da5c 100644 (file)
@@ -12,5 +12,6 @@ namespace TrafficClient
         public string UserName { get; set; }\r
         public string Password { get; set; }\r
         public int Timeout;\r
+        public TrafficErrorReporterDelegate ErrorReporter { get; set; }\r
     }\r
 }\r
index 54392a40b2dd75a8d40a5253cd957cb6027a3e39..a5035585a11a167d70a41d433aa8cd3924c1fc6e 100644 (file)
@@ -8,11 +8,13 @@ using System.Collections.Generic;
 namespace TrafficClient {\r
     public delegate void OnSelectedIDChanged(string ID, int variantID);\r
     public delegate void ClearCheckBox();\r
-\r
+    public delegate void TrafficErrorReporterDelegate(DateTime time, String message, Color color);\r
     public partial class TrafficIDSelector : UserControl {\r
         public TrafficAPI trafficAPI { get; private set; }\r
         public OnSelectedIDChanged IDChangedEvent { get; set; }\r
         public ClearCheckBox clearCheckBox { get; set; }\r
+\r
+        public TrafficErrorReporterDelegate ErrorReporter { get; set; }\r
         public TrafficIDSelector() {\r
             InitializeComponent();\r
             InitializeTexts();\r
@@ -72,7 +74,7 @@ namespace TrafficClient {
 \r
         public TrafficConfiguration Configuration {\r
             set {\r
-                trafficAPI = new TrafficAPI(value.Address.OriginalString, value.UserName, value.Password, value.Timeout);\r
+                trafficAPI = new TrafficAPI(value.Address.OriginalString, value.UserName, value.Password, value.Timeout, value.ErrorReporter);\r
             }\r
         }\r
 \r
index 2ddf07202fc3a4cd4b19b1ee1057bc40d809b442..77db905c57efe9a8bd9a55075c87dc9b5e02b9f9 100644 (file)
@@ -9,7 +9,8 @@ namespace TrafficClient.Workers {
 \r
         private static Logger logger = LogManager.GetCurrentClassLogger();\r
 \r
-        public AdvertisementWorker(SqlConnection connection, CliFSPReader cliFSPReader) : base(connection, cliFSPReader) {\r
+        public AdvertisementWorker(SqlConnection connection, CliFSPReader cliFSPReader, TrafficErrorReporterDelegate errorReporter) :\r
+            base(connection, cliFSPReader, errorReporter) {\r
         }\r
 \r
         public List<MamResultWrapper> GetAdvertisements(string strParam) {\r
@@ -29,7 +30,7 @@ namespace TrafficClient.Workers {
             }\r
             catch (Exception e) {\r
                 logger.Error(e.Message);\r
-                throw e;\r
+                errorReporter?.Invoke(DateTime.Now, String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
             }\r
             finally {\r
                 connection.Close();\r
@@ -81,7 +82,7 @@ namespace TrafficClient.Workers {
             }\r
             catch (Exception e) {\r
                 logger.Error(e.Message);\r
-                throw e;\r
+                errorReporter?.Invoke(DateTime.Now, String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
             }\r
             finally {\r
                 connection.Close();\r
index 70097c6c374d8416f3305686b7a22a0ca0eedef1..87684d2b909f9792b6eb88c2ca2e269ed574fd90 100644 (file)
@@ -10,8 +10,8 @@ namespace TrafficClient.Workers {
 \r
         private static Logger logger = LogManager.GetCurrentClassLogger();\r
 \r
-        public BroadcastWorker(SqlConnection connection, CliFSPReader cliFSPReader) \r
-            : base(connection, cliFSPReader){\r
+        public BroadcastWorker(SqlConnection connection, CliFSPReader cliFSPReader, TrafficErrorReporterDelegate errorReporter\r
+            : base(connection, cliFSPReader, errorReporter){\r
         }\r
 \r
         public List<MamResultWrapper> GetBroadcasts(string strParam, DateTime? from, DateTime? to, bool missingCopia) {\r
@@ -43,7 +43,7 @@ namespace TrafficClient.Workers {
             }\r
             catch (Exception e) {\r
                 logger.Error(e.Message);\r
-                throw e;\r
+                errorReporter?.Invoke(DateTime.Now, String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
             }\r
             finally {\r
                 connection.Close();\r
@@ -100,7 +100,7 @@ namespace TrafficClient.Workers {
             }\r
             catch (Exception e) {\r
                 logger.Error(e.Message);\r
-                throw e;\r
+                errorReporter?.Invoke(DateTime.Now, String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
             }\r
             finally {\r
                 connection.Close();\r
@@ -137,7 +137,7 @@ namespace TrafficClient.Workers {
             }\r
             catch (Exception e) {\r
                 logger.Error(e.Message);\r
-                throw e;\r
+                errorReporter?.Invoke(DateTime.Now, String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
             }\r
             finally {\r
                 connection.Close();\r
index ec61c8f004b463eb1255c3b81131496875863801..4c2aea5894ebb5854ff4ec8cdbb29e2f55e8f373 100644 (file)
@@ -9,8 +9,8 @@ namespace TrafficClient.Workers {
 \r
         private static Logger logger = LogManager.GetCurrentClassLogger();\r
 \r
-        public PromotionalWorker(SqlConnection connection, CliFSPReader cliFSPReader)\r
-            : base(connection, cliFSPReader) {\r
+        public PromotionalWorker(SqlConnection connection, CliFSPReader cliFSPReader, TrafficErrorReporterDelegate errorReporter)\r
+            : base(connection, cliFSPReader, errorReporter) {\r
         }\r
 \r
         public List<MamResultWrapper> GetPromotionals(string strParam) {\r
@@ -30,7 +30,7 @@ namespace TrafficClient.Workers {
             }\r
             catch (Exception e) {\r
                 logger.Error(e.Message);\r
-                throw e;\r
+                errorReporter?.Invoke(DateTime.Now, String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
             }\r
             finally {\r
                 connection.Close();\r
@@ -68,7 +68,7 @@ namespace TrafficClient.Workers {
                 }\r
             }\r
             catch (Exception e) {\r
-                logger.Error(e.Message);\r
+                errorReporter?.Invoke(DateTime.Now, String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
             }\r
             return result;\r
         }\r
@@ -90,7 +90,7 @@ namespace TrafficClient.Workers {
             }\r
             catch (Exception e) {\r
                 logger.Error(e.Message);\r
-                throw e;\r
+                errorReporter?.Invoke(DateTime.Now, String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
             }\r
             finally {\r
                 connection.Close();\r
index 16514d534b11702241ca7469539bc59554cfd94c..08167d7c2caa52386ad10b0a4a261c2c9858824c 100644 (file)
@@ -10,7 +10,8 @@ namespace TrafficClient.Workers {
 \r
         private static Logger logger = LogManager.GetCurrentClassLogger();\r
 \r
-        public SegmentWorker(SqlConnection connection, CliFSPReader cliFSPReader) : base(connection, cliFSPReader) {\r
+        public SegmentWorker(SqlConnection connection, CliFSPReader cliFSPReader, TrafficErrorReporterDelegate errorReporter) : \r
+            base(connection, cliFSPReader, errorReporter) {\r
         }\r
 \r
         public List<Segment> GetSegments(int itemID) {\r
@@ -34,7 +35,7 @@ namespace TrafficClient.Workers {
             }\r
             catch (Exception e) {\r
                 logger.Error(e.Message);\r
-                throw e;\r
+                errorReporter?.Invoke(DateTime.Now, String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
             }\r
             finally {\r
                 connection.Close();\r
@@ -72,7 +73,7 @@ namespace TrafficClient.Workers {
             }\r
             catch (Exception e) {\r
                 logger.Error(e.Message);\r
-                throw e;\r
+                errorReporter?.Invoke(DateTime.Now, String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
             }\r
             finally {\r
                 connection.Close();\r
@@ -94,7 +95,7 @@ namespace TrafficClient.Workers {
             }\r
             catch (Exception e) {\r
                 logger.Error(e.Message);\r
-                throw e;\r
+                errorReporter?.Invoke(DateTime.Now, String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
             }\r
             finally {\r
                 connection.Close();\r
@@ -123,7 +124,7 @@ namespace TrafficClient.Workers {
             }\r
             catch (Exception e) {\r
                 logger.Error(e.Message);\r
-                throw e;\r
+                errorReporter?.Invoke(DateTime.Now, String.Format("[Traffic] {0}", e.Message), System.Drawing.Color.Red);\r
             }\r
             finally {\r
                 connection.Close();\r
index 793b156f56d827e67634a3f171712d3244c99c3f..b127b29f7078d9d410297e563417a6f97965bea8 100644 (file)
@@ -6,12 +6,14 @@ using System.Data.SqlClient;
 namespace TrafficClient.Workers {\r
     public class TrafficWorker {\r
 \r
+        protected TrafficErrorReporterDelegate errorReporter;\r
         protected CliFSPReader cliFSPReader;\r
         protected SqlConnection connection;\r
 \r
-        public TrafficWorker(SqlConnection connection, CliFSPReader cliFSPReader) {\r
+        public TrafficWorker(SqlConnection connection, CliFSPReader cliFSPReader, TrafficErrorReporterDelegate errorReporter) {\r
             this.connection = connection;\r
             this.cliFSPReader = cliFSPReader;\r
+            this.errorReporter = errorReporter;\r
         }\r
         protected void TryConnect() {\r
             if (connection.State != ConnectionState.Open) {\r