git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Fri, 17 Nov 2017 11:29:30 +0000 (11:29 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Fri, 17 Nov 2017 11:29:30 +0000 (11:29 +0000)
16 files changed:
client/DxPlay/DxPlay.csproj
client/DxPlay/maestro.ico [deleted file]
client/DxPlay/mediacube_logo_small_gray.ico [new file with mode: 0644]
client/IntegrationTests/MaestroIT.cs
client/Maestro/Configuration/configuration-playout-ingest.json
client/Maestro/Configuration/configuration-sxs.json
client/Maestro/Maestro.csproj
client/Maestro/MaestroForm.Target.cs
client/Maestro/Properties/AssemblyInfo.cs
client/MaestroShared/MaestroShared.csproj
client/MaestroShared/Targets/FTPTargetProcessor.cs
client/MaestroShared/Targets/FXPTargetProcessor.cs
client/MaestroShared/Targets/ITargetProcessor.cs
client/MaestroShared/Targets/TargetProcessor.cs
client/MaestroShared/Targets/UNCTargetProcessor.cs
client/MediaCube.sln

index e83e3db1e87db41a0532a8d6dbcbb5b8d0cbbd67..9034de28058dbaf315e92862145491c99bfe390d 100644 (file)
@@ -6,7 +6,8 @@
     <ProjectGuid>{0B44B3D7-52D7-4C0E-9B1C-F48CEEDA36FE}</ProjectGuid>\r
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
-    <ApplicationIcon>maestro.ico</ApplicationIcon>\r
+    <ApplicationIcon>\r
+    </ApplicationIcon>\r
     <AssemblyKeyContainerName>\r
     </AssemblyKeyContainerName>\r
     <AssemblyName>DxPlay</AssemblyName>\r
       <DependentUpon>PlayerForm.cs</DependentUpon>\r
     </Compile>\r
     <Content Include="DirectShowLib.dll" />\r
-    <Content Include="maestro.ico" />\r
+    <Content Include="mediacube_logo_small_gray.ico" />\r
     <None Include="Resources\ic_stop_black_24dp_2x.png" />\r
     <None Include="Resources\ic_play_arrow_black_24dp_2x.png" />\r
     <None Include="Resources\ic_pause_black_24dp_2x.png" />\r
diff --git a/client/DxPlay/maestro.ico b/client/DxPlay/maestro.ico
deleted file mode 100644 (file)
index 02fe9d7..0000000
Binary files a/client/DxPlay/maestro.ico and /dev/null differ
diff --git a/client/DxPlay/mediacube_logo_small_gray.ico b/client/DxPlay/mediacube_logo_small_gray.ico
new file mode 100644 (file)
index 0000000..4acf107
Binary files /dev/null and b/client/DxPlay/mediacube_logo_small_gray.ico differ
index ea881c89e76bf1ece24bdae9bb5bb301f93eab08..9524133c25bf87457c95c8c85ab4a6ae4a1751b6 100644 (file)
@@ -144,7 +144,8 @@ namespace IntegrationTests {
                 MediaCubeApi = null,\r
                 ArchiveMetadata = null\r
             };\r
-            FTPTargetProcessor sut = new FTPTargetProcessor(null, parameters);\r
+            FTPTargetProcessor sut = new FTPTargetProcessor();\r
+            sut.Initialize(null, parameters);\r
             sut.Execute();\r
         }\r
 \r
index aa818ef78d9a56e12fce43f666f94ee12d06375c..ddd13040318565787876b4f4db0d6b43d9a535d9 100644 (file)
@@ -1,6 +1,6 @@
 {\r
   "title": "Lebony betöltő",\r
-  "active": true,\r
+  "active": false,\r
   "startInTray": false,\r
   "enableCustomMetadataId": true,\r
   "player": {\r
index ef4dea4febf95821da762d53182fb9158bbc869e..67622e77455744042aedc985c3b8f249b0cb65bb 100644 (file)
@@ -1,6 +1,6 @@
 {\r
   "title": "SxS",\r
-  "active": true,\r
+  "active": false,\r
   "startInTray": false,\r
   "enableCustomMetadataId": true,\r
   "player": {\r
@@ -46,7 +46,7 @@
       "processor": "FTPTargetProcessor",\r
       "outputFormat": "%ID%-%SOURCENAME%",\r
       "tag": "Betöltés",\r
-      "subFolderFormat": "%IDROOT%%TEXT%",\r
+      "subFolderFormat": "%DATESTAMP%/%IDROOT%%TEXT%",\r
       "killDateDays": 7,\r
       "saveArchiveMetadata": false,\r
       "remote": {\r
index e38d6009629b50667337aa5909ed22b1f950a022..54c0d7428cc625a435059a4b110c109537ebfbfa 100644 (file)
     <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>\r
   </PropertyGroup>\r
   <ItemGroup>\r
-    <Reference Include="FluentFTP, Version=19.1.1.0, Culture=neutral, PublicKeyToken=f4af092b1d8df44f, processorArchitecture=MSIL">\r
-      <HintPath>..\packages\FluentFTP.19.1.1\lib\net45\FluentFTP.dll</HintPath>\r
-    </Reference>\r
     <Reference Include="LinkDotNet.MessageHandling, Version=0.2.0.0, Culture=neutral, processorArchitecture=MSIL">\r
       <HintPath>..\packages\LinkDotNet.MessageBus.0.1.1\lib\LinkDotNet.MessageHandling.dll</HintPath>\r
     </Reference>\r
index 2ae663c6b952749a641665b147237e1d260c3726..af6f54ebd5b4a98fdb9d1d4168db5101d73d05ef 100644 (file)
@@ -9,6 +9,7 @@ using MaestroShared.Configuration;
 using MaestroShared.Metadata;\r
 using MaestroShared.Targets;\r
 using MaestroShared.Target;\r
+using System.Reflection;\r
 \r
 namespace Maestro {\r
 \r
@@ -132,7 +133,10 @@ namespace Maestro {
 \r
         private ITargetProcessor CreateProcessor(Target target, TargetProcessorParameter processorParameter) {\r
             string typeName = string.Format("{0}.{1}", typeof(ITargetProcessor).Namespace, target.Processor);\r
-            return (ITargetProcessor)Activator.CreateInstance(Type.GetType(typeName), new object[] { this, processorParameter });\r
+            Type type = typeof(ITargetProcessor).Assembly.GetType(typeName);\r
+            ITargetProcessor result = Activator.CreateInstance(type) as ITargetProcessor;\r
+            result.Initialize(this, processorParameter);\r
+            return result;\r
         }\r
 \r
         private TargetProcessorParameter CreateProcessorParameter(Target target, ISourceItem sourceItem) {\r
index 29b34d4c30063ef43f274e02d7dbfc8d65a97aed..71f7984edc6812d512b7d8325fac07481a0c52dd 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.0")]\r
-[assembly: AssemblyFileVersion("2.0.0")]\r
+[assembly: AssemblyVersion("2.0.1")]\r
+[assembly: AssemblyFileVersion("2.0.1")]\r
index 27d07984a9eeff56f030df2a6e63196960deb9ab..98b295a74134ea07264e189c29b6ebda72bb9ba0 100644 (file)
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <OutputPath>bin\x64\Debug\</OutputPath>\r
+    <DefineConstants>DEBUG;TRACE</DefineConstants>\r
+    <DebugType>full</DebugType>\r
+    <PlatformTarget>x64</PlatformTarget>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">\r
+    <OutputPath>bin\x64\Release\</OutputPath>\r
+    <DefineConstants>TRACE</DefineConstants>\r
+    <Optimize>true</Optimize>\r
+    <DebugType>pdbonly</DebugType>\r
+    <PlatformTarget>x64</PlatformTarget>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>\r
+  </PropertyGroup>\r
   <ItemGroup>\r
     <Reference Include="FluentFTP, Version=19.1.2.0, Culture=neutral, PublicKeyToken=f4af092b1d8df44f, processorArchitecture=MSIL">\r
       <HintPath>..\packages\FluentFTP.19.1.2\lib\net45\FluentFTP.dll</HintPath>\r
index 9819fb8597e497c8bc257bda94ce1d198503c117..5a89cdd4152aa675ff260c01eee14aa374c986cf 100644 (file)
@@ -17,8 +17,8 @@ namespace MaestroShared.Targets {
         private readonly Logger logger = LogManager.GetCurrentClassLogger();\r
         protected FtpClient targetFTP;\r
 \r
-        public FTPTargetProcessor(Control parent, TargetProcessorParameter parameters)\r
-            : base(parent, parameters) {\r
+        public override void Initialize(Control parent, TargetProcessorParameter parameters) {\r
+            base.Initialize(parent, parameters);\r
             FtpTrace.LogFunctions = false;\r
             if (!(parameters.SourceConfig is UNCSource)) {\r
                 inputFile = null;\r
@@ -126,7 +126,6 @@ namespace MaestroShared.Targets {
             string result = null;\r
             if (!String.IsNullOrEmpty(parameters.TargetConfig.SubFolderFormat)) {\r
                 string name = GetDynamicName(parameters.TargetConfig.SubFolderFormat);\r
-                //TODO ellenőrizni, hogy mi van placeholder esetén\r
                 if (parameters.TargetConfig.SubFolderFormat.Contains(PATTERN_TEXT)) {\r
                     string pattern = name.Split(HYPHEN[0])[0] + HYPHEN;\r
                     targetFTP.SetWorkingDirectory(connection.Address.LocalPath);\r
index 89d2ed2f2175c6ac09b3d4a54adb4ad6a2c61195..6ba5283df272733d08394e2a3c911b9dd75a4ba3 100644 (file)
@@ -17,10 +17,9 @@ namespace MaestroShared.Targets {
         private Source sourceConfig;\r
         Uri inputUri;\r
 \r
-        public FXPTargetProcessor(Control parent, TargetProcessorParameter parameters) :\r
-            base(parent, parameters) {\r
+        public override void Initialize(Control parent, TargetProcessorParameter parameters) {\r
+            base.Initialize(parent, parameters);\r
             sourceConfig = parameters.SourceConfig;\r
-            //inputUri = new Uri(String.Format("{0}/{1}", parameters.SourceConfig.Remote.Address, parameters.InputFileName));\r
             inputUri = new Uri(Path.Combine(parameters.SourceConfig.Remote.Address.ToString(), parameters.InputFileName));\r
             Input = inputUri.ToString();\r
         }\r
index d8c13118e9b036398a4dedbcb726a290c3872c2b..94157459029d77aed034cce965410c200bffc921 100644 (file)
@@ -1,5 +1,7 @@
-using System;\r
+using MaestroShared.Target;\r
+using System;\r
 using System.ComponentModel;\r
+using System.Windows.Forms;\r
 \r
 namespace MaestroShared.Targets {\r
     public interface ITargetProcessor : INotifyPropertyChanged {\r
@@ -14,6 +16,8 @@ namespace MaestroShared.Targets {
         string KillDate { get; set; }\r
         string Label { get; set; }\r
         string KillDatePath { get; set; }\r
+\r
+        void Initialize(Control parent, TargetProcessorParameter parameters);\r
         bool Execute();\r
     }\r
 }
\ No newline at end of file
index 3ada7fa92a59cb4184b65183adfd79b4147ffd71..fc0b52a151833ea228296e761a3ad2d85889f086 100644 (file)
@@ -1,11 +1,12 @@
 using MaestroShared.Commons;\r
+using MaestroShared.Target;\r
 using System;\r
 using System.ComponentModel;\r
 using System.Runtime.CompilerServices;\r
 using System.Windows.Forms;\r
 \r
 namespace MaestroShared.Targets {\r
-    public abstract class TargetProcessor : ITargetProcessor {\r
+    public abstract class TargetProcessor : MarshalByRefObject, ITargetProcessor {\r
         private string status;\r
         private string message;\r
         private string id;\r
@@ -20,13 +21,12 @@ namespace MaestroShared.Targets {
         private string label;\r
         private string killDatePath;\r
         protected Control parent;\r
+        public event PropertyChangedEventHandler PropertyChanged;\r
 \r
-        public TargetProcessor(Control parent) {\r
+        public virtual void Initialize(Control parent, TargetProcessorParameter parameters) {\r
             this.parent = parent;\r
         }\r
 \r
-        public event PropertyChangedEventHandler PropertyChanged;\r
-\r
         protected void NotifyPropertyChanged([CallerMemberName] String propertyName = "") {\r
             parent?.SafeCall(() => {\r
                 PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r
index 30a21dc0cc37e48ae9c666690ecf25c0324edcf2..40be4a3c445e07c8b13faf0d756e4afbf9d3ceef 100644 (file)
@@ -26,17 +26,12 @@ namespace MaestroShared.Targets {
         private const string KILLDATE_FILE = "{0}.{1}.killdate";\r
         private const string METADATA_FILE = "{0}.json";\r
         private const string DEFAULT_EXTENSION = ".MXF";\r
-        private const string NORMALIZE_TEXT_PATTERN = "[^0-9A-Za-z-._]";\r
-        protected const string UNDERSCORE = "_";\r
-        protected const string HYPHEN = "-";\r
+        private const string NORMALIZE_TEXT_PATTERN = "[^0-9A-Za-z-._/]";\r
         private const string DATE_FORMAT = "yyyy.MM.dd";\r
         private const string PROGRAMME = "PROGRAMME";\r
         private const string COMMERCIAL = "COMMERCIAL";\r
         private const string JUNCTION = "JUNCTION";\r
         private const string XML_EXT = ".xml";\r
-        private const string PATTERN_TARGETNAME = "%TARGETNAME%";\r
-        protected const string PATTERN_TEXT = "%TEXT%";\r
-        protected const string SLASH = "/";\r
         private const string INPROGRESS = "Folyamatban";\r
         private const string ERROR = "Hiba";\r
         private const string DOT = ".";\r
@@ -44,19 +39,26 @@ namespace MaestroShared.Targets {
         private const string DATE_FORMAT_NODOTS = "yyyyMMdd";\r
         private const string READY = "Kész";\r
         private const string HYPHEN_SPACES = " - ";\r
+        private const string PATTERN_TARGETNAME = "%TARGETNAME%";\r
         private const string PATTERN_ID = "%ID%";\r
         private const string PATTERN_IDROOT = "%IDROOT%";\r
         private const string PATTERN_SOURCENAME = "%SOURCENAME%";\r
         private const string PATTERN_TIMESTAMP = "%TIMESTAMP%";\r
+        private const string PATTERN_DATESTAMP = "%DATESTAMP%";\r
         private const string DATETIME_FORMAT = "yyyyMMddhhmmss";\r
+\r
+        protected const string UNDERSCORE = "_";\r
+        protected const string HYPHEN = "-";\r
+        protected const string PATTERN_TEXT = "%TEXT%";\r
+        protected const string SLASH = "/";\r
         protected FileInfo inputFile;\r
         protected string workingDir;\r
         protected TargetProcessorParameter parameters;\r
 \r
         public WorkflowAction workFlowAction { get; set; }\r
 \r
-        public UNCTargetProcessor(Control parent, TargetProcessorParameter parameters)\r
-            : base(parent) {\r
+        public override void Initialize(Control parent, TargetProcessorParameter parameters) {\r
+            base.Initialize(parent, parameters);\r
             this.parameters = parameters;\r
             InputName = parameters.InputFileName;\r
             Input = Path.Combine(parameters.SourceConfig.Local.Address.LocalPath, parameters.InputFileName);\r
@@ -322,7 +324,8 @@ namespace MaestroShared.Targets {
                 .Replace(PATTERN_IDROOT, idRoot)\r
                 .Replace(PATTERN_TEXT, HYPHEN + RemoveDiacritics(parameters.MetadataText))\r
                 .Replace(PATTERN_SOURCENAME, Path.GetFileNameWithoutExtension(InputName))\r
-                .Replace(PATTERN_TIMESTAMP, DateTime.Now.ToString(DATETIME_FORMAT, CultureInfo.InvariantCulture));\r
+                .Replace(PATTERN_TIMESTAMP, DateTime.Now.ToString(DATETIME_FORMAT, CultureInfo.InvariantCulture))\r
+                .Replace(PATTERN_DATESTAMP, DateTime.Now.ToString(DATE_FORMAT_NODOTS, CultureInfo.InvariantCulture));\r
             // replace hungarian and special characters\r
             result = Regex.Replace(result, NORMALIZE_TEXT_PATTERN, UNDERSCORE);\r
             if (result.Length > 100)\r
index f3793813a55071a44f09ed8370e63d7fe1a74063..dd22d6c8c44a2894c5bc4d1dce451b04529b79c6 100644 (file)
@@ -148,8 +148,8 @@ Global
                {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Debug|x86.Build.0 = Debug|Any CPU\r
                {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
                {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|Any CPU.Build.0 = Release|Any CPU\r
-               {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|x64.ActiveCfg = Release|Any CPU\r
-               {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|x64.Build.0 = Release|Any CPU\r
+               {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|x64.ActiveCfg = Release|x64\r
+               {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|x64.Build.0 = Release|x64\r
                {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|x86.ActiveCfg = Release|Any CPU\r
                {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|x86.Build.0 = Release|Any CPU\r
        EndGlobalSection\r