git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Wed, 21 Oct 2020 18:25:19 +0000 (18:25 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Wed, 21 Oct 2020 18:25:19 +0000 (18:25 +0000)
23 files changed:
client/DxPlay/PlayerGraph.cs
client/DxPlay/Properties/AssemblyInfo.cs
client/Maestro/Configuration/configuration.json
client/Maestro/MaestroForm.Source.cs
client/Maestro/Properties/AssemblyInfo.cs
client/MaestroShared/Commons/MsgBox.cs
client/MaestroShared/Commons/TopMostMessageBox.cs [new file with mode: 0644]
client/MaestroShared/Configuration/ConfigurationInfo.cs
client/MaestroShared/MaestroShared.csproj
client/MaestroShared/Properties/AssemblyInfo.cs
client/MediaCube.sln
client/MediaCubeApiTest/MediaCubeApiTest.vbproj [new file with mode: 0644]
client/MediaCubeApiTest/Module1.vb [new file with mode: 0644]
client/MediaCubeApiTest/My Project/Application.Designer.vb [new file with mode: 0644]
client/MediaCubeApiTest/My Project/Application.myapp [new file with mode: 0644]
client/MediaCubeApiTest/My Project/AssemblyInfo.vb [new file with mode: 0644]
client/MediaCubeApiTest/My Project/Resources.Designer.vb [new file with mode: 0644]
client/MediaCubeApiTest/My Project/Resources.resx [new file with mode: 0644]
client/MediaCubeApiTest/My Project/Settings.Designer.vb [new file with mode: 0644]
client/MediaCubeApiTest/My Project/Settings.settings [new file with mode: 0644]
client/MediaCubeApiTest/app.config [new file with mode: 0644]
client/MediaCubeClient/MediaCubeStrings.cs
client/MediaCubeClient/MediaCubeWSApi.cs

index 4c2391a28f6276473a276508ec776885f1afe34a..7a8b0503151566a8e0b10d6bd87142f3b82eba17 100644 (file)
@@ -40,8 +40,9 @@ namespace DxPlay {
                     EnableDeinterlace(videoDecoder);\r
                     IBaseFilter sampleGrabber = AddSampleGrabber(graphBuilder, videoDecoder);\r
                     SampleGrabber = (ISampleGrabber)sampleGrabber;\r
-                    //IBaseFilter videoRenderer = AddRenderer(graphBuilder, sampleGrabber, handle);\r
-                    IBaseFilter videoRenderer = AddSimpleRenderer(graphBuilder, sampleGrabber, handle);\r
+                    //IBaseFilter videoRenderer = AddRenderer(graphBuilder, sampleGrabber);\r
+                    //IBaseFilter videoRenderer = AddSimpleRenderer(graphBuilder, sampleGrabber);\r
+                    //IBaseFilter videoRenderer = AddEVRRenderer(graphBuilder, sampleGrabber);\r
                     FilterGraphTools.RenderPin(graphBuilder, sampleGrabber, "Output");\r
                     ConfigureSimpleRenderer(handle);\r
 \r
@@ -88,7 +89,7 @@ namespace DxPlay {
             return audioDecoder;\r
         }\r
 \r
-        private IBaseFilter AddRenderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber, IntPtr handle) {\r
+        private IBaseFilter AddRenderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber) {\r
             logger.Debug("Add VideoMixingRenderer9 to graph");\r
             IBaseFilter videoRenderer = (IBaseFilter)new VideoMixingRenderer9();\r
             DsError.ThrowExceptionForHR(graphBuilder.AddFilter(videoRenderer, "Video Mixing Renderer 9"));\r
@@ -105,7 +106,7 @@ namespace DxPlay {
                 logger.Error(e);\r
                 graphBuilder.RemoveFilter(videoRenderer);\r
                 logger.Info("Trying default VideoRenderer instead Video Mixing Renderer 9");\r
-                AddSimpleRenderer(graphBuilder, sampleGrabber, handle);\r
+                AddSimpleRenderer(graphBuilder, sampleGrabber);\r
             }\r
 \r
             return videoRenderer;\r
@@ -130,13 +131,20 @@ namespace DxPlay {
             DsError.ThrowExceptionForHR(hr);\r
         }\r
 \r
-        private IBaseFilter AddSimpleRenderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber, IntPtr handle) {\r
+        private IBaseFilter AddSimpleRenderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber) {\r
             logger.Debug("Add default VideoRenderer to graph");\r
             IBaseFilter videoRenderer = (IBaseFilter)new VideoRendererDefault();\r
             DsError.ThrowExceptionForHR(graphBuilder.AddFilter(videoRenderer, "VideoRendererDefault"));\r
             //FilterGraphTools.ConnectFilters(graphBuilder, sampleGrabber, "Output", videoRenderer, "VMR Input0", true);\r
             return videoRenderer;\r
         }\r
+        private IBaseFilter AddEVRRenderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber) {\r
+            logger.Debug("Add EVR VideoRenderer to graph");\r
+            IBaseFilter videoRenderer = (IBaseFilter)new EnhancedVideoRenderer();\r
+            DsError.ThrowExceptionForHR(graphBuilder.AddFilter(videoRenderer, "EnhancedVideoRenderer"));\r
+            //FilterGraphTools.ConnectFilters(graphBuilder, sampleGrabber, "Output", videoRenderer, "VMR Input0", true);\r
+            return videoRenderer;\r
+        }\r
 \r
         private IBaseFilter AddSampleGrabber(IGraphBuilder graphBuilder, IBaseFilter videoDecoder) {\r
             logger.Debug("Add SampleGrabber to graph");\r
index 067dc019f21d835cfa7d4e1de4abfa7690479d6b..6816984a77ccbd9eb13a7bc35bcf750aa7690a69 100644 (file)
@@ -26,7 +26,7 @@ using System.Runtime.CompilerServices;
 // You can specify all the values or you can default the Revision and Build Numbers \r
 // by using the '*' as shown below:\r
 \r
-[assembly: AssemblyVersion("2.0.9.0")]\r
+[assembly: AssemblyVersion("2.0.9.1")]\r
 \r
 //\r
 // In order to sign your assembly you must specify a key to use. Refer to the \r
@@ -56,5 +56,5 @@ using System.Runtime.CompilerServices;
 [assembly: AssemblyDelaySign(false)]\r
 [assembly: AssemblyKeyFile("")]\r
 [assembly: AssemblyKeyName("")]\r
-[assembly: AssemblyFileVersion("2.0.9.0")]\r
+[assembly: AssemblyFileVersion("2.0.9.1")]\r
 \r
index 05e339a122bacc2b56e20f5a23627341a6cd799b..49934f32db169fc2922a1c545de9850fc78bc5bc 100644 (file)
     "filter": "avi,wav,mxf,mts",\r
     "useAlternateCopy": true,\r
     "autoTarget": "AUTOTARGET",\r
+    "autoTags": [ "AUTOTAG" ],\r
     "local": {\r
-      "address": "file://f:/Clip",\r
-      "userName": "mediacube",\r
-      "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
-      "timeout": 1000\r
-    },\r
-    "remote": {\r
-      "address": "ftp://10.10.1.105/TESZT/TC",\r
+      "address": "file://c:/_XDCAM/Clip",\r
       "userName": "mediacube",\r
       "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
       "timeout": 1000\r
index 2815a8b4bea78ec0db6b6c9301b925c3e4ba608f..e51b6464348097e70133094d12a09befe1f88a2e 100644 (file)
@@ -88,6 +88,8 @@ namespace Maestro {
         }\r
 \r
         private void MaestroForm_OnListReadCompleted(string[] files) {\r
+            logger.Info("Checking AUTOTARGET");\r
+\r
             //nem UNC forras\r
             if (!(Configuration?.Source is UNCSource))\r
                 return;\r
@@ -165,6 +167,7 @@ namespace Maestro {
                 try {\r
                     //mxf metadata + duration\r
                     ArchiveMetadata metadata = MXFMetadataReader.Read(file, true);\r
+                    metadata.tags = Configuration?.Source?.AutoTags;\r
                     metadata.itemHouseId = itemHouseId;\r
                     metadata.mediaHouseId = metadata.mediaTitle;\r
                     metadata.mediaTitle = sourceItem.FileInfo.Name;\r
index 0b1304004f866ec52622360b3f6b871fc5083a7d..0d9faa6ee04ad220eb4921255c109252db51781c 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.1.0.9")]\r
-[assembly: AssemblyFileVersion("2.1.0.9")]\r
+[assembly: AssemblyVersion("2.1.1.0")]\r
+[assembly: AssemblyFileVersion("2.1.1.0")]\r
index 7aa333bea33021cc6684d6081cc68aae6582279e..5a9d369a9a1d291687e96540d14e7f529881aaa7 100644 (file)
@@ -6,23 +6,23 @@ namespace MaestroShared.Commons {
         private static InputForm inputForm;\r
 \r
         public static void Info(string text) {\r
-            MessageBox.Show(text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information);\r
+            TopMostMessageBox.Show(text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information);\r
         }\r
 \r
         public static void Error(string text) {\r
-            MessageBox.Show(text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Error);\r
+            TopMostMessageBox.Show(text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Error);\r
         }\r
 \r
         public static void Warning(string text) {\r
-            MessageBox.Show(text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
+            TopMostMessageBox.Show(text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
         }\r
 \r
         public static void Exclamation(string text) {\r
-            MessageBox.Show(text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);\r
+            TopMostMessageBox.Show(text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);\r
         }\r
 \r
         public static bool YesNoQuestion(string text) {\r
-            return MessageBox.Show(text, string.Empty, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes;\r
+            return TopMostMessageBox.Show(text, string.Empty, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes;\r
         }\r
         public static string InputBox(string label) {\r
             if (inputForm == null)\r
diff --git a/client/MaestroShared/Commons/TopMostMessageBox.cs b/client/MaestroShared/Commons/TopMostMessageBox.cs
new file mode 100644 (file)
index 0000000..9679d80
--- /dev/null
@@ -0,0 +1,43 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using System.Threading.Tasks;\r
+using System.Windows.Forms;\r
+\r
+namespace MaestroShared.Commons {\r
+    static public class TopMostMessageBox {\r
+        static public DialogResult Show(string message) {\r
+            return Show(message, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information);\r
+        }\r
+\r
+        static public DialogResult Show(string message, string title) {\r
+            return Show(message, title, MessageBoxButtons.OK, MessageBoxIcon.Information);\r
+        }\r
+\r
+        static public DialogResult Show(string message, string title,\r
+            MessageBoxButtons buttons, MessageBoxIcon icon) {\r
+            // Create a host form that is a TopMost window which will be the \r
+            // parent of the MessageBox.\r
+            Form topmostForm = new Form();\r
+            // We do not want anyone to see this window so position it off the \r
+            // visible screen and make it as small as possible\r
+            topmostForm.Size = new System.Drawing.Size(1, 1);\r
+            topmostForm.StartPosition = FormStartPosition.Manual;\r
+            System.Drawing.Rectangle rect = SystemInformation.VirtualScreen;\r
+            topmostForm.Location = new System.Drawing.Point(rect.Bottom + 10,\r
+                rect.Right + 10);\r
+            topmostForm.Show();\r
+            // Make this form the active form and make it TopMost\r
+            topmostForm.Focus();\r
+            topmostForm.BringToFront();\r
+            topmostForm.TopMost = true;\r
+            // Finally show the MessageBox with the form just created as its owner\r
+            DialogResult result = MessageBox.Show(topmostForm, message, title,\r
+                buttons, icon);\r
+            topmostForm.Dispose(); // clean it up all the way\r
+\r
+            return result;\r
+        }\r
+    }\r
+}\r
index 3cf7a3643caea5db43cafe1daab992c2b86b667e..be37e78987e64feb1df63054912ba0839a81babe 100644 (file)
@@ -144,6 +144,8 @@ namespace MaestroShared.Configuration {
         public Connection Remote { get; set; }\r
         public string Filter { get; set; }\r
         public string AutoTarget { get; set; }\r
+        public string[] AutoTags { get; set; }\r
+\r
     }\r
 \r
     public class UNCSource : Source {\r
index a5f4b2797235c81599fd958a07a228c534d198bb..d66f3880ae8044dfcc9938ff5206d2b57ec5a75f 100644 (file)
@@ -96,6 +96,7 @@
     <Compile Include="Commons\ObjectExtensions.cs" />\r
     <Compile Include="Commons\PatternNameMaker.cs" />\r
     <Compile Include="Commons\StringExtensions.cs" />\r
+    <Compile Include="Commons\TopMostMessageBox.cs" />\r
     <Compile Include="Commons\Win32File.cs" />\r
     <Compile Include="Configuration\ConfigurationInfo.cs" />\r
     <Compile Include="Configuration\KeysColorConverter.cs" />\r
index fe815e632c232bd96297409e1dff2f483e98a68f..44a99e1f9d54912d5a7f9d08bff173cb6c444fb7 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.1.0.5")]\r
-[assembly: AssemblyFileVersion("2.1.0.5")]\r
+[assembly: AssemblyVersion("2.1.0.6")]\r
+[assembly: AssemblyFileVersion("2.1.0.6")]\r
index b7397f5a9e3e963d0124ef1219b8f2ebb2a5bbf7..0fe27c6b39a74edabd5bc51801aff5df78448b42 100644 (file)
@@ -1,6 +1,6 @@
 Microsoft Visual Studio Solution File, Format Version 12.00\r
-# Visual Studio 15\r
-VisualStudioVersion = 15.0.27004.2010\r
+# Visual Studio Version 16\r
+VisualStudioVersion = 16.0.29905.134\r
 MinimumVisualStudioVersion = 10.0.40219.1\r
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DxPlay", "DxPlay\DxPlay.csproj", "{0B44B3D7-52D7-4C0E-9B1C-F48CEEDA36FE}"\r
 EndProject\r
@@ -34,6 +34,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{B29016BD-2
 EndProject\r
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NativeOctopusClient", "NativeOctopusClient\NativeOctopusClient.csproj", "{C1A664BE-7852-4418-BF33-6F59434FC5DC}"\r
 EndProject\r
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "MediaCubeApiTest", "MediaCubeApiTest\MediaCubeApiTest.vbproj", "{912B247F-B2ED-4A2F-A464-FCAA265EB415}"\r
+EndProject\r
 Global\r
        GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
                Debug|Any CPU = Debug|Any CPU\r
@@ -146,6 +148,14 @@ Global
                {C1A664BE-7852-4418-BF33-6F59434FC5DC}.Release|Any CPU.Build.0 = Release|Any CPU\r
                {C1A664BE-7852-4418-BF33-6F59434FC5DC}.Release|x64.ActiveCfg = Release|x64\r
                {C1A664BE-7852-4418-BF33-6F59434FC5DC}.Release|x64.Build.0 = Release|x64\r
+               {912B247F-B2ED-4A2F-A464-FCAA265EB415}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {912B247F-B2ED-4A2F-A464-FCAA265EB415}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {912B247F-B2ED-4A2F-A464-FCAA265EB415}.Debug|x64.ActiveCfg = Debug|Any CPU\r
+               {912B247F-B2ED-4A2F-A464-FCAA265EB415}.Debug|x64.Build.0 = Debug|Any CPU\r
+               {912B247F-B2ED-4A2F-A464-FCAA265EB415}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {912B247F-B2ED-4A2F-A464-FCAA265EB415}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {912B247F-B2ED-4A2F-A464-FCAA265EB415}.Release|x64.ActiveCfg = Release|Any CPU\r
+               {912B247F-B2ED-4A2F-A464-FCAA265EB415}.Release|x64.Build.0 = Release|Any CPU\r
        EndGlobalSection\r
        GlobalSection(SolutionProperties) = preSolution\r
                HideSolutionNode = FALSE\r
diff --git a/client/MediaCubeApiTest/MediaCubeApiTest.vbproj b/client/MediaCubeApiTest/MediaCubeApiTest.vbproj
new file mode 100644 (file)
index 0000000..738f784
--- /dev/null
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProjectGuid>{912B247F-B2ED-4A2F-A464-FCAA265EB415}</ProjectGuid>\r
+    <OutputType>Exe</OutputType>\r
+    <StartupObject>MediaCubeApiTest.Module1</StartupObject>\r
+    <RootNamespace>MediaCubeApiTest</RootNamespace>\r
+    <AssemblyName>MediaCubeApiTest</AssemblyName>\r
+    <FileAlignment>512</FileAlignment>\r
+    <MyType>Console</MyType>\r
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>\r
+    <Deterministic>true</Deterministic>\r
+    <TargetFrameworkProfile />\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <PlatformTarget>AnyCPU</PlatformTarget>\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <DefineDebug>true</DefineDebug>\r
+    <DefineTrace>true</DefineTrace>\r
+    <OutputPath>bin\Debug\</OutputPath>\r
+    <DocumentationFile>MediaCubeApiTest.xml</DocumentationFile>\r
+    <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>\r
+    <Prefer32Bit>false</Prefer32Bit>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <PlatformTarget>AnyCPU</PlatformTarget>\r
+    <DebugType>pdbonly</DebugType>\r
+    <DefineDebug>false</DefineDebug>\r
+    <DefineTrace>true</DefineTrace>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>bin\Release\</OutputPath>\r
+    <DocumentationFile>MediaCubeApiTest.xml</DocumentationFile>\r
+    <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>\r
+    <Prefer32Bit>false</Prefer32Bit>\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <OptionExplicit>On</OptionExplicit>\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <OptionCompare>Binary</OptionCompare>\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <OptionStrict>Off</OptionStrict>\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <OptionInfer>On</OptionInfer>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="LinkDotNet.MessageHandling">\r
+      <HintPath>api\LinkDotNet.MessageHandling.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="LinkDotNet.MessageHandling.Contracts, Version=0.2.0.0, Culture=neutral, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>api\LinkDotNet.MessageHandling.Contracts.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="MaestroShared, Version=2.1.0.6, Culture=neutral, PublicKeyToken=null" />\r
+    <Reference Include="MediaCubeClient, Version=1.0.0.3, Culture=neutral, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>api\MediaCubeClient.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>api\Newtonsoft.Json.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Deployment" />\r
+    <Reference Include="System.Xml" />\r
+    <Reference Include="System.Core" />\r
+    <Reference Include="System.Xml.Linq" />\r
+    <Reference Include="System.Data.DataSetExtensions" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Import Include="Microsoft.VisualBasic" />\r
+    <Import Include="System" />\r
+    <Import Include="System.Collections" />\r
+    <Import Include="System.Collections.Generic" />\r
+    <Import Include="System.Data" />\r
+    <Import Include="System.Diagnostics" />\r
+    <Import Include="System.Linq" />\r
+    <Import Include="System.Xml.Linq" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="Module1.vb" />\r
+    <Compile Include="My Project\AssemblyInfo.vb" />\r
+    <Compile Include="My Project\Application.Designer.vb">\r
+      <AutoGen>True</AutoGen>\r
+      <DependentUpon>Application.myapp</DependentUpon>\r
+    </Compile>\r
+    <Compile Include="My Project\Resources.Designer.vb">\r
+      <AutoGen>True</AutoGen>\r
+      <DesignTime>True</DesignTime>\r
+      <DependentUpon>Resources.resx</DependentUpon>\r
+    </Compile>\r
+    <Compile Include="My Project\Settings.Designer.vb">\r
+      <AutoGen>True</AutoGen>\r
+      <DependentUpon>Settings.settings</DependentUpon>\r
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>\r
+    </Compile>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <EmbeddedResource Include="My Project\Resources.resx">\r
+      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>\r
+      <LastGenOutput>Resources.Designer.vb</LastGenOutput>\r
+      <CustomToolNamespace>My.Resources</CustomToolNamespace>\r
+      <SubType>Designer</SubType>\r
+    </EmbeddedResource>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="app.config" />\r
+    <None Include="My Project\Application.myapp">\r
+      <Generator>MyApplicationCodeGenerator</Generator>\r
+      <LastGenOutput>Application.Designer.vb</LastGenOutput>\r
+    </None>\r
+    <None Include="My Project\Settings.settings">\r
+      <Generator>SettingsSingleFileGenerator</Generator>\r
+      <CustomToolNamespace>My</CustomToolNamespace>\r
+      <LastGenOutput>Settings.Designer.vb</LastGenOutput>\r
+    </None>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Content Include="api\FluentFTP.dll" />\r
+    <Content Include="api\LinkDotNet.MessageHandling.Contracts.dll" />\r
+    <Content Include="api\MaestroShared.dll" />\r
+    <Content Include="api\MediaCubeClient.dll" />\r
+    <Content Include="api\Newtonsoft.Json.dll" />\r
+    <Content Include="api\NLog.dll" />\r
+    <Content Include="api\RestSharp.dll" />\r
+    <Content Include="api\websocket-sharp.dll" />\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />\r
+</Project>
\ No newline at end of file
diff --git a/client/MediaCubeApiTest/Module1.vb b/client/MediaCubeApiTest/Module1.vb
new file mode 100644 (file)
index 0000000..bdcbeac
--- /dev/null
@@ -0,0 +1,28 @@
+Imports LinkDotNet.MessageHandling.Contracts\r
+Imports MaestroShared.Configuration\r
+Imports MediaCubeClient\r
+Imports Newtonsoft.Json.Linq\r
+\r
+Module Module1\r
+\r
+    Sub Main()\r
+        Dim messageBus As IMessageBus = New LinkDotNet.MessageHandling.MessageBus()\r
+\r
+        Dim writeline = Sub(x As MediaCubeWSMessage)\r
+                            Console.WriteLine(x.Content)\r
+                        End Sub\r
+\r
+\r
+        messageBus.Subscribe(Of MediaCubeWSMessage)(writeline)\r
+\r
+        Dim connection As Connection = New Connection()\r
+        connection.Address = New Uri("ws://192.168.0.10/services/wsapi")\r
+        connection.Timeout = 1000\r
+        Dim api As MediaCubeWSApi = New MediaCubeWSApi(connection, messageBus)\r
+        Dim Data As JObject = New JObject()\r
+        Data.Add("param", 1)\r
+        api.SubmitJob("cancelable.xml", "teszt név", Data)\r
+\r
+    End Sub\r
+\r
+End Module\r
diff --git a/client/MediaCubeApiTest/My Project/Application.Designer.vb b/client/MediaCubeApiTest/My Project/Application.Designer.vb
new file mode 100644 (file)
index 0000000..db8b8b3
--- /dev/null
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------\r
+' <auto-generated>\r
+'     This code was generated by a tool.\r
+'     Runtime Version:4.0.30319.42000\r
+'\r
+'     Changes to this file may cause incorrect behavior and will be lost if\r
+'     the code is regenerated.\r
+' </auto-generated>\r
+'------------------------------------------------------------------------------\r
+\r
+Option Strict On\r
+Option Explicit On\r
+\r
diff --git a/client/MediaCubeApiTest/My Project/Application.myapp b/client/MediaCubeApiTest/My Project/Application.myapp
new file mode 100644 (file)
index 0000000..23b627f
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">\r
+  <MySubMain>false</MySubMain>\r
+  <SingleInstance>false</SingleInstance>\r
+  <ShutdownMode>0</ShutdownMode>\r
+  <EnableVisualStyles>true</EnableVisualStyles>\r
+  <AuthenticationMode>0</AuthenticationMode>\r
+  <ApplicationType>2</ApplicationType>\r
+  <SaveMySettingsOnExit>true</SaveMySettingsOnExit>\r
+</MyApplicationData>\r
diff --git a/client/MediaCubeApiTest/My Project/AssemblyInfo.vb b/client/MediaCubeApiTest/My Project/AssemblyInfo.vb
new file mode 100644 (file)
index 0000000..3b7f7c6
--- /dev/null
@@ -0,0 +1,35 @@
+Imports System\r
+Imports System.Reflection\r
+Imports System.Runtime.InteropServices\r
+\r
+' General Information about an assembly is controlled through the following\r
+' set of attributes. Change these attribute values to modify the information\r
+' associated with an assembly.\r
+\r
+' Review the values of the assembly attributes\r
+\r
+<Assembly: AssemblyTitle("MediaCubeApiTest")>\r
+<Assembly: AssemblyDescription("")>\r
+<Assembly: AssemblyCompany("")>\r
+<Assembly: AssemblyProduct("MediaCubeApiTest")>\r
+<Assembly: AssemblyCopyright("Copyright ©  2020")>\r
+<Assembly: AssemblyTrademark("")>\r
+\r
+<Assembly: ComVisible(False)>\r
+\r
+'The following GUID is for the ID of the typelib if this project is exposed to COM\r
+<Assembly: Guid("401b0552-ecca-4fcc-853a-a4675647b211")>\r
+\r
+' Version information for an assembly consists of the following four values:\r
+'\r
+'      Major Version\r
+'      Minor Version\r
+'      Build Number\r
+'      Revision\r
+'\r
+' 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
+\r
+<Assembly: AssemblyVersion("1.0.0.0")>\r
+<Assembly: AssemblyFileVersion("1.0.0.0")>\r
diff --git a/client/MediaCubeApiTest/My Project/Resources.Designer.vb b/client/MediaCubeApiTest/My Project/Resources.Designer.vb
new file mode 100644 (file)
index 0000000..123792d
--- /dev/null
@@ -0,0 +1,63 @@
+'------------------------------------------------------------------------------\r
+' <auto-generated>\r
+'     This code was generated by a tool.\r
+'     Runtime Version:4.0.30319.42000\r
+'\r
+'     Changes to this file may cause incorrect behavior and will be lost if\r
+'     the code is regenerated.\r
+' </auto-generated>\r
+'------------------------------------------------------------------------------\r
+\r
+Option Strict On\r
+Option Explicit On\r
+\r
+Imports System\r
+\r
+Namespace My.Resources\r
+    \r
+    'This class was auto-generated by the StronglyTypedResourceBuilder\r
+    'class via a tool like ResGen or Visual Studio.\r
+    'To add or remove a member, edit your .ResX file then rerun ResGen\r
+    'with the /str option, or rebuild your VS project.\r
+    '''<summary>\r
+    '''  A strongly-typed resource class, for looking up localized strings, etc.\r
+    '''</summary>\r
+    <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"),  _\r
+     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _\r
+     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(),  _\r
+     Global.Microsoft.VisualBasic.HideModuleNameAttribute()>  _\r
+    Friend Module Resources\r
+        \r
+        Private resourceMan As Global.System.Resources.ResourceManager\r
+        \r
+        Private resourceCulture As Global.System.Globalization.CultureInfo\r
+        \r
+        '''<summary>\r
+        '''  Returns the cached ResourceManager instance used by this class.\r
+        '''</summary>\r
+        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _\r
+        Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager\r
+            Get\r
+                If Object.ReferenceEquals(resourceMan, Nothing) Then\r
+                    Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("MediaCubeApiTest.Resources", GetType(Resources).Assembly)\r
+                    resourceMan = temp\r
+                End If\r
+                Return resourceMan\r
+            End Get\r
+        End Property\r
+        \r
+        '''<summary>\r
+        '''  Overrides the current thread's CurrentUICulture property for all\r
+        '''  resource lookups using this strongly typed resource class.\r
+        '''</summary>\r
+        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _\r
+        Friend Property Culture() As Global.System.Globalization.CultureInfo\r
+            Get\r
+                Return resourceCulture\r
+            End Get\r
+            Set\r
+                resourceCulture = value\r
+            End Set\r
+        End Property\r
+    End Module\r
+End Namespace\r
diff --git a/client/MediaCubeApiTest/My Project/Resources.resx b/client/MediaCubeApiTest/My Project/Resources.resx
new file mode 100644 (file)
index 0000000..ffecec8
--- /dev/null
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<root>\r
+  <!-- \r
+    Microsoft ResX Schema \r
+    \r
+    Version 2.0\r
+    \r
+    The primary goals of this format is to allow a simple XML format \r
+    that is mostly human readable. The generation and parsing of the \r
+    various data types are done through the TypeConverter classes \r
+    associated with the data types.\r
+    \r
+    Example:\r
+    \r
+    ... ado.net/XML headers & schema ...\r
+    <resheader name="resmimetype">text/microsoft-resx</resheader>\r
+    <resheader name="version">2.0</resheader>\r
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>\r
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>\r
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>\r
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>\r
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">\r
+        <value>[base64 mime encoded serialized .NET Framework object]</value>\r
+    </data>\r
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>\r
+        <comment>This is a comment</comment>\r
+    </data>\r
+                \r
+    There are any number of "resheader" rows that contain simple \r
+    name/value pairs.\r
+    \r
+    Each data row contains a name, and value. The row also contains a \r
+    type or mimetype. Type corresponds to a .NET class that support \r
+    text/value conversion through the TypeConverter architecture. \r
+    Classes that don't support this are serialized and stored with the \r
+    mimetype set.\r
+    \r
+    The mimetype is used for serialized objects, and tells the \r
+    ResXResourceReader how to depersist the object. This is currently not \r
+    extensible. For a given mimetype the value must be set accordingly:\r
+    \r
+    Note - application/x-microsoft.net.object.binary.base64 is the format \r
+    that the ResXResourceWriter will generate, however the reader can \r
+    read any of the formats listed below.\r
+    \r
+    mimetype: application/x-microsoft.net.object.binary.base64\r
+    value   : The object must be serialized with \r
+            : System.Serialization.Formatters.Binary.BinaryFormatter\r
+            : and then encoded with base64 encoding.\r
+    \r
+    mimetype: application/x-microsoft.net.object.soap.base64\r
+    value   : The object must be serialized with \r
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter\r
+            : and then encoded with base64 encoding.\r
+\r
+    mimetype: application/x-microsoft.net.object.bytearray.base64\r
+    value   : The object must be serialized into a byte array \r
+            : using a System.ComponentModel.TypeConverter\r
+            : and then encoded with base64 encoding.\r
+    -->\r
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">\r
+    <xsd:element name="root" msdata:IsDataSet="true">\r
+      <xsd:complexType>\r
+        <xsd:choice maxOccurs="unbounded">\r
+          <xsd:element name="metadata">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" />\r
+              <xsd:attribute name="type" type="xsd:string" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="assembly">\r
+            <xsd:complexType>\r
+              <xsd:attribute name="alias" type="xsd:string" />\r
+              <xsd:attribute name="name" type="xsd:string" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="data">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />\r
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="resheader">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" use="required" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+        </xsd:choice>\r
+      </xsd:complexType>\r
+    </xsd:element>\r
+  </xsd:schema>\r
+  <resheader name="resmimetype">\r
+    <value>text/microsoft-resx</value>\r
+  </resheader>\r
+  <resheader name="version">\r
+    <value>2.0</value>\r
+  </resheader>\r
+  <resheader name="reader">\r
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+  <resheader name="writer">\r
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+</root>
\ No newline at end of file
diff --git a/client/MediaCubeApiTest/My Project/Settings.Designer.vb b/client/MediaCubeApiTest/My Project/Settings.Designer.vb
new file mode 100644 (file)
index 0000000..958b6d7
--- /dev/null
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------\r
+' <auto-generated>\r
+'     This code was generated by a tool.\r
+'     Runtime Version:4.0.30319.42000\r
+'\r
+'     Changes to this file may cause incorrect behavior and will be lost if\r
+'     the code is regenerated.\r
+' </auto-generated>\r
+'------------------------------------------------------------------------------\r
+\r
+Option Strict On\r
+Option Explicit On\r
+\r
+\r
+Namespace My\r
+    \r
+    <Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(),  _\r
+     Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.4.0.0"),  _\r
+     Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _\r
+    Partial Friend NotInheritable Class MySettings\r
+        Inherits Global.System.Configuration.ApplicationSettingsBase\r
+        \r
+        Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)\r
+        \r
+#Region "My.Settings Auto-Save Functionality"\r
+#If _MyType = "WindowsForms" Then\r
+    Private Shared addedHandler As Boolean\r
+\r
+    Private Shared addedHandlerLockObject As New Object\r
+\r
+    <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _\r
+    Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)\r
+        If My.Application.SaveMySettingsOnExit Then\r
+            My.Settings.Save()\r
+        End If\r
+    End Sub\r
+#End If\r
+#End Region\r
+        \r
+        Public Shared ReadOnly Property [Default]() As MySettings\r
+            Get\r
+                \r
+#If _MyType = "WindowsForms" Then\r
+               If Not addedHandler Then\r
+                    SyncLock addedHandlerLockObject\r
+                        If Not addedHandler Then\r
+                            AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings\r
+                            addedHandler = True\r
+                        End If\r
+                    End SyncLock\r
+                End If\r
+#End If\r
+                Return defaultInstance\r
+            End Get\r
+        End Property\r
+    End Class\r
+End Namespace\r
+\r
+Namespace My\r
+    \r
+    <Global.Microsoft.VisualBasic.HideModuleNameAttribute(),  _\r
+     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _\r
+     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()>  _\r
+    Friend Module MySettingsProperty\r
+        \r
+        <Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")>  _\r
+        Friend ReadOnly Property Settings() As Global.MediaCubeApiTest.My.MySettings\r
+            Get\r
+                Return Global.MediaCubeApiTest.My.MySettings.Default\r
+            End Get\r
+        End Property\r
+    End Module\r
+End Namespace\r
diff --git a/client/MediaCubeApiTest/My Project/Settings.settings b/client/MediaCubeApiTest/My Project/Settings.settings
new file mode 100644 (file)
index 0000000..377f56d
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>\r
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">\r
+  <Profiles>\r
+    <Profile Name="(Default)" />\r
+  </Profiles>\r
+  <Settings />\r
+</SettingsFile>\r
diff --git a/client/MediaCubeApiTest/app.config b/client/MediaCubeApiTest/app.config
new file mode 100644 (file)
index 0000000..0257f46
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<configuration>\r
+    <system.diagnostics>\r
+        <sources>\r
+            <!-- This section defines the logging configuration for My.Application.Log -->\r
+            <source name="DefaultSource" switchName="DefaultSwitch">\r
+                <listeners>\r
+                    <add name="FileLog"/>\r
+                    <!-- Uncomment the below section to write to the Application Event Log -->\r
+                    <!--<add name="EventLog"/>-->\r
+                </listeners>\r
+            </source>\r
+        </sources>\r
+        <switches>\r
+            <add name="DefaultSwitch" value="Information"/>\r
+        </switches>\r
+        <sharedListeners>\r
+            <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>\r
+            <!-- Uncomment the below section and replace APPLICATION_NAME with the name of your application to write to the Application Event Log -->\r
+            <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->\r
+        </sharedListeners>\r
+    </system.diagnostics>\r
+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/></startup></configuration>\r
index 85667f897835f858056450c0e54f9c0c4a9f8879..84d28223d7248f3d02686b299acc108362a4f206 100644 (file)
@@ -1,6 +1,7 @@
 namespace MediaCubeClient {\r
     class MediaCubeStrings {\r
         public static readonly string ACTION = "action";\r
+        public static readonly string NAME = "name";\r
         public static readonly string LIST = "list";\r
         public static readonly string STARTJOB = "startjob";\r
         public static readonly string ERROR = "error";\r
index 08f50b0797c94de600f5677cfb32dbfb1aaae3e0..7e023a13fbeb6d770acd924897b0eb291898d307 100644 (file)
@@ -60,7 +60,7 @@ namespace MediaCubeClient {
                     return result;\r
                 }\r
         */\r
-        public void SubmitJob(string template, JObject parameters) {\r
+        public void SubmitJob(string template, string name, JObject parameters) {\r
             ws.SslConfiguration.ServerCertificateValidationCallback = (s, c, ch, e) => {\r
                 return true;\r
             };\r
@@ -68,36 +68,37 @@ namespace MediaCubeClient {
                 JObject jo = JObject.Parse(e.Data);\r
                 if ("SUSPENDED".Equals(jo.As<string>(MediaCubeStrings.STATUS))) {\r
                     ws.Close();\r
-                    messageBus.Send(new MediaCubeWSMessage("Hiba a MediaCube szolgáltatás használata során. Rendszerüzenet: " + jo.As<string>(MediaCubeStrings.ERROR)));\r
+                    messageBus?.Send(new MediaCubeWSMessage("Hiba a MediaCube szolgáltatás használata során. Rendszerüzenet: " + jo.As<string>(MediaCubeStrings.ERROR)));\r
                     return;\r
                 }\r
                 if ("FINISHED".Equals(jo.As<string>(MediaCubeStrings.STATUS))) {\r
                     ws.Close();\r
-                    messageBus.Send(new MediaCubeWSMessage());\r
+                        messageBus?.Send(new MediaCubeWSMessage());\r
                     return;\r
                 }\r
-                messageBus.Send(new MediaCubeWSMessage(jo));\r
+                messageBus?.Send(new MediaCubeWSMessage(jo));\r
             };\r
             ws.OnError += (s, e) => {\r
                 ws.Close();\r
-                messageBus.Send(new MediaCubeWSMessage("Hiba a MediaCube szolgáltatás használata során. Rendszerüzenet: " + e.Message));\r
+                messageBus?.Send(new MediaCubeWSMessage("Hiba a MediaCube szolgáltatás használata során. Rendszerüzenet: " + e.Message));\r
             };\r
 \r
             try {\r
                 ws.Connect();\r
             } catch {\r
                 ws.Close();\r
-                messageBus.Send(new MediaCubeWSMessage("Sikertelen kapcsolódás a MediaCube szolgáltatáshoz."));\r
+                messageBus?.Send(new MediaCubeWSMessage("Sikertelen kapcsolódás a MediaCube szolgáltatáshoz."));\r
             }\r
             try {\r
                 JObject data = new JObject();\r
+                data.Add(MediaCubeStrings.NAME, JToken.FromObject(name));\r
                 data.Add(MediaCubeStrings.ACTION, JToken.FromObject(MediaCubeStrings.STARTJOB));\r
                 data.Add(MediaCubeStrings.TEMPLATE, JToken.FromObject(template));\r
                 data.Add(MediaCubeStrings.PARAMETERS, JToken.FromObject(parameters));\r
                 ws.Send(data.Serialize());\r
             } catch (Exception e) {\r
                 ws.Close();\r
-                messageBus.Send(new MediaCubeWSMessage("Sikertelen MediaCube folyamatindítás."));\r
+                messageBus?.Send(new MediaCubeWSMessage("Sikertelen MediaCube folyamatindítás."));\r
             }\r
         }\r
 \r