git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Tue, 28 Nov 2017 12:49:30 +0000 (12:49 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Tue, 28 Nov 2017 12:49:30 +0000 (12:49 +0000)
23 files changed:
client/Maestro/Configuration/configuration-archive.json [new file with mode: 0644]
client/Maestro/Configuration/configuration-nexio-ingest.json
client/Maestro/Configuration/configuration-nle.json
client/Maestro/Configuration/configuration-playout-ingest.json
client/Maestro/Configuration/configuration-studio.json
client/Maestro/Maestro.csproj
client/Maestro/MaestroForm.Designer.cs
client/Maestro/MaestroForm.Metadata.cs
client/Maestro/MaestroForm.Target.cs
client/Maestro/MaestroForm.cs
client/Maestro/MaestroForm.resx
client/Maestro/Program.cs
client/Maestro/Properties/AssemblyInfo.cs
client/Maestro/Sources/FileSystemSource.cs
client/MaestroShared/Commons/ObjectExtensions.cs
client/MaestroShared/Commons/PatternNameMaker.cs [moved from client/MaestroShared/Commons/PatterNameMaker.cs with 73% similarity]
client/MaestroShared/Configuration/ConfigurationInfo.cs
client/MaestroShared/MaestroShared.csproj
client/MaestroShared/Targets/FTPTargetProcessor.cs
client/MaestroShared/Targets/FXPTargetProcessor.cs
client/MaestroShared/Targets/TargetProcessor.cs
client/MaestroShared/Targets/UNCTargetProcessor.cs
client/OctopusClient/OctopusIDSelector.cs

diff --git a/client/Maestro/Configuration/configuration-archive.json b/client/Maestro/Configuration/configuration-archive.json
new file mode 100644 (file)
index 0000000..bf96141
--- /dev/null
@@ -0,0 +1,66 @@
+{\r
+  "title": "Archiválás",\r
+  "active": true,\r
+  "startInTray": false,\r
+  "enableCustomMetadataId": true,\r
+  "player": {\r
+    "enabled": true,\r
+    "autoStart": false,\r
+    "segmentEditor": true\r
+  },\r
+  "source": {\r
+    "$type": "UNCSource",\r
+    "filter": "avi,wav,mxf",\r
+    "local": {\r
+      "address": "file://10.10.1.100/BRAAVOS/TOROKOR",\r
+      "userName": "mediacube",\r
+      "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+      "timeout": 1000\r
+    }\r
+  },\r
+  "metadatas": [\r
+    {\r
+      "$type": "OctopusMetadata",\r
+      "server": {\r
+        "address": "http://10.10.1.27/services/rest/octopus/",\r
+        "timeout": 1000\r
+      }\r
+    },\r
+    {\r
+      "$type": "TrafficMetadata",\r
+      "server": {\r
+        "address": "Data Source=10.10.1.45\\sql16;Initial Catalog=PA_Echo;Persist Security Info=True;",\r
+        "userName": "MAM",\r
+        "password": "7RKZYBzumKjL40SJwuwiFCvX57xuCN8zay6OttUm2wbrgImyYZBHyZTUUYrXX31Ge2Uwew07HYsqh2uzdJeDBDwcVntxaHg3nIpv9Dyq/odVoiC4tUF/K+lgvKWANcrZ",\r
+        "timeout": 1000\r
+      }\r
+    },\r
+    {\r
+      "$type": "MediaCubeMetadata",\r
+      "metadataTitleFormat": "%SOURCENAME%",\r
+      "metadataIDFormat": "%SOURCESTARTID%",\r
+      "server": {\r
+        "address": "http://10.10.1.27/services/rest/jobengine/",\r
+        "timeout": 1000\r
+      }\r
+    }\r
+  ],\r
+  "targets": [\r
+    {\r
+      "label": "Archiválás",\r
+      "processor": "UNCTargetProcessor",\r
+      "outputFormat": "%SOURCENAME%",\r
+      "tag": "Archiválás",\r
+      "saveArchiveMetadata": true,\r
+      "disableFileVersioning": true,\r
+      "killDateDays": 1,\r
+      "remote": {\r
+        "address": "file://10.10.1.100/BRAAVOS/ARCHIVE",\r
+        "userName": "mediacube",\r
+        "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+        "timeout": 1000\r
+      }\r
+    }\r
+\r
+  ]\r
+}\r
index 829e0542082fbb7e0b14e3c8d9c47ca12b74d1fe..2686a69c9758d4f114974518a4c94155f4573ad4 100644 (file)
@@ -45,7 +45,7 @@
   "targets": [\r
     {\r
       "label": "Octopus mappába küldés",\r
-      "processor": "FTPTargetProcessor",\r
+      "processor": "FXPTargetProcessor",\r
       "outputFormat": "%ID%-%SOURCENAME%",\r
       "tag": "Betöltés",\r
       "subFolderFormat": "%IDROOT%",\r
@@ -60,7 +60,7 @@
     },\r
     {\r
       "label": "Traffic mappába küldés",\r
-      "processor": "FTPTargetProcessor",\r
+      "processor": "FXPTargetProcessor",\r
       "outputFormat": "%ID%-%SOURCENAME%",\r
       "tag": "Betöltés",\r
       "subFolderFormat": "%IDROOT%",\r
@@ -93,7 +93,7 @@
     },\r
     {\r
       "label": "Lebonyba küldés",\r
-      "processor": "FTPTargetProcessor",\r
+      "processor": "FXPTargetProcessor",\r
       "outputFormat": "%ID%",\r
       "tag": "Betöltés",\r
       "killDateDays": 7,\r
     },\r
     {\r
       "label": "Archiválás",\r
-      "processor": "FTPTargetProcessor",\r
+      "processor": "FXPTargetProcessor",\r
       "outputFormat": "%ID%",\r
       "tag": "Archiválás",\r
       "saveArchiveMetadata": true,\r
index 5f050d3d1ea06a665e0d6836d1ac4a9a32db53cf..0e3d822f648a18f0a8825e8a707ffd1495777949 100644 (file)
@@ -1,6 +1,6 @@
 {\r
   "title": "NLE",\r
-  "active": true,\r
+  "active": false,\r
   "startInTray": false,\r
   "enableCustomMetadataId": true,\r
   "defaultWindowColor": "#E1BEE7",\r
index aa818ef78d9a56e12fce43f666f94ee12d06375c..ddd13040318565787876b4f4db0d6b43d9a535d9 100644 (file)
@@ -1,6 +1,6 @@
 {\r
   "title": "Lebony betöltő",\r
-  "active": true,\r
+  "active": false,\r
   "startInTray": false,\r
   "enableCustomMetadataId": true,\r
   "player": {\r
index d1b924fef166ff72456eec014eed2d9a9f10e1be..59b522ee8c2ba1059fae6b62f4e409101c90ab14 100644 (file)
@@ -1,6 +1,6 @@
 {\r
   "title": "Stúdió",\r
-  "active": true,\r
+  "active": false,\r
   "startInTray": false,\r
   "enableCustomMetadataId": true,\r
   "filter": "avi",\r
index 3d557d7284fdac89d025708faa172853f578a04d..0483df6f97c173f250793defddab9b074a0e8546 100644 (file)
     <Compile Include="MaestroForm.Source.cs">\r
       <SubType>Form</SubType>\r
     </Compile>\r
+    <None Include="Configuration\configuration-archive.json">\r
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
+    </None>\r
     <None Include="Configuration\global.json">\r
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
     </None>\r
index 2c368a5f5d586bff85f9294afbb2dc1d80a9a751..a39221e236ec559b54e1d1919fcd22d7e2b38c13 100644 (file)
@@ -32,11 +32,11 @@ namespace Maestro {
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MaestroForm));\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 dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();\r
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();\r
             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();\r
             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();\r
             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();\r
-            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();\r
-            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();\r
             this.groupSource = new System.Windows.Forms.GroupBox();\r
             this.dgSource = new System.Windows.Forms.DataGridView();\r
             this.bindingSource = new System.Windows.Forms.BindingSource(this.components);\r
@@ -72,16 +72,10 @@ namespace Maestro {
             this.btnExecute = new System.Windows.Forms.Button();\r
             this.scMain = new System.Windows.Forms.SplitContainer();\r
             this.groupActions = new System.Windows.Forms.GroupBox();\r
+            this.chkAutoScroll = new System.Windows.Forms.CheckBox();\r
             this.tabSystem = new System.Windows.Forms.TabControl();\r
             this.tabPage1 = new System.Windows.Forms.TabPage();\r
             this.dgJobs = new System.Windows.Forms.DataGridView();\r
-            this.bindingSourceJobs = new System.Windows.Forms.BindingSource(this.components);\r
-            this.tabPage2 = new System.Windows.Forms.TabPage();\r
-            this.dgMessages = new System.Windows.Forms.DataGridView();\r
-            this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
-            this.dataGridViewTextBoxColumn2 = 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.columnLabel = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
             this.columnID = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
             this.Progress = new Maestro.Commons.DataGridViewProgressColumn();\r
@@ -92,6 +86,13 @@ namespace Maestro {
             this.columnOutput = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
             this.columnKillDate = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
             this.Message = 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.dgMessages = new System.Windows.Forms.DataGridView();\r
+            this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+            this.dataGridViewTextBoxColumn2 = 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.dgSource)).BeginInit();\r
             ((System.ComponentModel.ISupportInitialize)(this.bindingSource)).BeginInit();\r
@@ -220,7 +221,8 @@ namespace Maestro {
             // \r
             this.ilFolders.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilFolders.ImageStream")));\r
             this.ilFolders.TransparentColor = System.Drawing.Color.Transparent;\r
-            this.ilFolders.Images.SetKeyName(0, "ic_folder_open_black_24dp_1x.jpg");\r
+            this.ilFolders.Images.SetKeyName(0, "ic_folder_black_24dp_1x.png");\r
+            this.ilFolders.Images.SetKeyName(1, "ic_folder_open_black_24dp_1x.png");\r
             // \r
             // pSourceFilter\r
             // \r
@@ -650,6 +652,7 @@ namespace Maestro {
             // groupActions\r
             // \r
             this.groupActions.BackColor = System.Drawing.Color.Transparent;\r
+            this.groupActions.Controls.Add(this.chkAutoScroll);\r
             this.groupActions.Controls.Add(this.tabSystem);\r
             this.groupActions.Dock = System.Windows.Forms.DockStyle.Fill;\r
             this.groupActions.Location = new System.Drawing.Point(0, 0);\r
@@ -662,6 +665,20 @@ namespace Maestro {
             this.groupActions.Enter += new System.EventHandler(this.groupBox_Enter);\r
             this.groupActions.Leave += new System.EventHandler(this.groupBox_Leave);\r
             // \r
+            // chkAutoScroll\r
+            // \r
+            this.chkAutoScroll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));\r
+            this.chkAutoScroll.AutoSize = true;\r
+            this.chkAutoScroll.Checked = true;\r
+            this.chkAutoScroll.CheckState = System.Windows.Forms.CheckState.Checked;\r
+            this.chkAutoScroll.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.chkAutoScroll.Location = new System.Drawing.Point(944, 24);\r
+            this.chkAutoScroll.Name = "chkAutoScroll";\r
+            this.chkAutoScroll.Size = new System.Drawing.Size(69, 19);\r
+            this.chkAutoScroll.TabIndex = 2;\r
+            this.chkAutoScroll.Text = "Követés";\r
+            this.chkAutoScroll.UseVisualStyleBackColor = true;\r
+            // \r
             // tabSystem\r
             // \r
             this.tabSystem.Controls.Add(this.tabPage1);\r
@@ -734,80 +751,6 @@ namespace Maestro {
             this.dgJobs.CellPainting += new System.Windows.Forms.DataGridViewCellPaintingEventHandler(this.OnJobsCellPainting);\r
             this.dgJobs.MouseClick += new System.Windows.Forms.MouseEventHandler(this.dataGridJobs_MouseClick);\r
             // \r
-            // tabPage2\r
-            // \r
-            this.tabPage2.Controls.Add(this.dgMessages);\r
-            this.tabPage2.Location = new System.Drawing.Point(4, 24);\r
-            this.tabPage2.Name = "tabPage2";\r
-            this.tabPage2.Padding = new System.Windows.Forms.Padding(3);\r
-            this.tabPage2.Size = new System.Drawing.Size(994, 96);\r
-            this.tabPage2.TabIndex = 1;\r
-            this.tabPage2.Text = global::Maestro.StringResources.UZENETEK;\r
-            this.tabPage2.UseVisualStyleBackColor = true;\r
-            // \r
-            // dgMessages\r
-            // \r
-            this.dgMessages.AllowUserToAddRows = false;\r
-            this.dgMessages.AllowUserToResizeRows = false;\r
-            this.dgMessages.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCells;\r
-            this.dgMessages.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.DisplayedCells;\r
-            this.dgMessages.BackgroundColor = System.Drawing.Color.White;\r
-            this.dgMessages.BorderStyle = System.Windows.Forms.BorderStyle.None;\r
-            this.dgMessages.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;\r
-            this.dgMessages.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {\r
-            this.dataGridViewTextBoxColumn1,\r
-            this.dataGridViewTextBoxColumn2});\r
-            dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;\r
-            dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.Window;\r
-            dataGridViewCellStyle9.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
-            dataGridViewCellStyle9.ForeColor = System.Drawing.Color.Red;\r
-            dataGridViewCellStyle9.NullValue = null;\r
-            dataGridViewCellStyle9.SelectionBackColor = System.Drawing.Color.Gainsboro;\r
-            dataGridViewCellStyle9.SelectionForeColor = System.Drawing.Color.Red;\r
-            dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.False;\r
-            this.dgMessages.DefaultCellStyle = dataGridViewCellStyle9;\r
-            this.dgMessages.Dock = System.Windows.Forms.DockStyle.Fill;\r
-            this.dgMessages.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;\r
-            this.dgMessages.EnableHeadersVisualStyles = false;\r
-            this.dgMessages.GridColor = System.Drawing.Color.White;\r
-            this.dgMessages.Location = new System.Drawing.Point(3, 3);\r
-            this.dgMessages.Name = "dgMessages";\r
-            this.dgMessages.ReadOnly = true;\r
-            this.dgMessages.RowHeadersVisible = false;\r
-            dataGridViewCellStyle10.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
-            this.dgMessages.RowsDefaultCellStyle = dataGridViewCellStyle10;\r
-            this.dgMessages.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
-            this.dgMessages.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;\r
-            this.dgMessages.Size = new System.Drawing.Size(988, 90);\r
-            this.dgMessages.TabIndex = 1;\r
-            // \r
-            // dataGridViewTextBoxColumn1\r
-            // \r
-            this.dataGridViewTextBoxColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
-            this.dataGridViewTextBoxColumn1.DataPropertyName = "Time";\r
-            this.dataGridViewTextBoxColumn1.HeaderText = "Időpont";\r
-            this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1";\r
-            this.dataGridViewTextBoxColumn1.ReadOnly = true;\r
-            this.dataGridViewTextBoxColumn1.Width = 73;\r
-            // \r
-            // dataGridViewTextBoxColumn2\r
-            // \r
-            this.dataGridViewTextBoxColumn2.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;\r
-            this.dataGridViewTextBoxColumn2.DataPropertyName = "Message";\r
-            dataGridViewCellStyle8.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
-            this.dataGridViewTextBoxColumn2.DefaultCellStyle = dataGridViewCellStyle8;\r
-            this.dataGridViewTextBoxColumn2.HeaderText = "Üzenet";\r
-            this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2";\r
-            this.dataGridViewTextBoxColumn2.ReadOnly = true;\r
-            // \r
-            // systemMessageBindingSource\r
-            // \r
-            this.systemMessageBindingSource.DataSource = typeof(Maestro.SystemMessage);\r
-            // \r
-            // metadataInfoBindingSource\r
-            // \r
-            this.metadataInfoBindingSource.DataSource = typeof(Maestro.Metadata.MetadataInfo);\r
-            // \r
             // columnLabel\r
             // \r
             this.columnLabel.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
@@ -886,11 +829,86 @@ namespace Maestro {
             // \r
             // Message\r
             // \r
+            this.Message.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
             this.Message.DataPropertyName = "Message";\r
             this.Message.HeaderText = "Üzenet";\r
             this.Message.Name = "Message";\r
             this.Message.Width = 71;\r
             // \r
+            // tabPage2\r
+            // \r
+            this.tabPage2.Controls.Add(this.dgMessages);\r
+            this.tabPage2.Location = new System.Drawing.Point(4, 24);\r
+            this.tabPage2.Name = "tabPage2";\r
+            this.tabPage2.Padding = new System.Windows.Forms.Padding(3);\r
+            this.tabPage2.Size = new System.Drawing.Size(994, 96);\r
+            this.tabPage2.TabIndex = 1;\r
+            this.tabPage2.Text = global::Maestro.StringResources.UZENETEK;\r
+            this.tabPage2.UseVisualStyleBackColor = true;\r
+            // \r
+            // dgMessages\r
+            // \r
+            this.dgMessages.AllowUserToAddRows = false;\r
+            this.dgMessages.AllowUserToResizeRows = false;\r
+            this.dgMessages.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCells;\r
+            this.dgMessages.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.DisplayedCells;\r
+            this.dgMessages.BackgroundColor = System.Drawing.Color.White;\r
+            this.dgMessages.BorderStyle = System.Windows.Forms.BorderStyle.None;\r
+            this.dgMessages.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;\r
+            this.dgMessages.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {\r
+            this.dataGridViewTextBoxColumn1,\r
+            this.dataGridViewTextBoxColumn2});\r
+            dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;\r
+            dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.Window;\r
+            dataGridViewCellStyle9.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            dataGridViewCellStyle9.ForeColor = System.Drawing.Color.Red;\r
+            dataGridViewCellStyle9.NullValue = null;\r
+            dataGridViewCellStyle9.SelectionBackColor = System.Drawing.Color.Gainsboro;\r
+            dataGridViewCellStyle9.SelectionForeColor = System.Drawing.Color.Red;\r
+            dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.False;\r
+            this.dgMessages.DefaultCellStyle = dataGridViewCellStyle9;\r
+            this.dgMessages.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.dgMessages.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;\r
+            this.dgMessages.EnableHeadersVisualStyles = false;\r
+            this.dgMessages.GridColor = System.Drawing.Color.White;\r
+            this.dgMessages.Location = new System.Drawing.Point(3, 3);\r
+            this.dgMessages.Name = "dgMessages";\r
+            this.dgMessages.ReadOnly = true;\r
+            this.dgMessages.RowHeadersVisible = false;\r
+            dataGridViewCellStyle10.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.dgMessages.RowsDefaultCellStyle = dataGridViewCellStyle10;\r
+            this.dgMessages.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.dgMessages.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;\r
+            this.dgMessages.Size = new System.Drawing.Size(988, 90);\r
+            this.dgMessages.TabIndex = 1;\r
+            // \r
+            // dataGridViewTextBoxColumn1\r
+            // \r
+            this.dataGridViewTextBoxColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+            this.dataGridViewTextBoxColumn1.DataPropertyName = "Time";\r
+            this.dataGridViewTextBoxColumn1.HeaderText = "Időpont";\r
+            this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1";\r
+            this.dataGridViewTextBoxColumn1.ReadOnly = true;\r
+            this.dataGridViewTextBoxColumn1.Width = 73;\r
+            // \r
+            // dataGridViewTextBoxColumn2\r
+            // \r
+            this.dataGridViewTextBoxColumn2.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;\r
+            this.dataGridViewTextBoxColumn2.DataPropertyName = "Message";\r
+            dataGridViewCellStyle8.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.dataGridViewTextBoxColumn2.DefaultCellStyle = dataGridViewCellStyle8;\r
+            this.dataGridViewTextBoxColumn2.HeaderText = "Üzenet";\r
+            this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2";\r
+            this.dataGridViewTextBoxColumn2.ReadOnly = true;\r
+            // \r
+            // systemMessageBindingSource\r
+            // \r
+            this.systemMessageBindingSource.DataSource = typeof(Maestro.SystemMessage);\r
+            // \r
+            // metadataInfoBindingSource\r
+            // \r
+            this.metadataInfoBindingSource.DataSource = typeof(Maestro.Metadata.MetadataInfo);\r
+            // \r
             // MaestroForm\r
             // \r
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
@@ -940,6 +958,7 @@ namespace Maestro {
             ((System.ComponentModel.ISupportInitialize)(this.scMain)).EndInit();\r
             this.scMain.ResumeLayout(false);\r
             this.groupActions.ResumeLayout(false);\r
+            this.groupActions.PerformLayout();\r
             this.tabSystem.ResumeLayout(false);\r
             this.tabPage1.ResumeLayout(false);\r
             ((System.ComponentModel.ISupportInitialize)(this.dgJobs)).EndInit();\r
@@ -999,6 +1018,7 @@ namespace Maestro {
         private System.Windows.Forms.ToolStripButton btnShowFolders;\r
         private System.Windows.Forms.TreeView treeFolders;\r
         private System.Windows.Forms.ImageList ilFolders;\r
+        private System.Windows.Forms.CheckBox chkAutoScroll;\r
         private System.Windows.Forms.DataGridViewTextBoxColumn columnLabel;\r
         private System.Windows.Forms.DataGridViewTextBoxColumn columnID;\r
         private Commons.DataGridViewProgressColumn Progress;\r
index 7a0221400aa8aa9e02d9817a8166ea50e7ad1d98..caf99e13f91c8d1d3e9c74b3fd33f418026d48a0 100644 (file)
@@ -112,7 +112,10 @@ namespace Maestro {
 \r
             if (result == DialogResult.OK && String.IsNullOrEmpty(textSelectedMetadata.Text)) {\r
                 ArchiveMetadata saved = archiveMetadata;\r
-                textSelectedMetadata.Text = archiveMetadata.itemHouseId;\r
+                if (String.IsNullOrEmpty(textSelectedMetadata.Text))\r
+                    textSelectedMetadata.Text = archiveMetadata.mediaHouseId;\r
+                else\r
+                    textSelectedMetadata.Text = archiveMetadata.itemHouseId;\r
                 archiveMetadata = saved;\r
                 SelectedMetadata.MetadataText = archiveMetadata.itemTitle;\r
             }\r
@@ -238,10 +241,12 @@ namespace Maestro {
             if (masterId == null)\r
                 return null;\r
             ArchiveMetadata result = new ArchiveMetadata();\r
-            result.itemHouseId = ARCHIVEID_PREFIX + masterId.id.ToString();\r
-            result.itemTitle = result.itemHouseId;\r
-            result.mediaHouseId = result.itemHouseId;\r
-            result.mediaTitle = result.mediaHouseId;\r
+            MediaCubeMetadata metadata = Configuration.GetMetadataProvider<MediaCubeMetadata>();\r
+            string mcID = ARCHIVEID_PREFIX + masterId.id.ToString();\r
+            result.itemHouseId = string.IsNullOrEmpty(metadata?.MetadataIDFormat) ? mcID : metadata.MetadataIDFormat;\r
+            result.itemTitle = String.IsNullOrEmpty(metadata?.MetadataTitleFormat) ? result.itemHouseId : metadata.MetadataTitleFormat;\r
+            result.mediaHouseId = mcID;\r
+            result.mediaTitle = result.itemTitle;\r
             return result;\r
         }\r
 \r
index 665014c1e845ed65c6a520ee62ed0b1952075091..af9fb32b61acf029aa7c23a51b1983afee366eda 100644 (file)
@@ -8,6 +8,7 @@ using MaestroShared.Metadata;
 using MaestroShared.Targets;\r
 using MaestroShared.Target;\r
 using System.ComponentModel;\r
+using MaestroShared.Commons;\r
 \r
 namespace Maestro {\r
 \r
@@ -146,7 +147,7 @@ namespace Maestro {
         private TargetProcessorParameter CreateProcessorParameter(Target target, ISourceItem sourceItem) {\r
             FileSystemSource source = bindingSource.DataSource as FileSystemSource;\r
 \r
-            return new TargetProcessorParameter() {\r
+            TargetProcessorParameter result = new TargetProcessorParameter() {\r
                 SourcePathOverride = (source == null || source.Path.Equals(Configuration.Source.Local.Address.LocalPath)) ? null : source.Path,\r
                 MediaCubeApi = mediaCubeApi,\r
                 SourceConfig = Configuration.Source,\r
@@ -161,6 +162,23 @@ namespace Maestro {
                 UserName = TrayApplicationContext.UserName,\r
                 MessageBus = MessageBus\r
             };\r
+\r
+            if (SelectedMetadata.Kind == MetadataType.MediaCube) {\r
+                if (true.Equals(result.ArchiveMetadata?.itemTitle?.Contains("%"))) {\r
+                    string title = PatternNameMaker.Get(result.ArchiveMetadata.itemTitle, result.ID, result.InputFileName, result.MetadataText);\r
+                    result.ArchiveMetadata.itemTitle = title;\r
+                    result.ArchiveMetadata.mediaTitle = title;\r
+                }\r
+                if (true.Equals(result.ArchiveMetadata?.itemHouseId?.Contains("%"))) {\r
+                    string id = PatternNameMaker.Get(result.ArchiveMetadata.itemHouseId, result.ID, result.InputFileName, result.MetadataText);\r
+                    if (String.IsNullOrEmpty(id))\r
+                        result.ArchiveMetadata.itemHouseId = result.ArchiveMetadata.mediaHouseId;\r
+                    else\r
+                        result.ArchiveMetadata.itemHouseId = id;\r
+                }\r
+                //result.ArchiveMetadata.mediaHouseId = id;\r
+            }\r
+            return result;\r
         }\r
 \r
         private List<CheckBox> HandleCheckBoxReferences(string[] reference, bool check) {\r
@@ -230,8 +248,8 @@ namespace Maestro {
             }\r
 \r
             ClearSelectedProcessors();\r
-            if (processorWorker == null)\r
-                CreateJobsQueueWorker();\r
+            if (processorWorkers == null)\r
+                CreateJobsQueueWorkers();\r
             ActivateTab(0);\r
             SelectedSource = null;\r
             ClearSelectedMetadata();\r
index 9c721752f3c1d70903adb31aab862fcfcc92ab8e..7d1b3748a4f91fb4d996bc74d14ee1816821ecb9 100644 (file)
@@ -7,6 +7,7 @@ using System.ComponentModel;
 using System.Drawing;\r
 using System.Windows.Forms;\r
 using System.Threading;\r
+using System.Linq;\r
 using TrafficClient;\r
 using OctopusClient;\r
 using System.IO;\r
@@ -27,7 +28,7 @@ namespace Maestro {
         private Dictionary<CheckBox, List<ITargetProcessor>> currentProcessors = new Dictionary<CheckBox, List<ITargetProcessor>>();\r
         private BindingList<ITargetProcessor> jobs = new BindingList<ITargetProcessor>();\r
         private ConcurrentQueue<ITargetProcessor> jobsQueue = new ConcurrentQueue<ITargetProcessor>();\r
-        private BackgroundWorker processorWorker;\r
+        private BackgroundWorker[] processorWorkers;\r
         public IMessageBus MessageBus { get; set; }\r
         private IMessageBus errorMessageBus = new MessageBus();\r
         private ToolTip formTooltip = new ToolTip();\r
@@ -132,30 +133,40 @@ namespace Maestro {
             e.Cancel = true;\r
         }\r
 \r
-        private void CreateJobsQueueWorker() {\r
-            processorWorker = new BackgroundWorker() {\r
+        private void CreateJobsQueueWorkers() {\r
+            processorWorkers = new BackgroundWorker[1];\r
+            processorWorkers[0] = CreateWorker();\r
+            //processorWorkers[1] = CreateWorker();\r
+        }\r
+\r
+        private BackgroundWorker CreateWorker() {\r
+            BackgroundWorker processorWorker = new BackgroundWorker() {\r
                 WorkerSupportsCancellation = true\r
             };\r
-            processorWorker.DoWork += (s, e) => {\r
-                while (!e.Cancel) {\r
-                    ITargetProcessor job;\r
-                    if (jobsQueue.TryDequeue(out job)) {\r
-                        if (TargetProcessor.REVOKED.Equals(job.Status))\r
-                            continue;\r
-                        (this).SafeCall(() => {\r
-                            int position = jobs.IndexOf(job);\r
-                            if (position == -1)\r
-                                return;\r
-                            bindingSourceJobs.Position = position;\r
+            processorWorker.DoWork += ProcessorWorker_DoWork;\r
+            processorWorker.RunWorkerAsync();\r
+            return processorWorker;\r
+        }\r
+\r
+        private void ProcessorWorker_DoWork(object sender, DoWorkEventArgs e) {\r
+            while (!e.Cancel) {\r
+                ITargetProcessor job;\r
+                if (jobsQueue.TryDequeue(out job)) {\r
+                    if (TargetProcessor.REVOKED.Equals(job.Status))\r
+                        continue;\r
+                    (this).SafeCall(() => {\r
+                        int position = jobs.IndexOf(job);\r
+                        if (position == -1)\r
+                            return;\r
+                        bindingSourceJobs.Position = position;\r
+                        if (chkAutoScroll.Checked)\r
                             dgJobs.FirstDisplayedScrollingRowIndex = position;\r
-                        });\r
-                        job.Execute();\r
-                    } else {\r
-                        Thread.Sleep(100);\r
-                    }\r
+                    });\r
+                    job.Execute();\r
+                } else {\r
+                    Thread.Sleep(100);\r
                 }\r
-            };\r
-            processorWorker.RunWorkerAsync();\r
+            }\r
         }\r
 \r
         private void groupBox_Enter(object sender, EventArgs e) {\r
@@ -195,8 +206,9 @@ namespace Maestro {
         }\r
 \r
         private void MaestroForm_FormClosed(object sender, FormClosedEventArgs e) {\r
-            if (processorWorker != null)\r
-                processorWorker.CancelAsync();\r
+            if (processorWorkers == null)\r
+                return;\r
+            processorWorkers.ToList().ForEach(w => w.CancelAsync());\r
         }\r
 \r
         private void dataGridJobs_CellEnter(object sender, DataGridViewCellEventArgs e) {\r
@@ -213,7 +225,8 @@ namespace Maestro {
         }\r
 \r
         private void ActivateTab(int index) {\r
-            tabSystem.SelectedIndex = index;\r
+            if (chkAutoScroll.Checked)\r
+                tabSystem.SelectedIndex = index;\r
         }\r
 \r
         private void dataGridJobs_MouseClick(object sender, MouseEventArgs e) {\r
@@ -252,6 +265,10 @@ namespace Maestro {
                     row.DefaultCellStyle.BackColor = MaestroColors.Orange200;\r
                     row.DefaultCellStyle.SelectionBackColor = MaestroColors.Orange200;\r
                     break;\r
+                case TargetProcessor.SKIPPED:\r
+                    row.DefaultCellStyle.BackColor = MaestroColors.Orange200;\r
+                    row.DefaultCellStyle.SelectionBackColor = MaestroColors.Orange200;\r
+                    break;\r
                 case TargetProcessor.READY:\r
                     row.DefaultCellStyle.BackColor = MaestroColors.BlueGray200;\r
                     row.DefaultCellStyle.SelectionBackColor = MaestroColors.BlueGray200;\r
@@ -268,6 +285,5 @@ namespace Maestro {
                 treeFolders.SelectedNode = treeFolders.GetNodeAt(e.X, e.Y);\r
         }\r
 \r
-\r
     }\r
 }\r
index 5167bfdf8cc807f99b5c14d84caba77887fd193a..660d55ac41c56175a0d9b7850268487e24498215 100644 (file)
     <value>\r
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w\r
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0\r
-        ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACU\r
-        BwAAAk1TRnQBSQFMAwEBAAGwAQABsAEAARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA\r
-        AUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA\r
-        AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA\r
-        AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm\r
-        AwABmQMAAcwCAAEzAwACMwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZ\r
-        AgABZgHMAgABZgH/AgABmQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFm\r
-        AgABzAGZAgACzAIAAcwB/wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEz\r
-        AQABmQEAATMBAAHMAQABMwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFm\r
-        AgABMwFmATMBAAEzAmYBAAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFm\r
-        AQABMwKZAQABMwGZAcwBAAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEA\r
-        ATMBzAH/AQABMwH/ATMBAAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFm\r
-        AQABZgEAAWYBAAGZAQABZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFm\r
-        ATMBzAEAAWYBMwH/AQACZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFm\r
-        AQABZgKZAQABZgGZAcwBAAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEA\r
-        AWYB/wIAAWYB/wEzAQABZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZ\r
-        AQABmQEAAZkBAAHMAQABmQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEz\r
-        AQABmQEzAWYBAAGZAWYBmQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/\r
-        AQABmQHMAgABmQHMATMBAAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEA\r
-        AZkBzAFmAQABmQH/AZkBAAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHM\r
-        AQABzAEAAZkBMwIAAcwCMwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFm\r
-        ATMBAAGZAmYBAAHMAWYBmQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZ\r
-        AQABzAGZAcwBAAHMAZkB/wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/\r
-        ATMBAAGZAf8BZgEAAcwB/wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHM\r
-        ATMCAAH/AjMBAAH/ATMBZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJm\r
-        AQAB/wFmAZkBAAH/AWYBzAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHM\r
-        AQAB/wGZAf8BAAH/AcwCAAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEA\r
-        AcwB/wFmAQAC/wGZAQAC/wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEA\r
-        ASEBAAGlAQADXwEAA3cBAAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7\r
-        Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/8BABD/MAAQ/zAAAf8B8wzv\r
-        AfMB/zAAAf8B7AwAAewB/zAAAf8B6gEPChIBDwHqAf8wAAH/AhIK/wISAf8wAAH/AhIK/wISAf8wAAH/\r
-        AhIK/wISAf8wAAH/AhIK/wISAf8wAAH/AhIK/wISAf8wAAH/AhIK/wISAf8wAAH/ARIBDwoSAQ8B6gH/\r
-        MAAB/wHqBQABDwUSAeoB8QH/MAAB/wH3AQ4DAAEPAe8I/zAAEP8wABD/MAABQgFNAT4HAAE+AwABKAMA\r
-        AUADAAEQAwABAQEAAQEFAAGAFwAD/4EACw==\r
+        ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAS\r
+        CAAAAk1TRnQBSQFMAgEBAgEAAdABAAHQAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo\r
+        AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA\r
+        AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5\r
+        AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA\r
+        AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm\r
+        AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM\r
+        AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA\r
+        ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz\r
+        AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ\r
+        AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM\r
+        AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA\r
+        AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA\r
+        AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ\r
+        AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/\r
+        AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA\r
+        AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm\r
+        ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ\r
+        Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz\r
+        AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA\r
+        AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM\r
+        AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM\r
+        ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM\r
+        Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA\r
+        AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM\r
+        AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ\r
+        AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz\r
+        AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm\r
+        AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw\r
+        AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/4IAAf8BBwrvAQcB9AIA\r
+        Af8BBwrvAQcB9CIAAQcMAAERAgABBwwAAREiAAHvDwAB7wsAAe8jAAHvDwAB7wsAAe8jAAHvDwAB7wsA\r
+        Ae8jAAHvDwAB7wsAAe8jAAHvDwAB7wsAAe8jAAHvDwAB7wsAAe8jAAHvDAABDgIAAe8BAArvAW0BDiIA\r
+        Ae8LAAEOAfECAAHvCwABDgHxIgAB8QEOBAAB7wkAAfEBDgQAAe/oAAFCAU0BPgcAAT4DAAEoAwABQAMA\r
+        ARADAAEBAQABAQUAAYAXAAP/AQAE/wQABP8EAAGAAQEBgAEBBAABgAEBAYABAQQAAYABAQGfAfkEAAGA\r
+        AQEBnwH5BAABgAEBAZ8B+QQAAYABAQGfAfkEAAGAAQEBnwH5BAABgAEBAZ8B+QQAAYABAQGAAQEEAAGA\r
+        AQEBgAEBBAABgAH/AYAB/wQABP8EAAT/BAAE/wQACw==\r
 </value>\r
   </data>\r
   <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />\r
index 0aa1d4f64029925414647f37f6ba01aa4435a0bf..b37bd6062c5d72184621af7b9785dfb80f867f65 100644 (file)
@@ -37,18 +37,21 @@ namespace Maestro {
             securitySettings.AddAccessRule(allowEveryoneRule);\r
             using (var mutex = new Mutex(false, mutexId, out createdNew, securitySettings)) {\r
                 var hasHandle = false;\r
+                bool enableInstance = TrayApplicationContext.HasCommandlineParameter(TrayApplicationContext.NOSINGLE);\r
                 try {\r
                     try {\r
-                        hasHandle = mutex.WaitOne(500, false);\r
-                        if (hasHandle == false)\r
-                            MessageBox.Show("A MediaCube Maestro alkalmazás már fut egy példányban.");\r
+                        if (!enableInstance) {\r
+                            hasHandle = mutex.WaitOne(500, false);\r
+                            if (hasHandle == false)\r
+                                MessageBox.Show("A MediaCube Maestro alkalmazás már fut egy példányban.");\r
+                        }\r
                     }\r
                     catch (AbandonedMutexException) {\r
                         hasHandle = true;\r
                     }\r
                 }\r
                 finally {\r
-                    if (hasHandle) {\r
+                    if (hasHandle || enableInstance) {\r
                         TrayApplicationContext context = null;\r
                         try {\r
                             Application.EnableVisualStyles();\r
@@ -62,7 +65,8 @@ namespace Maestro {
                             MessageBox.Show(new Form() { TopMost = true }, e.Message);\r
                         }\r
                         finally {\r
-                            mutex.ReleaseMutex();\r
+                            if (hasHandle)\r
+                                mutex.ReleaseMutex();\r
                             if (context != null)\r
                                 context.Stop();\r
                         }\r
@@ -82,6 +86,8 @@ namespace Maestro {
         private const string DOMAIN_QUERY_ERROR = "A bejelentkezett felhasználó domain információja nem elérhető.";\r
         private const string NOSPLASH = "nosplash";\r
         private const string NOLOGIN = "nologin";\r
+        public const string NOSINGLE = "nosingle";\r
+\r
         private static Logger logger = LogManager.GetCurrentClassLogger();\r
         private NotifyIcon trayIcon;\r
         private ConcurrentBag<MeastroFormNotifyIcon> forms = new ConcurrentBag<MeastroFormNotifyIcon>();\r
@@ -91,11 +97,11 @@ namespace Maestro {
         public static GlobalInfo GlobalConfig { get; internal set; }\r
 \r
         public TrayApplicationContext() {\r
-            //string x = Regex.Replace("xxx/yyy/1234-00_aaaANYAG/ANYAG", "[^0-9A-Za-z-._]", "*");\r
-            //Debug.WriteLine(x);\r
+            string x = Regex.Replace("1234-00_aaaANYAG", "[^0-9$']", "*");\r
+            Debug.WriteLine(x);\r
         }\r
 \r
-        private bool HasCommandlineParameter(string parameter) {\r
+        public static bool HasCommandlineParameter(string parameter) {\r
             String[] arguments = Environment.GetCommandLineArgs();\r
             return arguments.ToList().Contains(parameter);\r
         }\r
index f9d37067f1216eab467d20fc3983205edba78830..7e8c38db4f2da242eede1674f9e3f2b1ac7047eb 100644 (file)
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
 // You can specify all the values or you can default the Build and Revision Numbers\r
 // by using the '*' as shown below:\r
 // [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("2.0.5.4")]\r
-[assembly: AssemblyFileVersion("2.0.5.4")]\r
+[assembly: AssemblyVersion("2.0.5.5")]\r
+[assembly: AssemblyFileVersion("2.0.5.5")]\r
index 22408aa43f9a73cf7298729070c5b14d3e911af8..deffadca1304d14c5930ba94deeade65a21e5bfd 100644 (file)
@@ -9,6 +9,9 @@ using Maestro.Sources.Messages;
 using System.Drawing;\r
 using NLog;\r
 using MaestroShared.Commons;\r
+using System.Diagnostics;\r
+using MaestroShared.Resources;\r
+using System.Threading;\r
 \r
 namespace Maestro.Sources {\r
     public delegate void ClearAndInitialize();\r
@@ -171,8 +174,10 @@ namespace Maestro.Sources {
 \r
         private void Shutdown() {\r
             parent.SafeCall(() => Clear());\r
-            watcher.Dispose();\r
-            watcher = null;\r
+            if (watcher != null) {\r
+                watcher.Dispose();\r
+                watcher = null;\r
+            } \r
         }\r
 \r
         private void SetAcceptableExtensions(string fileExtensionFilter) {\r
@@ -207,14 +212,35 @@ namespace Maestro.Sources {
         }\r
 \r
         private void initializeList(string path) {\r
+            logger.Trace("Entry");\r
             string[] files = Directory.GetFiles(path);\r
+            logger.Trace("Got list");\r
             var fileSourceItems = files.Select(f => CreateItem(new FileInfo(f), false)).OrderByDescending(i => i.Created);\r
+            logger.Trace("Created list");\r
             try {\r
                 fileSourceItems.Where(x => x.CanHandle(acceptableExtensions)).ToList().ForEach(i => parent.SafeCall(() => Add(i)));\r
+                logger.Trace("Added async list");\r
+                //IAsyncResult invokeResult = parent.SafeCall(() =>\r
+                //    fileSourceItems.Where(x => x.CanHandle(acceptableExtensions)).ToList().ForEach(i => Add(i))\r
+                //);\r
+                //BackgroundWorker bg = new BackgroundWorker();\r
+                //bg.WorkerSupportsCancellation = true;\r
+                //bg.DoWork += (s, e) => {\r
+                //    Color origColor = parent.BackColor;\r
+                //    Color hlColor = MaestroColors.Yellow200;\r
+                //     while (!invokeResult.IsCompleted) {\r
+                //        parent.BackColor = parent.BackColor == hlColor ? origColor : hlColor;\r
+                //        Thread.Sleep(1000);\r
+                //    }\r
+                //    logger.Trace("Added list");\r
+                //};\r
+                //bg.RunWorkerAsync();\r
+\r
             }\r
             catch (Exception e) {\r
                 Shutdown();\r
             }\r
+            Debug.WriteLine("initializeList exit");\r
         }\r
 \r
         private void createWatch(string path) {\r
index 7be041038fb087a06a550a1bee919332eaf8820e..52df887f7b48ed0fa5900e5c1b2b3dfe79e6567f 100644 (file)
@@ -4,14 +4,16 @@ using System.Windows.Forms;
 namespace MaestroShared.Commons {\r
     public static class ObjectExtensions {\r
 \r
-        public static void SafeCall(this Control ctrl, Action x, bool force = false) {\r
-            if (x != null) {\r
-                if (ctrl.InvokeRequired || force) {\r
-                    ctrl.BeginInvoke(x);\r
-                } else {\r
-                    x();\r
-                }\r
-            }\r
+        public static IAsyncResult SafeCall(this Control ctrl, Action x, bool force = false) {\r
+            IAsyncResult result = null;\r
+            if (x == null)\r
+                return null;\r
+            if (ctrl.InvokeRequired || force)\r
+                result = ctrl.BeginInvoke(x);\r
+            else\r
+                x();\r
+            \r
+            return result;\r
         }\r
 \r
     }\r
similarity index 73%
rename from client/MaestroShared/Commons/PatterNameMaker.cs
rename to client/MaestroShared/Commons/PatternNameMaker.cs
index 9927cd509c55da9058f01527dc99e9ce3fca3d34..6112a07f5f728fe3a541508f821f6da1f498655e 100644 (file)
@@ -5,18 +5,21 @@ using System.Text;
 using System.Text.RegularExpressions;\r
 \r
 namespace MaestroShared.Commons {\r
-    public class PatterNameMaker {\r
+    public class PatternNameMaker {\r
         private const string NORMALIZE_TEXT_PATTERN = "[^0-9A-Za-z-._]";\r
+        private const string SOURCESTARTID_PATTERN = "[^0-9]";\r
         private const string PATTERN_TARGETNAME = "%TARGETNAME%";\r
         private const string PATTERN_ID = "%ID%";\r
         private const string PATTERN_IDROOT = "%IDROOT%";\r
         private const string PATTERN_SOURCENAME = "%SOURCENAME%";\r
+        private const string PATTERN_SOURCESTARTID = "%SOURCESTARTID%";\r
         private const string PATTERN_TIMESTAMP = "%TIMESTAMP%";\r
         private const string PATTERN_DATESTAMP = "%DATESTAMP%";\r
         private const string DATETIME_FORMAT = "yyyyMMddhhmmss";\r
         private const string PATTERN_TEXT = "%TEXT%";\r
         private const string UNDERSCORE = "_";\r
         private const string DATE_FORMAT_NODOTS = "yyyyMMdd";\r
+        private const string HYPHEN = "-";\r
 \r
         static private string Normalize(String s) {\r
             string normalizedString = s.Normalize(NormalizationForm.FormD);\r
@@ -43,8 +46,17 @@ namespace MaestroShared.Commons {
                 .Replace(PATTERN_TIMESTAMP, DateTime.Now.ToString(DATETIME_FORMAT, CultureInfo.InvariantCulture))\r
                 .Replace(PATTERN_DATESTAMP, DateTime.Now.ToString(DATE_FORMAT_NODOTS, CultureInfo.InvariantCulture));\r
 \r
-            if (!String.IsNullOrEmpty(fileName))\r
+            if (!String.IsNullOrEmpty(fileName)) {\r
                 result = result.Replace(PATTERN_SOURCENAME, Normalize(Path.GetFileNameWithoutExtension(fileName)));\r
+                string sourceStartID = Regex.Replace(fileName, SOURCESTARTID_PATTERN, HYPHEN);\r
+                if (sourceStartID.Contains(HYPHEN))\r
+                    sourceStartID = sourceStartID.Substring(0, sourceStartID.IndexOf(HYPHEN));\r
+                if (String.IsNullOrEmpty(sourceStartID))\r
+                    result = result.Replace(PATTERN_SOURCESTARTID, String.Empty);\r
+                else\r
+                    result = result.Replace(PATTERN_SOURCESTARTID, sourceStartID);\r
+\r
+            }\r
 \r
             if (!String.IsNullOrEmpty(text))\r
                 result = result.Replace(PATTERN_TEXT, Normalize(text));\r
index bb84ab4f3ecb9c5da9d9354ddeaa0131a7782e14..110d2c8acd54f2354fcba966dfff7524a84374b3 100644 (file)
@@ -140,5 +140,7 @@ namespace MaestroShared.Configuration {
     }\r
 \r
     public class MediaCubeMetadata : MetadataProvider {\r
+        public string MetadataTitleFormat { get; set; }\r
+        public string MetadataIDFormat { get; set; }\r
     }\r
 }\r
index 0de39cbdb91f02b6fce1699fdd0dec0e2f19a875..2bb82374f430d63bb6a8415e11310f261b78de7a 100644 (file)
@@ -84,7 +84,7 @@
     <Compile Include="Commons\MorpheusXML.cs" />\r
     <Compile Include="Commons\NexioXML.cs" />\r
     <Compile Include="Commons\ObjectExtensions.cs" />\r
-    <Compile Include="Commons\PatterNameMaker.cs" />\r
+    <Compile Include="Commons\PatternNameMaker.cs" />\r
     <Compile Include="Commons\Win32File.cs" />\r
     <Compile Include="Configuration\ConfigurationInfo.cs" />\r
     <Compile Include="Configuration\KeysColorConverter.cs" />\r
index b6ead38cd63beeaca465e026f3d9b762aea41c1a..c193ef7f550558c128a44684bcce7919e1270489 100644 (file)
@@ -20,9 +20,12 @@ namespace MaestroShared.Targets {
         public override void Initialize(Control parent, TargetProcessorParameter parameters) {\r
             base.Initialize(parent, parameters);\r
             FtpTrace.LogFunctions = false;\r
-            string address = parameters?.SourceConfig?.Remote?.Address.ToString();\r
-            if (address == null)\r
-                throw new Exception("Nem található a 'source.remote.address' beállítás.");\r
+            string address = parameters?.SourceConfig?.Local?.Address.ToString();\r
+            if (address == null) {\r
+                Message = "Nem található a 'source.local.address' beállítás.";\r
+                Status = REVOKED;\r
+                return;\r
+            }\r
             inputFile = null;\r
 \r
             if (!String.IsNullOrEmpty(parameters.SourcePathOverride)) {\r
@@ -34,6 +37,7 @@ namespace MaestroShared.Targets {
             else\r
                 Input = new Uri(Path.Combine(address, parameters.InputFileName)).LocalPath;\r
 \r
+            inputFile = new FileInfo(Input);\r
             //if (address == null)\r
             //    throw new Exception("Missing 'source.remote' parameter.");\r
             //Uri inputUri = new Uri(Path.Combine(address, parameters.InputFileName));\r
index 09513ee2e9d3ada5491f8e7a733ecd7b25e8979b..49175610113fc64aa427a1534c92e631b5c923ff 100644 (file)
@@ -25,8 +25,11 @@ namespace MaestroShared.Targets {
             //Input = inputUri.ToString();\r
 \r
             string address = parameters?.SourceConfig?.Remote?.Address.ToString();\r
-            if (address == null)\r
-                throw new Exception("Nem található a 'source.remote.address' beállítás.");\r
+            if (address == null) {\r
+                Message = "Nem található a 'source.remote.address' beállítás.";\r
+                Status = REVOKED;\r
+                return;\r
+            }\r
 \r
             if (!String.IsNullOrEmpty(parameters.SourcePathOverride)) {\r
                 string relativePath = parameters.SourcePathOverride.Replace(parameters.SourceConfig.Local.Address.LocalPath, "").Replace(BACKSLASH, SLASH);\r
@@ -96,8 +99,8 @@ namespace MaestroShared.Targets {
                 FtpReply monitorReplyTYPE = monitorFTP.Execute("TYPE I");\r
                 if (!monitorReplyTYPE.Success)\r
                     throw new Exception(targetReplyTYPE.ErrorMessage);\r
-                if (!monitorFTP.FileExists(OutputName))\r
-                    throw new Exception("A cél állomány nem jött létre.");\r
+                //if (!FileExists(OutputName))\r
+                //    throw new Exception("A cél állomány nem jött létre.");\r
                 long overall = 0;\r
                 long lastSize = 0;\r
                 while (overall != ilength) {\r
index 877d3a859463ea492385c5ca7df3decb8ce4b767..074b0fae2b794280b2ad3ec251005b70b96b583e 100644 (file)
@@ -13,6 +13,7 @@ namespace MaestroShared.Targets {
         public const string ERROR = "Hiba";\r
         public const string READY = "Kész";\r
         public const string REVOKED = "Visszavonva";\r
+        public const string SKIPPED = "Kihagyva";\r
         private string status;\r
         private string message;\r
         private string id;\r
index 2c0cdae0d4f7a9977642b9658b6e4ad29cc03c20..5b2ef4a758c6c8338a5b0f0732577b016b489b49 100644 (file)
@@ -14,7 +14,7 @@ namespace MaestroShared.Targets {
 \r
     public class UNCTargetProcessor : TargetProcessor {\r
         private readonly Logger logger = LogManager.GetCurrentClassLogger();\r
-        private const string SUCCESS = "Successfully completed.";\r
+        private const string SUCCESS = "Sikeresen betöltve.";\r
         private const string PROCESSING = "Processing {0}";\r
         private const string PROCESSING_COMPLETED = "Finished processing {0}";\r
         private const string FILENAME = "{0}{1}";\r
@@ -83,10 +83,11 @@ namespace MaestroShared.Targets {
                 if (DeleteExisting(currentFile)) {\r
                     UploadFile();\r
                     //logger.Info("Spend (s):" + (DateTime.Now - started).TotalSeconds);\r
-                    ExecuteCompleted();\r
+                    Status = READY;\r
+                    Message = SUCCESS;\r
                 }\r
-                Status = READY;\r
-                Message = SUCCESS;\r
+\r
+                ExecuteCompleted();\r
             }\r
             catch (Exception e) {\r
                 Status = ERROR;\r
@@ -117,8 +118,11 @@ namespace MaestroShared.Targets {
                 } else {\r
                     if (Parameters.TargetConfig.EnableOverride)\r
                         DeleteFile(currentFile);\r
-                    else\r
+                    else {\r
+                        Status = SKIPPED;\r
+                        Message = "A célállomány létezik, felülírása a konfiuráció alapján nem lehetséges.";\r
                         result = false;\r
+                    }\r
                 }\r
             }\r
             return result;\r
@@ -369,7 +373,7 @@ namespace MaestroShared.Targets {
         }\r
 \r
         protected string GetDynamicText(string pattern) {\r
-            return PatterNameMaker.Get(pattern, ID, InputName, Parameters.MetadataText);\r
+            return PatternNameMaker.Get(pattern, ID, InputName, Parameters.MetadataText);\r
         }\r
 \r
         private string CreateOutputFileName() {\r
index 690a83e4b53390aac1967adc257746ff39817e01..6c7c8acfaf17f0adb1fe7661508f6ed7901a552d 100644 (file)
@@ -11,6 +11,7 @@ using System.IO;
 using MaestroShared.Targets;\r
 using MaestroShared.Target;\r
 using System.Diagnostics;\r
+using MaestroShared.Commons;\r
 \r
 namespace OctopusClient {\r
     public delegate void OnSelectedIDChanged(string id, string name, string text);\r
@@ -433,10 +434,15 @@ namespace OctopusClient {
 \r
             ITargetProcessor processor = TargetProcessor.Create(projectConfiguration.Target.Processor);\r
             processor.Initialize(null, processorParameter);\r
+            if (TargetProcessor.REVOKED.Equals(processor.Status)) {\r
+                MsgBox.Error(processor.Message);\r
+                return;\r
+            }\r
+\r
             processor.Execute();\r
 \r
-            if (!TargetProcessor.READY.Equals(processor.Status)) {\r
-                MessageBox.Show(processor.Message, null, MessageBoxButtons.OK, MessageBoxIcon.Error);\r
+            if (!TargetProcessor.READY.Equals(processor.Status) || !TargetProcessor.SKIPPED.Equals(processor.Status)) {\r
+                MsgBox.Error(processor.Message);\r
                 return;\r
             }\r
 \r