git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Tue, 14 Aug 2018 09:57:43 +0000 (09:57 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Tue, 14 Aug 2018 09:57:43 +0000 (09:57 +0000)
26 files changed:
client/AudioRecorder/MainForm.cs
client/AudioRecorder/Program.cs
client/IntegrationTests/JobEngineIT.cs
client/Maestro/MaestroForm.Metadata.cs
client/Maestro/Program.cs
client/MaestroShared/Configuration/ConfigurationInfo.cs
client/MaestroShared/Interfaces/IMediaCubeApi.cs [new file with mode: 0644]
client/MaestroShared/MaestroShared.csproj
client/MaestroShared/MessageBus/MaestroMessage.cs [new file with mode: 0644]
client/MaestroShared/Model/Model.cs [moved from client/MediaCubeClient/Model/Model.cs with 90% similarity]
client/MaestroShared/Properties/AssemblyInfo.cs
client/MaestroShared/Targets/TargetProcessorParameter.cs
client/MaestroShared/Targets/UNCTargetProcessor.cs
client/MediaCubeClient/MediaCubeApi.cs
client/MediaCubeClient/MediaCubeClient.csproj
client/MetadataSelector/MetadataIDSelector.Designer.cs
client/MetadataSelector/MetadataIDSelector.cs
client/MetadataSelector/MetadataSelector.csproj
client/NativeOctopusClient/NativeOctopusAPI.cs [moved from client/NativeOctopusClient/OctopusAPI.cs with 94% similarity]
client/NativeOctopusClient/NativeOctopusClient.csproj
client/NativeOctopusClient/NativeOctopusIDSelector.Designer.cs [moved from client/NativeOctopusClient/OctopusIDSelector.Designer.cs with 97% similarity]
client/NativeOctopusClient/NativeOctopusIDSelector.cs [moved from client/NativeOctopusClient/OctopusIDSelector.cs with 93% similarity]
client/NativeOctopusClient/NativeOctopusIDSelector.resx [moved from client/NativeOctopusClient/OctopusIDSelector.resx with 100% similarity]
client/NativeOctopusClient/NativeOctopusParameters.cs [moved from client/NativeOctopusClient/OctopusParameters.cs with 84% similarity]
client/OctopusClient/OctopusIDSelector.cs
client/PlanAIRClient/TrafficIDSelector.cs

index 055828ec6452ffbee647b9b99433b4a130d485b0..1ff6fbe02db55e261baad05b6d15d4ae580f13c0 100644 (file)
@@ -19,7 +19,7 @@ namespace AudioRecorder {
 \r
     public partial class MainForm : Form {\r
 \r
-        private const String CONFIG_FILE = "Configuration/audiorecorder.json";\r
+        private const String CONFIG_FILE = "./Configuration/audiorecorder.json";\r
         private const string WAV_EXT = ".WAV";\r
         private AudioDevicesDetector devicesDetector;\r
         private List<string> audioDevicesNames;\r
@@ -76,7 +76,7 @@ namespace AudioRecorder {
 \r
         private void OnMainShown(object sender, EventArgs e) {\r
             try {\r
-                Type[] knownTypes = { typeof(AudioRecorderSettings), typeof(Target), typeof(Connection), typeof(OctopusMetadata), typeof(TrafficMetadata), typeof(MediaCubeMetadata) };\r
+                Type[] knownTypes = { typeof(OctopusMetadata), typeof(TrafficMetadata), typeof(MediaCubeMetadata) };\r
                 parameters = ConfigurationSerializer.Load<AudioRecorderSettings>(CONFIG_FILE, knownTypes);\r
 \r
                 UpdateGUI();\r
index 1c9899f6c1dee1c0b8e9e15bee5874831356819a..f9cdad2db7a01e7fc2fa68a40c1bafd3f0186615 100644 (file)
@@ -1,4 +1,5 @@
-using System;\r
+using MaestroShared.Configuration;\r
+using System;\r
 using System.Collections.Generic;\r
 using System.Windows.Forms;\r
 \r
@@ -11,7 +12,10 @@ namespace AudioRecorder {
         static void Main() {\r
             Application.EnableVisualStyles();\r
             Application.SetCompatibleTextRenderingDefault(false);\r
-            Application.Run(new MainForm());\r
+            //Application.Run(new MainForm());\r
+            Type[] knownTypes = { typeof(OctopusMetadata), typeof(TrafficMetadata), typeof(MediaCubeMetadata) };\r
+            var parameters = ConfigurationSerializer.Load<AudioRecorderSettings>("./Configuration/audiorecorder.json", knownTypes);\r
+            Application.Run(new MetadataSelectorForm(parameters));\r
         }\r
     }\r
 }\r
index bb4ab0bf2d74a4f8927b59434f3bfe8a2670623e..94a01ef510d77a69ff0a183e5ed1b09365ec0b48 100644 (file)
@@ -1,8 +1,8 @@
 using Microsoft.VisualStudio.TestTools.UnitTesting;\r
 using MediaCubeClient;\r
 using System.Net;\r
-using Model;\r
 using System;\r
+using MaestroShared.Model;\r
 \r
 namespace IntegrationTests {\r
     [TestClass]\r
index fd68bd59cd4e8f80aac601e65ad4f1a894872c19..d6f7b9f507475387183876b683be4a8011fbdb8f 100644 (file)
@@ -2,18 +2,16 @@
 using OctopusClient;\r
 using System.Linq;\r
 using System;\r
-using DxPlay;\r
 using System.Windows.Forms;\r
 using TrafficClient;\r
 using System.Collections.Generic;\r
 using System.ComponentModel;\r
-using System.Text.RegularExpressions;\r
 using MediaCubeClient;\r
-using Model;\r
 using MaestroShared.Configuration;\r
 using MaestroShared.Metadata;\r
 using MaestroShared.Targets;\r
 using MaestroShared.Commons;\r
+using MaestroShared.Model;\r
 \r
 namespace Maestro {\r
     public partial class MaestroForm {\r
@@ -62,7 +60,7 @@ namespace Maestro {
         }\r
 \r
         private void InitializeTrafficSelector() {\r
-            TrafficMetadata metadata = Configuration.GetMetadataProvider<TrafficMetadata>();\r
+            TrafficMetadata metadata = MetadataProvider.Get<TrafficMetadata>(Configuration.Metadatas);\r
             if (metadata == null) {\r
                 tabMetadata.TabPages.Remove(tpTraffic);\r
                 return;\r
@@ -76,7 +74,7 @@ namespace Maestro {
         }\r
 \r
         private void InitializeOctopusSelector() {\r
-            OctopusMetadata octopusConfiguration = Configuration.GetMetadataProvider<OctopusMetadata>();\r
+            OctopusMetadata octopusConfiguration = MetadataProvider.Get<OctopusMetadata>(Configuration.Metadatas);\r
             if (octopusConfiguration == null) {\r
                 tabMetadata.TabPages.Remove(tpOctopus);\r
                 return;\r
@@ -90,7 +88,7 @@ namespace Maestro {
         }\r
 \r
         private void InitializeMediaCubeApi() {\r
-            MediaCubeMetadata metadata = Configuration.GetMetadataProvider<MediaCubeMetadata>();\r
+            MediaCubeMetadata metadata = MetadataProvider.Get<MediaCubeMetadata>(Configuration.Metadatas);\r
             if (metadata == null)\r
                 return;\r
             mediaCubeApi = new MediaCubeApi(metadata.Server.Address.ToString(), metadata.Server.UserName, metadata.Server.Password, metadata.Server.Timeout, errorMessageBus);\r
@@ -241,7 +239,7 @@ namespace Maestro {
             if (masterId == null)\r
                 return null;\r
             ArchiveMetadata result = new ArchiveMetadata();\r
-            MediaCubeMetadata metadata = Configuration.GetMetadataProvider<MediaCubeMetadata>();\r
+            MediaCubeMetadata metadata = MetadataProvider.Get<MediaCubeMetadata>(Configuration.Metadatas);\r
             string mcID = ARCHIVEID_PREFIX + masterId.id.ToString();\r
             result.itemHouseId = string.IsNullOrEmpty(metadata?.MetadataIDFormat) ? mcID : metadata.MetadataIDFormat;\r
             result.itemTitle = result.itemHouseId;\r
@@ -427,35 +425,35 @@ namespace Maestro {
             MetadataType metadataType = MetadataTypeUtil.Guess(id);\r
             switch (metadataType) {\r
                 case MetadataType.TrafficMaterial:\r
-                    config = Configuration.GetMetadataProvider<TrafficMetadata>();\r
+                    config = MetadataProvider.Get<TrafficMetadata>(Configuration.Metadatas);\r
                     if (config == null)\r
                         return;\r
                     tabMetadata.SelectedIndex = tabMetadata.TabCount > 1 ? 1 : 0;\r
                     trafficIDSelector.LookupByMaterialID(id);\r
                     break;\r
                 case MetadataType.TrafficPromo:\r
-                    config = Configuration.GetMetadataProvider<TrafficMetadata>();\r
+                    config = MetadataProvider.Get<TrafficMetadata>(Configuration.Metadatas);\r
                     if (config == null)\r
                         return;\r
                     tabMetadata.SelectedIndex = tabMetadata.TabCount > 1 ? 1 : 0;\r
                     trafficIDSelector.LookupByPromoID(id);\r
                     break;\r
                 case MetadataType.TrafficAD:\r
-                    config = Configuration.GetMetadataProvider<TrafficMetadata>();\r
+                    config = MetadataProvider.Get<TrafficMetadata>(Configuration.Metadatas);\r
                     if (config == null)\r
                         return;\r
                     tabMetadata.SelectedIndex = tabMetadata.TabCount > 1 ? 1 : 0;\r
                     trafficIDSelector.LookupByADID(id);\r
                     break;\r
                 case MetadataType.OctopusPlaceHolder:\r
-                    config = Configuration.GetMetadataProvider<OctopusMetadata>();\r
+                    config = MetadataProvider.Get<OctopusMetadata>(Configuration.Metadatas);\r
                     if (config == null)\r
                         return;\r
                     tabMetadata.SelectedIndex = 0;\r
                     octopusIDSelector.LookupByPlaceHolder(id);\r
                     break;\r
                 case MetadataType.OctopusStory:\r
-                    config = Configuration.GetMetadataProvider<OctopusMetadata>();\r
+                    config = MetadataProvider.Get<OctopusMetadata>(Configuration.Metadatas);\r
                     if (config == null)\r
                         return;\r
                     tabMetadata.SelectedIndex = 0;\r
index 5471bfe43721ce3cbf409c1f270ffc9408dfaf1b..628f7e0bb92986c3666e1bdefcd1799e46edeb61 100644 (file)
@@ -256,10 +256,10 @@ namespace Maestro {
             string replacementHost = arguments.ToList().Where(i => i.StartsWith("http") || i.StartsWith("https")).FirstOrDefault();\r
             if (String.IsNullOrEmpty(replacementHost))\r
                 return;\r
-            var mediaCubeProvider = config.GetMetadataProvider<MediaCubeMetadata>();\r
+            var mediaCubeProvider = MetadataProvider.Get<MediaCubeMetadata>(config.Metadatas);\r
             if (mediaCubeProvider != null)\r
                 mediaCubeProvider.Server.Address = replaceAuthority(replacementHost, mediaCubeProvider.Server.Address);\r
-            var octopusProvider = config.GetMetadataProvider<OctopusMetadata>();\r
+            var octopusProvider = MetadataProvider.Get<OctopusMetadata>(config.Metadatas);\r
             if (octopusProvider != null)\r
                 octopusProvider.Server.Address = replaceAuthority(replacementHost, octopusProvider.Server.Address);\r
             if (config.Source is NEXIOSource)\r
index e7706c1e6234e4087a43bf5354189f873dd4c8f6..f0826a55077d58b7c5342c7e4a943f6b61c2c795 100644 (file)
@@ -84,14 +84,6 @@ namespace MaestroShared.Configuration {
         public bool MetadataOnly { get; set; }\r
         public Point Size { get; set; }\r
 \r
-        public T GetMetadataProvider<T>() {\r
-            MetadataProvider provider = Metadatas?.Where(m => { return m is T; }).FirstOrDefault();\r
-            T result = default(T);\r
-            try {\r
-                result = (T)Convert.ChangeType(provider, typeof(T));\r
-            } finally { }\r
-            return result;\r
-        }\r
     }\r
 \r
     public class Player {\r
@@ -155,6 +147,14 @@ namespace MaestroShared.Configuration {
 \r
     public class MetadataProvider : UISettings {\r
         public Connection Server { get; set; }\r
+        public static T Get<T>(MetadataProvider[] providers) {\r
+            MetadataProvider provider = providers?.Where(m => { return m is T; }).FirstOrDefault();\r
+            T result = default(T);\r
+            try {\r
+                result = (T)Convert.ChangeType(provider, typeof(T));\r
+            } finally { }\r
+            return result;\r
+        }\r
     }\r
 \r
     public class ProjectSettings {\r
@@ -179,6 +179,9 @@ namespace MaestroShared.Configuration {
         public ProjectSettings ProjectSettings { get; set; }\r
     }\r
 \r
+    public class NativeOctopusMetadata : OctopusMetadata {\r
+    }\r
+\r
     public class TrafficMetadata : MetadataProvider {\r
         public ProjectSettings ProjectSettings { get; set; }\r
     }\r
@@ -209,4 +212,5 @@ namespace MaestroShared.Configuration {
             }\r
         }\r
     }\r
+\r
 }\r
diff --git a/client/MaestroShared/Interfaces/IMediaCubeApi.cs b/client/MaestroShared/Interfaces/IMediaCubeApi.cs
new file mode 100644 (file)
index 0000000..eb5e1bf
--- /dev/null
@@ -0,0 +1,7 @@
+\r
+namespace MaestroShared.Interfaces {\r
+    public interface IMediaCubeApi {\r
+        T Create<T>(object data);\r
+        void Notify(string to, string content);\r
+    }\r
+}\r
index dd78f7cf7b5a6204485b7e7808aa6dbc7e14db72..a2b69961d3dfda9ef2d3b496dd435ec7b35d42af 100644 (file)
       <SubType>Component</SubType>\r
     </Compile>\r
     <Compile Include="Controls\Win32.cs" />\r
+    <Compile Include="Interfaces\IMediaCubeApi.cs" />\r
+    <Compile Include="MessageBus\MaestroMessage.cs" />\r
     <Compile Include="Metadata\MetadataType.cs" />\r
     <Compile Include="Metadata\MovieSegment.cs" />\r
     <Compile Include="Metadata\Timecode.cs" />\r
+    <Compile Include="Model\Model.cs" />\r
     <Compile Include="Properties\AssemblyInfo.cs" />\r
     <Compile Include="Metadata\ArchiveMetadata.cs" />\r
     <Compile Include="Properties\Resources.Designer.cs">\r
     <Compile Include="Targets\UNCTargetProcessor.cs" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <ProjectReference Include="..\MediaCubeClient\MediaCubeClient.csproj">\r
-      <Project>{cefd0348-ded4-453e-bf3a-0b52f8890ab3}</Project>\r
-      <Name>MediaCubeClient</Name>\r
-    </ProjectReference>\r
     <ProjectReference Include="..\PasswordEncrypter\PasswordEncrypter.csproj">\r
       <Project>{8c51d508-1759-4c10-84a4-80965fd074ff}</Project>\r
       <Name>PasswordEncrypter</Name>\r
diff --git a/client/MaestroShared/MessageBus/MaestroMessage.cs b/client/MaestroShared/MessageBus/MaestroMessage.cs
new file mode 100644 (file)
index 0000000..5285065
--- /dev/null
@@ -0,0 +1,11 @@
+\r
+using LinkDotNet.MessageHandling.Contracts;\r
+\r
+namespace MaestroShared.MessageBus {\r
+    public class MaestroMessage : IMessage {\r
+        public MaestroMessage(string message) {\r
+            Content = message;\r
+        }\r
+        public string Content { get; set; }\r
+    }\r
+}\r
similarity index 90%
rename from client/MediaCubeClient/Model/Model.cs
rename to client/MaestroShared/Model/Model.cs
index 629e452ef8ee1bdc4eab910b575d4bf2608d35d2..9d0dee8a3fbfacccd0b0b9841130e33da7ee83ce 100644 (file)
@@ -1,6 +1,6 @@
 using System;\r
 \r
-namespace Model {\r
+namespace MaestroShared.Model {\r
     public class WorkflowAction {\r
         public long id;\r
         public DateTime touched;\r
index c4425a147ed80c4171983adebe64a625a44125ee..329d8b2755130312c418bf8bb4b3170591faeb42 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.8.3")]\r
-[assembly: AssemblyFileVersion("2.0.8.3")]\r
+[assembly: AssemblyVersion("2.0.8.4")]\r
+[assembly: AssemblyFileVersion("2.0.8.4")]\r
index 1520f2ee76e1cf204ad4d9dab8b64fe3c8f55452..7af553e48e74b42e931a653bedfa7c2690e8a2e0 100644 (file)
@@ -1,9 +1,9 @@
 using System.Collections.Generic;\r
-using MediaCubeClient;\r
 using MaestroShared.Configuration;\r
 using MaestroShared.Metadata;\r
 using LinkDotNet.MessageHandling.Contracts;\r
 using System;\r
+using MaestroShared.Interfaces;\r
 \r
 namespace MaestroShared.Target {\r
     public class TargetProcessorParameter {\r
@@ -14,7 +14,7 @@ namespace MaestroShared.Target {
         public string ID { get; set; }\r
         public string MetadataText { get; set; }\r
         public List<MovieSegment> MovieSegments { get; set; }\r
-        public MediaCubeApi MediaCubeApi { get; set; }\r
+        public IMediaCubeApi MediaCubeApi { get; set; }\r
         public ArchiveMetadata ArchiveMetadata { get; set; }\r
         public int VariantID { get; set; }\r
         public MetadataType MetadataKind { get; set; }\r
index 9b8ff2e8fd6a5a7d800f6e97b530eabc883a216d..5d5339f2073fdc4bb10780f3c9a993e124ba23f3 100644 (file)
@@ -2,13 +2,12 @@
 using System;\r
 using System.IO;\r
 using System.Windows.Forms;\r
-using Model;\r
 using System.Text;\r
-using System.Globalization;\r
 using MaestroShared.Configuration;\r
 using MaestroShared.Target;\r
 using MaestroShared.Metadata;\r
 using MaestroShared.Commons;\r
+using MaestroShared.Model;\r
 \r
 namespace MaestroShared.Targets {\r
 \r
index 4984faef690e9108239daa1b0bdb780cd27fdc58..3efdd14efc655e90b650be2fb37ef7496ba47454 100644 (file)
@@ -8,16 +8,16 @@ using System.Diagnostics;
 using System.Net;\r
 using System.Runtime.Serialization;\r
 using LinkDotNet.MessageHandling.Contracts;\r
+using MaestroShared.MessageBus;\r
+using MaestroShared.Interfaces;\r
 \r
 namespace MediaCubeClient {\r
-    public class MediaCubeMessage : IMessage {\r
-        public MediaCubeMessage(string message) {\r
-            Content = message;\r
+    public class MediaCubeMessage : MaestroMessage {\r
+        public MediaCubeMessage(string message) : base(message) {\r
         }\r
-        public string Content { get; set; }\r
     }\r
 \r
-    public class MediaCubeApi {\r
+    public class MediaCubeApi : IMediaCubeApi {\r
         private const string DATEFORMAT = "yyyy'-'MM'-'dd'T'HH':'mm':'ssK";\r
         private static Logger logger = LogManager.GetCurrentClassLogger();\r
         private RestClient client;\r
index ddbf4944919ba3a9299dbd8b434eeab28d2d33cd..fb4c22d5800ee0d7a0f37d42a94ae2111afc47ea 100644 (file)
     </None>\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <Compile Include="Model\Model.cs" />\r
+    <ProjectReference Include="..\MaestroShared\MaestroShared.csproj">\r
+      <Project>{d4417174-f21e-4ce2-ae5c-8eb30c9a9625}</Project>\r
+      <Name>MaestroShared</Name>\r
+    </ProjectReference>\r
   </ItemGroup>\r
-  <ItemGroup />\r
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
 </Project>
\ No newline at end of file
index 0005c266f6cb0361a1274c1a229bcc887d59b7a2..b69fed4a1ec4bbc7f125f1ebe29add4024c9a2ed 100644 (file)
             this.btnLookupMetadata = new System.Windows.Forms.Button();\r
             this.labelSelectedMetadata = new System.Windows.Forms.Label();\r
             this.textSelectedMetadata = new System.Windows.Forms.TextBox();\r
+            this.tpNativeOctopus = new System.Windows.Forms.TabPage();\r
+            this.nativeOctopusIDSelector = new NativeOctopusClient.NativeOctopusIDSelector();\r
             this.tabMetadata.SuspendLayout();\r
             this.tpOctopus.SuspendLayout();\r
             this.tpTraffic.SuspendLayout();\r
             this.pMetadataDisplay.SuspendLayout();\r
+            this.tpNativeOctopus.SuspendLayout();\r
             this.SuspendLayout();\r
             // \r
             // tabMetadata\r
             // \r
             this.tabMetadata.Controls.Add(this.tpOctopus);\r
+            this.tabMetadata.Controls.Add(this.tpNativeOctopus);\r
             this.tabMetadata.Controls.Add(this.tpTraffic);\r
             this.tabMetadata.Dock = System.Windows.Forms.DockStyle.Fill;\r
             this.tabMetadata.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
             this.textSelectedMetadata.TextChanged += new System.EventHandler(this.OnSelectedMetadataIDChanged);\r
             this.textSelectedMetadata.KeyDown += new System.Windows.Forms.KeyEventHandler(this.OnSelectedMetadataIDKeyDown);\r
             // \r
+            // tpNativeOctopus\r
+            // \r
+            this.tpNativeOctopus.Controls.Add(this.nativeOctopusIDSelector);\r
+            this.tpNativeOctopus.Location = new System.Drawing.Point(4, 24);\r
+            this.tpNativeOctopus.Name = "tpNativeOctopus";\r
+            this.tpNativeOctopus.Padding = new System.Windows.Forms.Padding(3);\r
+            this.tpNativeOctopus.Size = new System.Drawing.Size(365, 428);\r
+            this.tpNativeOctopus.TabIndex = 2;\r
+            this.tpNativeOctopus.Text = "Octopus";\r
+            this.tpNativeOctopus.UseVisualStyleBackColor = true;\r
+            // \r
+            // nativeOctopusIDSelector\r
+            // \r
+            this.nativeOctopusIDSelector.BackColor = System.Drawing.Color.Transparent;\r
+            this.nativeOctopusIDSelector.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.nativeOctopusIDSelector.IDChangedEvent = null;\r
+            this.nativeOctopusIDSelector.Location = new System.Drawing.Point(3, 3);\r
+            this.nativeOctopusIDSelector.Name = "nativeOctopusIDSelector";\r
+            this.nativeOctopusIDSelector.Size = new System.Drawing.Size(359, 422);\r
+            this.nativeOctopusIDSelector.TabIndex = 0;\r
+            // \r
             // MetadataIDSelector\r
             // \r
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
             this.tpTraffic.PerformLayout();\r
             this.pMetadataDisplay.ResumeLayout(false);\r
             this.pMetadataDisplay.PerformLayout();\r
+            this.tpNativeOctopus.ResumeLayout(false);\r
             this.ResumeLayout(false);\r
             this.PerformLayout();\r
 \r
         private System.Windows.Forms.TextBox textSelectedMetadata;\r
         private OctopusClient.OctopusIDSelector octopusIDSelector;\r
         private TrafficClient.TrafficIDSelector trafficIDSelector;\r
+        private System.Windows.Forms.TabPage tpNativeOctopus;\r
+        private NativeOctopusClient.NativeOctopusIDSelector nativeOctopusIDSelector;\r
     }\r
 }\r
index 4d2612f737056726b0fe88985be9a986b2f02687..f9716f5bcb870ff108047a758d8856cd4743ba54 100644 (file)
@@ -4,9 +4,9 @@ using MaestroShared.Commons;
 using MaestroShared.Configuration;\r
 using MaestroShared.Metadata;\r
 using MediaCubeClient;\r
+using NativeOctopusClient;\r
 using OctopusClient;\r
 using System;\r
-using System.Linq;\r
 using System.Security.Principal;\r
 using System.Text.RegularExpressions;\r
 using System.Windows.Forms;\r
@@ -32,19 +32,24 @@ namespace MaestroShared.Controls {
                     return;\r
                 InitializeTrafficSelector();\r
                 InitializeOctopusSelector();\r
+                InitializeNativeOctopusSelector();\r
             }\r
         }\r
 \r
-        public IMessageBus messageBus = new MessageBus();\r
+        public IMessageBus messageBus = new LinkDotNet.MessageHandling.MessageBus();\r
 \r
         public MetadataIDSelector() {\r
             InitializeComponent();\r
             messageBus.Subscribe<OctopusAPIMessage>(OnMessage);\r
+            messageBus.Subscribe<NativeOctopusAPIMessage>(OnMessage);\r
             messageBus.Subscribe<TrafficAPIMessage>(OnMessage);\r
             messageBus.Subscribe<MediaCubeMessage>(OnMessage);\r
         }\r
 \r
         private void OnMessage(IMessage message) {\r
+            NativeOctopusAPIMessage nm = message as NativeOctopusAPIMessage;\r
+            if (nm != null)\r
+                MsgBox.Error(nm.Content);\r
             OctopusAPIMessage om = message as OctopusAPIMessage;\r
             if (om != null)\r
                 MsgBox.Error(om.Content);\r
@@ -57,7 +62,7 @@ namespace MaestroShared.Controls {
         }\r
 \r
         private void InitializeTrafficSelector() {\r
-            TrafficMetadata metadata = GetMetadataProvider<TrafficMetadata>();\r
+            TrafficMetadata metadata = MetadataProvider.Get<TrafficMetadata>(Providers);\r
             if (metadata == null) {\r
                 tabMetadata.TabPages.Remove(tpTraffic);\r
                 return;\r
@@ -71,7 +76,7 @@ namespace MaestroShared.Controls {
         }\r
 \r
         private void InitializeOctopusSelector() {\r
-            OctopusMetadata octopusConfiguration = GetMetadataProvider<OctopusMetadata>();\r
+            OctopusMetadata octopusConfiguration = MetadataProvider.Get<OctopusMetadata>(Providers);\r
             if (octopusConfiguration == null) {\r
                 tabMetadata.TabPages.Remove(tpOctopus);\r
                 return;\r
@@ -84,13 +89,35 @@ namespace MaestroShared.Controls {
             octopusIDSelector.IDChangedEvent += OctopusIDChangedEvent;\r
         }\r
 \r
+        private void InitializeNativeOctopusSelector() {\r
+            NativeOctopusMetadata octopusConfiguration = MetadataProvider.Get<NativeOctopusMetadata>(Providers);\r
+            if (octopusConfiguration == null) {\r
+                tabMetadata.TabPages.Remove(tpNativeOctopus);\r
+                return;\r
+            }\r
+            nativeOctopusIDSelector.Parameters = new NativeOctopusParameters() {\r
+                Configuration = octopusConfiguration,\r
+                UserName = WindowsIdentity.GetCurrent().Name,\r
+                MessageBus = messageBus,\r
+            };\r
+            nativeOctopusIDSelector.IDChangedEvent += NativeOctopusIDChangedEvent;\r
+        }\r
+\r
         private void OctopusIDChangedEvent(string id, string name, string text) {\r
+            trafficIDSelector.ClearSelection();\r
+            nativeOctopusIDSelector.ClearSelection();\r
+            textSelectedMetadata.Text = name;\r
+        }\r
+\r
+        private void NativeOctopusIDChangedEvent(string id, string name, string text) {\r
+            octopusIDSelector.ClearSelection();\r
             trafficIDSelector.ClearSelection();\r
             textSelectedMetadata.Text = name;\r
         }\r
 \r
         private void TrafficIDChangedEvent(string id, int variantID, string text) {\r
             octopusIDSelector.ClearSelection();\r
+            nativeOctopusIDSelector.ClearSelection();\r
             textSelectedMetadata.Text = id;\r
         }\r
 \r
@@ -98,50 +125,40 @@ namespace MaestroShared.Controls {
             Lookup(textSelectedMetadata.Text);\r
         }\r
 \r
-        public T GetMetadataProvider<T>() {\r
-            MetadataProvider provider = Providers?.Where(m => { return m is T; }).FirstOrDefault();\r
-            T result = default(T);\r
-            try {\r
-                result = (T)Convert.ChangeType(provider, typeof(T));\r
-            }\r
-            finally { }\r
-            return result;\r
-        }\r
-\r
         private void Lookup(string id) {\r
             MetadataProvider config = null;\r
             MetadataType metadataType = GuessMetadataType(id);\r
             switch (metadataType) {\r
                 case MetadataType.TrafficMaterial:\r
-                    config = GetMetadataProvider<TrafficMetadata>();\r
+                    config = MetadataProvider.Get<TrafficMetadata>(Providers);\r
                     if (config == null)\r
                         return;\r
                     tabMetadata.SelectedIndex = tabMetadata.TabCount > 1 ? 1 : 0;\r
                     trafficIDSelector.LookupByMaterialID(id);\r
                     break;\r
                 case MetadataType.TrafficPromo:\r
-                    config = GetMetadataProvider<TrafficMetadata>();\r
+                    config = MetadataProvider.Get<TrafficMetadata>(Providers);\r
                     if (config == null)\r
                         return;\r
                     tabMetadata.SelectedIndex = tabMetadata.TabCount > 1 ? 1 : 0;\r
                     trafficIDSelector.LookupByPromoID(id);\r
                     break;\r
                 case MetadataType.TrafficAD:\r
-                    config = GetMetadataProvider<TrafficMetadata>();\r
+                    config = MetadataProvider.Get<TrafficMetadata>(Providers);\r
                     if (config == null)\r
                         return;\r
                     tabMetadata.SelectedIndex = tabMetadata.TabCount > 1 ? 1 : 0;\r
                     trafficIDSelector.LookupByADID(id);\r
                     break;\r
                 case MetadataType.OctopusPlaceHolder:\r
-                    config = GetMetadataProvider<OctopusMetadata>();\r
+                    config = MetadataProvider.Get<OctopusMetadata>(Providers);\r
                     if (config == null)\r
                         return;\r
                     tabMetadata.SelectedIndex = 0;\r
                     octopusIDSelector.LookupByPlaceHolder(id);\r
                     break;\r
                 case MetadataType.OctopusStory:\r
-                    config = GetMetadataProvider<OctopusMetadata>();\r
+                    config = MetadataProvider.Get<OctopusMetadata>(Providers);\r
                     if (config == null)\r
                         return;\r
                     tabMetadata.SelectedIndex = 0;\r
index 2bfd215edf4516a53394f73dcd135e7ac9938a55..0f67f4e7bc1a56c5858bbcb958d5a2f8a4563f0d 100644 (file)
       <Project>{cefd0348-ded4-453e-bf3a-0b52f8890ab3}</Project>\r
       <Name>MediaCubeClient</Name>\r
     </ProjectReference>\r
+    <ProjectReference Include="..\NativeOctopusClient\NativeOctopusClient.csproj">\r
+      <Project>{c1a664be-7852-4418-bf33-6f59434fc5dc}</Project>\r
+      <Name>NativeOctopusClient</Name>\r
+    </ProjectReference>\r
     <ProjectReference Include="..\OctopusClient\OctopusClient.csproj">\r
       <Project>{8CC7C930-9DBF-487B-AED5-776937A649D5}</Project>\r
       <Name>OctopusClient</Name>\r
similarity index 94%
rename from client/NativeOctopusClient/OctopusAPI.cs
rename to client/NativeOctopusClient/NativeOctopusAPI.cs
index f66972f5db168ab6c4625d3951d099581f39f366..1bf20a358e501344f9fbb41b56eebffc8f443eed 100644 (file)
@@ -17,7 +17,7 @@ namespace NativeOctopusClient {
         public string FormattedStart { get; set; }\r
         public int? StoryPosition { get; set; }\r
         public override String ToString() {\r
-            string displayName = Name?.ToString() ?? OctopusAPI.UNNAMED;\r
+            string displayName = Name?.ToString() ?? NativeOctopusAPI.UNNAMED;\r
             return "0".Equals(ID) ? displayName : String.Format($"{FormattedStart} {displayName} ");\r
         }\r
     }\r
@@ -35,7 +35,7 @@ namespace NativeOctopusClient {
         public Rundown[] Rundowns { get; set; }\r
 \r
         public override String ToString() {\r
-            string displayName = Name?.ToString() ?? OctopusAPI.UNNAMED;\r
+            string displayName = Name?.ToString() ?? NativeOctopusAPI.UNNAMED;\r
             return "0".Equals(ID) ? displayName : String.Format($"{ID} {displayName} ");\r
         }\r
     }\r
@@ -53,12 +53,12 @@ namespace NativeOctopusClient {
         public string Name { get; set; }\r
         public int? StoryPosition { get; set; }\r
         public override String ToString() {\r
-            string displayName = Name?.ToString() ?? OctopusAPI.UNNAMED;\r
+            string displayName = Name?.ToString() ?? NativeOctopusAPI.UNNAMED;\r
             return "0".Equals(ID) ? displayName : String.Format($"{ID} {displayName} ");\r
         }\r
     }\r
 \r
-    public class OctopusAPI {\r
+    public class NativeOctopusAPI {\r
         private static Logger logger = LogManager.GetCurrentClassLogger();\r
         public const string UNNAMED = "<üres>";\r
         private const string ID = "id";\r
@@ -67,7 +67,7 @@ namespace NativeOctopusClient {
         private string pwd;\r
         private IMessageBus messageBus;\r
 \r
-        public OctopusAPI(string address, string user, string pwd, int timeout, IMessageBus messageBus) {\r
+        public NativeOctopusAPI(string address, string user, string pwd, int timeout, IMessageBus messageBus) {\r
             this.user = user;\r
             this.pwd = pwd;\r
             client = new RestClient(address) {\r
@@ -272,7 +272,7 @@ namespace NativeOctopusClient {
                 result = resultObject.Children().Select(d => {\r
                     StoryFolder r = new StoryFolder {\r
                         ID = d[ID].ToString(),\r
-                        Name = String.IsNullOrEmpty(d["name"].ToString()) ? OctopusAPI.UNNAMED : d["name"].ToString()\r
+                        Name = String.IsNullOrEmpty(d["name"].ToString()) ? NativeOctopusAPI.UNNAMED : d["name"].ToString()\r
                     };\r
 \r
                     //logger.Debug($"{r}");\r
@@ -321,7 +321,7 @@ namespace NativeOctopusClient {
         private void OnError(Exception e) {\r
             logger.Error(e);\r
             if (messageBus != null)\r
-                messageBus.Send(new OctopusAPIMessage("Sikertelen MediaCube OCTOPUS lekérdezés. Rendszerüzenet: " + e.Message));\r
+                messageBus.Send(new NativeOctopusAPIMessage("Sikertelen OCTOPUS lekérdezés. Rendszerüzenet: " + e.Message));\r
         }\r
 \r
         private static IEnumerable<MosObject> GetMosObjectsFromStory(JToken d) {\r
index f3622f1a287d7e0cb99c7f531b9c99051ca01be0..aa8e87c1f5559cdc40b92b516cf2a7850e917f70 100644 (file)
     <Reference Include="System.Xml" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <Compile Include="OctopusAPI.cs" />\r
-    <Compile Include="OctopusIDSelector.cs">\r
+    <Compile Include="NativeOctopusAPI.cs" />\r
+    <Compile Include="NativeOctopusIDSelector.cs">\r
       <SubType>UserControl</SubType>\r
     </Compile>\r
-    <Compile Include="OctopusIDSelector.Designer.cs">\r
-      <DependentUpon>OctopusIDSelector.cs</DependentUpon>\r
+    <Compile Include="NativeOctopusIDSelector.Designer.cs">\r
+      <DependentUpon>NativeOctopusIDSelector.cs</DependentUpon>\r
     </Compile>\r
-    <Compile Include="OctopusParameters.cs" />\r
+    <Compile Include="NativeOctopusParameters.cs" />\r
     <Compile Include="Properties\AssemblyInfo.cs" />\r
     <Compile Include="Properties\Resources.Designer.cs">\r
       <AutoGen>True</AutoGen>\r
@@ -74,8 +74,8 @@
     </Compile>\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="OctopusIDSelector.resx">\r
-      <DependentUpon>OctopusIDSelector.cs</DependentUpon>\r
+    <EmbeddedResource Include="NativeOctopusIDSelector.resx">\r
+      <DependentUpon>NativeOctopusIDSelector.cs</DependentUpon>\r
     </EmbeddedResource>\r
     <EmbeddedResource Include="Properties\Resources.resx">\r
       <Generator>ResXFileCodeGenerator</Generator>\r
similarity index 97%
rename from client/NativeOctopusClient/OctopusIDSelector.Designer.cs
rename to client/NativeOctopusClient/NativeOctopusIDSelector.Designer.cs
index 87fa1d11d9e036274930bb2212c4226e8cafe1cd..961235ec6b0ac56a3e64227b3c672abcb57cafbb 100644 (file)
@@ -1,7 +1,7 @@
 using MaestroShared.Controls;\r
 \r
 namespace NativeOctopusClient {\r
-    partial class OctopusIDSelector {\r
+    partial class NativeOctopusIDSelector {\r
         /// <summary> \r
         /// Required designer variable.\r
         /// </summary>\r
similarity index 93%
rename from client/NativeOctopusClient/OctopusIDSelector.cs
rename to client/NativeOctopusClient/NativeOctopusIDSelector.cs
index 2dca42d21e2f982c4aba8470e8ef91d168ae75f7..5e75c2c07ab096456bd5817c6c42d1074a372c57 100644 (file)
@@ -4,29 +4,29 @@ using System.Linq;
 using System.Windows.Forms;\r
 using System.Collections.Generic;\r
 using System.Runtime.InteropServices;\r
-using LinkDotNet.MessageHandling.Contracts;\r
 using MaestroShared.Configuration;\r
 using MaestroShared.Commons;\r
+using MaestroShared.MessageBus;\r
 \r
 namespace NativeOctopusClient {\r
     public delegate void OnSelectedIDChanged(string id, string name, string text);\r
 \r
-    public partial class OctopusIDSelector : UserControl {\r
+    public partial class NativeOctopusIDSelector : UserControl {\r
         private static Logger logger = LogManager.GetCurrentClassLogger();\r
         private static readonly string ZERO = "0";\r
         private string lookupStoryId;\r
         private string lookupPlaceHolderId;\r
         private TreeNode selectedNode;\r
-        private OctopusAPI client;\r
+        private NativeOctopusAPI client;\r
         public OnSelectedIDChanged IDChangedEvent { get; set; }\r
-        private OctopusParameters parameters;\r
+        private NativeOctopusParameters parameters;\r
         private bool refreshDisabled;\r
 \r
-        public OctopusParameters Parameters {\r
+        public NativeOctopusParameters Parameters {\r
             set {\r
                 parameters = value;\r
                 treeOctopus.DisableCheckBoxLevels = new[] { parameters.Configuration.DisableStoryCheck, parameters.Configuration.DisablePlaceHolderCheck };\r
-                client = new OctopusAPI(value.Configuration.Server.Address.OriginalString, value.Configuration.Server.UserName, value.Configuration.Server.Password, value.Configuration.Server.Timeout, value.MessageBus);\r
+                client = new NativeOctopusAPI(value.Configuration.Server.Address.OriginalString, value.Configuration.Server.UserName, value.Configuration.Server.Password, value.Configuration.Server.Timeout, value.MessageBus);\r
                 rbRundown.Checked = true;\r
                 RefreshFolders();\r
             }\r
@@ -55,7 +55,7 @@ namespace NativeOctopusClient {
         [DllImport("user32.dll", CharSet = CharSet.Auto)]\r
         private static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, ref TVITEM lParam);\r
 \r
-        public OctopusIDSelector() {\r
+        public NativeOctopusIDSelector() {\r
             InitializeComponent();\r
             InitializeControls();\r
             treeOctopus.AfterCheck += OnTreeAfterCheck;\r
@@ -100,7 +100,7 @@ namespace NativeOctopusClient {
                 return;\r
             treeOctopus.BeginUpdate();\r
             foreach (var story in sortedStories) {\r
-                string name = story.Name == null ? OctopusAPI.UNNAMED : story.Name;\r
+                string name = story.Name == null ? NativeOctopusAPI.UNNAMED : story.Name;\r
                 //String ID = isFolderView ? story.ID : story.ParentStoryID;\r
                 string label = String.Empty;\r
                     string parentStoryID = story.ParentStoryID;\r
@@ -188,7 +188,7 @@ namespace NativeOctopusClient {
                 IDChangedEvent?.Invoke(null, null, null);\r
         }\r
 \r
-        public OctopusAPI GetClient() {\r
+        public NativeOctopusAPI GetClient() {\r
             return client;\r
         }\r
 \r
@@ -405,10 +405,8 @@ namespace NativeOctopusClient {
         }\r
     }\r
 \r
-    public class OctopusAPIMessage : IMessage {\r
-        public OctopusAPIMessage(string message) {\r
-            Content = message;\r
+    public class NativeOctopusAPIMessage : MaestroMessage {\r
+        public NativeOctopusAPIMessage(string message) : base(message) {\r
         }\r
-        public string Content { get; set; }\r
     }\r
 }\r
similarity index 84%
rename from client/NativeOctopusClient/OctopusParameters.cs
rename to client/NativeOctopusClient/NativeOctopusParameters.cs
index 9d77963a19773e9ed12c0e26f64f641ff62dfae5..ead7d2d47215f1ae5c494aa9896f99a27889c182 100644 (file)
@@ -2,7 +2,7 @@
 using MaestroShared.Configuration;\r
 \r
 namespace NativeOctopusClient {\r
-    public class OctopusParameters {\r
+    public class NativeOctopusParameters {\r
         public OctopusMetadata Configuration { get; set; }\r
         public string UserName { get; set; }\r
         public IMessageBus MessageBus { get; set; }\r
index 92cf8f8c84dff7e814749724baade4f063d912d9..a9f333b24316aa02b8a64f123dd299f82ed91e28 100644 (file)
@@ -7,6 +7,7 @@ using System.Runtime.InteropServices;
 using LinkDotNet.MessageHandling.Contracts;\r
 using MaestroShared.Configuration;\r
 using MaestroShared.Commons;\r
+using MaestroShared.MessageBus;\r
 \r
 namespace OctopusClient {\r
     public delegate void OnSelectedIDChanged(string id, string name, string text);\r
@@ -405,10 +406,8 @@ namespace OctopusClient {
         }\r
     }\r
 \r
-    public class OctopusAPIMessage : IMessage {\r
-        public OctopusAPIMessage(string message) {\r
-            Content = message;\r
+    public class OctopusAPIMessage : MaestroMessage {\r
+        public OctopusAPIMessage(string message) : base(message) {\r
         }\r
-        public string Content { get; set; }\r
     }\r
 }\r
index 87f85fb556c73acd4598f35d849c4d3eb228bbdf..37f7a1d43d746374d4f2e21deebd24adb57541e3 100644 (file)
@@ -6,6 +6,7 @@ using LinkDotNet.MessageHandling.Contracts;
 using MaestroShared.Commons;\r
 using MaestroShared.Configuration;\r
 using System.Text.RegularExpressions;\r
+using MaestroShared.MessageBus;\r
 \r
 namespace TrafficClient {\r
     public delegate void OnSelectedIDChanged(string ID, int variantID, string text);\r
@@ -273,10 +274,8 @@ namespace TrafficClient {
         public bool OK { get; set; }\r
     }\r
 \r
-    public class TrafficAPIMessage : IMessage {\r
-        public TrafficAPIMessage(string message) {\r
-            Content = message;\r
+    public class TrafficAPIMessage : MaestroMessage {\r
+        public TrafficAPIMessage(string message) : base(message) {\r
         }\r
-        public string Content { get; set; }\r
     }\r
 }\r