git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorBellai Ádám <USER\adam.bellai>
Mon, 16 Oct 2017 13:53:50 +0000 (13:53 +0000)
committerBellai Ádám <USER\adam.bellai>
Mon, 16 Oct 2017 13:53:50 +0000 (13:53 +0000)
client/Maestro/Configuration/ConfigurationInfo.cs
client/Maestro/MaestroForm.Target.cs
client/Maestro/Sources/NexioRESTSource.cs
client/Maestro/StringResources.Designer.cs
client/Maestro/StringResources.resx

index a46fb7a6a2e98d7bdb0947bad092c056c277e6e0..eab032f7bacaf4172a8c87f3955fdf5427d6fbba 100644 (file)
@@ -55,6 +55,7 @@ namespace Maestro.Configuration {
         public bool SendEmailOnSuccess { get; set; }\r
         public string SuccessEmailRecipient { get; set; }\r
         public string SuccessEmailPattern { get; set; }\r
+        public string Reference { get; set; }\r
     }\r
 \r
     public class Connection {\r
index f17730f0bfe5b323c666deb18611687be41dd5cf..02cf026fe25d8553c9879f2e57a4f316e17373f9 100644 (file)
@@ -36,6 +36,10 @@ namespace Maestro {
             if (Configuration.Targets == null)\r
                 return;\r
             foreach (Target target in Configuration.Targets) {\r
+                if (target.Reference != null && target.Label.Equals(target.Reference)) {\r
+                    MessageBox.Show(Parent, String.Format(StringResources.HIBAS_TARGET_REFERENCE_CONFIG, target.Label));\r
+                    Dispose();\r
+                }\r
                 CreateTarget(target);\r
             }\r
 \r
@@ -49,13 +53,14 @@ namespace Maestro {
                 Appearance = Appearance.Normal,\r
                 Text = target.Label,\r
                 UseVisualStyleBackColor = true,\r
-                Dock = DockStyle.Top\r
+                Dock = DockStyle.Top,\r
+                Tag = target\r
             };\r
             checkBox.CheckStateChanged += (s, e) => {\r
                 OnChecked(checkBox, target);\r
             };\r
 \r
-                panelActions.Controls.Add(checkBox);\r
+            panelActions.Controls.Add(checkBox);\r
             panelActions.RowCount = panelActions.Controls.Count;\r
 \r
         }\r
@@ -67,17 +72,19 @@ namespace Maestro {
             if (checkBox.Checked) {\r
                 List<ITargetProcessor> processors = new List<ITargetProcessor>();\r
                 foreach (DataGridViewRow actualRow in selectedRows) {\r
+\r
                     string fileName = actualRow.Cells[1].Value as string;\r
                     string typeName = string.Format("{0}.{1}", typeof(ITargetProcessor).Namespace, target.Processor);\r
                     Type type = Type.GetType(typeName);\r
                     ISourceItem selectedFile = GetSourceItemFromBindingSource(fileName);\r
                     string id = selectedMetadata == null ? textSelectedMetadata.Text : selectedMetadata.ID;\r
-                    if (target.SaveSegments && segments == null) {\r
-                        segments = trafficIDSelector.trafficAPI.GetSegments(selectedMetadata.VariantID);\r
-                        if (segments == null) {\r
-                            //todo error report küldés?\r
-                        }\r
-\r
+                    if (segments == null) {\r
+                        if (target.SaveSegments) {\r
+                            segments = trafficIDSelector.trafficAPI.GetSegments(selectedMetadata.VariantID);\r
+                            if (segments == null) {\r
+                                //todo error report küldés?\r
+                            }\r
+                        } else segments = new List<Segment>();\r
                     }\r
                     TargetProcessorParameter processorParameter = new TargetProcessorParameter() {\r
                         ArchiveMetadata = ArchiveMetadata.DeepClone(archiveMetadatamodel),\r
@@ -93,19 +100,46 @@ namespace Maestro {
                     object[] parameters = new object[] { this, processorParameter };\r
                     ITargetProcessor processor = (ITargetProcessor)Activator.CreateInstance(type, parameters);\r
                     processors.Add(processor);\r
+                    if (!String.IsNullOrEmpty(target.Reference))\r
+                        SetCheckBoxReferences(target.Reference, true);\r
                 }\r
                 currentProcessors.Add(checkBox, processors);\r
-            } else\r
+            } else {\r
+                SetCheckBoxReferences(target.Reference, false);\r
                 currentProcessors.Remove(checkBox);\r
+            }\r
             btnExecute.Enabled = currentProcessors.Count > 0;\r
         }\r
 \r
+        private bool IsOffCheckAble(String text) {\r
+            List<CheckBox> checkBoxes = new List<CheckBox>(currentProcessors.Keys);\r
+            foreach (CheckBox actual in checkBoxes) {\r
+                Target target = actual.Tag as Target;\r
+                if (text.Equals(target.Reference))\r
+                    return false;\r
+            }\r
+            return true;\r
+        }\r
+\r
+        private void SetCheckBoxReferences(string reference, bool check) {\r
+            var controlls = panelActions.Controls;\r
+            foreach (Control actual in controlls) {\r
+                CheckBox actualCheckbox = actual as CheckBox;\r
+                if (actualCheckbox != null && actualCheckbox.Text.Equals(reference)) {\r
+                    if (check)\r
+                        actualCheckbox.Checked = check;\r
+                    else\r
+                        currentProcessors.Remove(actualCheckbox);\r
+                    actualCheckbox.Enabled = !check;\r
+                }\r
+            }\r
+        }\r
+\r
         private ISourceItem GetSourceItemFromBindingSource(string actual) {\r
             ISourceItem result = null;\r
-            foreach (ISourceItem actualSource in bindingSource) {\r
+            foreach (ISourceItem actualSource in bindingSource) \r
                 if (actualSource.Name.Equals(actual))\r
                     result = actualSource;\r
-            }\r
             return result;\r
         }\r
 \r
@@ -125,7 +159,7 @@ namespace Maestro {
             else {\r
                 String calculatedHouseID = selectedRows[0].Cells[1].Value as String;\r
                 foreach (DataGridViewRow actual in selectedRows) {\r
-                    string actualName = actual.Cells[1].Value as string;\r
+                    string actualName = actual.Cells[2].Value as string;\r
                     if (!actualName.StartsWith(startingName))\r
                         buttonMetadata.Enabled = false;\r
                 }\r
@@ -245,11 +279,7 @@ namespace Maestro {
                 match = Regex.Match(startingName, pattern);\r
                 IDType = match.Success ? IDTypes.OctopusID : IDTypes.None;\r
             }\r
-            buttonMetadata.Enabled = IDType != IDTypes.None;// ? false : true;\r
-            //if (IDType == IDTypes.None)\r
-            //    buttonMetadata.Enabled = false;\r
-            //else\r
-            //    buttonMetadata.Enabled = true;\r
+            buttonMetadata.Enabled = IDType != IDTypes.None;\r
         }\r
 \r
         public void OnTargetPanelsMouseClick(object sender, MouseEventArgs e) {\r
index a9c3ce87d7c65ec5ac91eb176ce8dc1ac925e0e3..3e98734d72956ad8cceae292c88fd3c8a43d367a 100644 (file)
@@ -167,15 +167,31 @@ namespace Maestro.Sources {
         private void OnChanged(JToken token) {\r
             string id = token[ID].ToString();\r
             var item = Items.Where(x => x.ID == id).SingleOrDefault();\r
-            if (item == null || !item.CanHandle(acceptableAgencies))\r
-                return;\r
+            if (item == null) {\r
+                var newItem = CreateItem(token, true);\r
+                item = newItem;\r
+            }\r
             SetItem(ref item, token);\r
+            if (!item.CanHandle(acceptableAgencies)) {\r
+                if (Contains(item)) {\r
+                    parent.SafeCall(() => {\r
+                        Remove(item);\r
+                        cache.Remove(item);\r
+                    });\r
+                }\r
+                return;\r
+            }\r
             parent.SafeCall(() => {\r
                 messageBus.Send(new ModifyFileActionMsg() {\r
                     FileName = item.Name,\r
                     Source = parent\r
                 });\r
             });\r
+            if (!Contains(item))\r
+                parent.SafeCall(() => {\r
+                    Add(item);\r
+                    cache.Add(item);\r
+                });\r
             Debug.WriteLine(string.Format("Changed {0}", item.Name));\r
         }\r
 \r
index 4bfe1385e3d9398c8b4359e0c3ece16dc6f87d96..c482b46da73025c36b2a515d0e2285f0318b559d 100644 (file)
@@ -177,6 +177,15 @@ namespace Maestro {
             }\r
         }\r
         \r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Hibás reference configuráció a(z) {0} targetba.\r
+        /// </summary>\r
+        internal static string HIBAS_TARGET_REFERENCE_CONFIG {\r
+            get {\r
+                return ResourceManager.GetString("HIBAS_TARGET_REFERENCE_CONFIG", resourceCulture);\r
+            }\r
+        }\r
+        \r
         /// <summary>\r
         ///   Looks up a localized string similar to Idő.\r
         /// </summary>\r
index 6ba10450d02c986dbef85adc0e2e310b693ae1ea..d7a78709f4ff1b29e6b968296050bda3e0781469 100644 (file)
   <data name="FORRAS_FAJL" xml:space="preserve">\r
     <value>Forrás fájl</value>\r
   </data>\r
+  <data name="HIBAS_TARGET_REFERENCE_CONFIG" xml:space="preserve">\r
+    <value>Hibás reference configuráció a(z) {0} targetba</value>\r
+  </data>\r
   <data name="IDO" xml:space="preserve">\r
     <value>Idő</value>\r
   </data>\r