From 1d40e97ba3aa01ec92e832b215b6cefedb03c015 Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1s=C3=A1ry=20D=C3=A1niel?= Date: Fri, 17 Nov 2017 11:29:30 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C30739 --- client/DxPlay/DxPlay.csproj | 5 +++-- client/DxPlay/maestro.ico | Bin 4286 -> 0 bytes client/DxPlay/mediacube_logo_small_gray.ico | Bin 0 -> 4286 bytes client/IntegrationTests/MaestroIT.cs | 3 ++- .../configuration-playout-ingest.json | 2 +- .../Configuration/configuration-sxs.json | 4 ++-- client/Maestro/Maestro.csproj | 3 --- client/Maestro/MaestroForm.Target.cs | 6 ++++- client/Maestro/Properties/AssemblyInfo.cs | 4 ++-- client/MaestroShared/MaestroShared.csproj | 18 +++++++++++++++ .../Targets/FTPTargetProcessor.cs | 5 ++--- .../Targets/FXPTargetProcessor.cs | 5 ++--- .../MaestroShared/Targets/ITargetProcessor.cs | 6 ++++- .../MaestroShared/Targets/TargetProcessor.cs | 8 +++---- .../Targets/UNCTargetProcessor.cs | 21 ++++++++++-------- client/MediaCube.sln | 4 ++-- 16 files changed, 60 insertions(+), 34 deletions(-) delete mode 100644 client/DxPlay/maestro.ico create mode 100644 client/DxPlay/mediacube_logo_small_gray.ico diff --git a/client/DxPlay/DxPlay.csproj b/client/DxPlay/DxPlay.csproj index e83e3db1..9034de28 100644 --- a/client/DxPlay/DxPlay.csproj +++ b/client/DxPlay/DxPlay.csproj @@ -6,7 +6,8 @@ {0B44B3D7-52D7-4C0E-9B1C-F48CEEDA36FE} Debug AnyCPU - maestro.ico + + DxPlay @@ -221,7 +222,7 @@ PlayerForm.cs - + diff --git a/client/DxPlay/maestro.ico b/client/DxPlay/maestro.ico deleted file mode 100644 index 02fe9d711f4035f2a6e5c237633b8d1e86f7a17b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmb`K3vg7`8OKiqwGuJ$0mZ5nX>D<=cBJ^4R(3C?j=P6~0-D_msMVqnUICIUNeCn) zhDRWTfI*QY5JLzF#y}oGl6@t++08!k*hlug*$q&Pww6Kr7)Ab_bMNjnRtIJ3H}mbC zy?f62ec%84?%8t*NgxSi>Qur$NnJ7_lL;Zy2_aJnAyOjV7c7~OI}=5}UgIbq_xm`? z7f56Z|E%XyzF;nqDSRB|^Et}j8z1*WS$sW?^0#u7Uo4R+EVJh>zOr~(CerivA$?03 z_+=Sj_arifnWMadqkLj~-v48L%1Q8R2lcVQW;OGw;VDmoYbquE`-# z=Mc1SBsiNvpw6EHTVoam9Yc8k!*0B?A{!j#zm&)n-5lj#;Hbd(S_mkBvI@6_Hl>qI|htc2uE-V8f zlpborf+ee%7N2vJ-@{S5UU%u3ZV+U27#?BPDXw1Bs6Uz=wY$MHP}YbUUVmFGVj0#83fub1iH4XHSFfEipEI9)WTH69}IF4EBK`RIHgS)PX%CasKny=pCBHvdI|@2Y+PuKM305DEzV<2z=;P%<8U*6Lhf}9eM)6bC(h4YqyF$W2<}$MyvOl`TN?I!q+$( zz9t#G%`YK1JR;^_JQHVkCqZ5H9Q3WlFdI+9YBj-PF~Oi~LG#f9ROLN|inZf#X7A&o z{;~WSpY0v?s%!CA!Q3B2P`w`hQ}f|#lEd4a661f0`U8t$R9C?ly@c?`5PcL7oPGZU z7z+OlXBx{CQtadI6z}U%}mX2K@~b zuH!S{X_yI5!*4KDKLbO@AA$4mU2s<325051a2}fupRER=kG_J#(TA48Ny47Z@{jYs zW&e4H?Y}*JVMMJ55YeWKe4Przw!;YZ9Y>&J4T5bc@HWoEP@LZ|1Ma$q;HXN5gYm19 z;5;%3u450uqsf4?c?oRgNwAdMDD(_n^B14rdVIIHe}tLCS0*FFf>(P?nKe=nTXQ!w~m zGWrfofMw5kxHZM7J=r7t|8P{fHopIIl>fCvrnvCt`U3QOE+Xn`L8L1O!Oz|1(gTw50`IQox!ZT;y(yOaf+i^-gh(I`sNPi8YUD-HiEWikJLmr~txfs@~5VpPp zf54BEodZ~zu?@ffgxstnWLzF02|t9hwb+_$?W=@rVJv}pDGC1p Dgf%#F diff --git a/client/DxPlay/mediacube_logo_small_gray.ico b/client/DxPlay/mediacube_logo_small_gray.ico new file mode 100644 index 0000000000000000000000000000000000000000..4acf10710fd5a22769fbcfc07484852cd7331285 GIT binary patch literal 4286 zcmb`Kdr(yO700i&)3lv-l6Iz@=^veBGSkOD2A?2c0Pp@5mdD<`EVz~B?%iEQ-ple- z9`abh7)>SkiqSw4=}gq9JTwF!(So94co-iDLWnWGk|su{(tw)guiSN1Lo@pWBxd;pOceI5Bt;orh0i|B;h8F*u5*?QekQ$cKD| zsz(Tw*M93#1h`X#s{hVlajcgW?GsCCCf01+hT{Vlv9t9}IGk=g{d5GPqUOW3C=IW- zcA{tCB35tM28%tDbbMm4IMxYO|E*9t)}%V_tMxC0su$88o08pF>Z`}0o_BDd>l8fR zA_NDAASfsZbLPxpn=ySl=7xkIFTWTEyH2rhNliUyEyWP3ULaJC`5*Tr!2Y37^(0x* zdW5RqOUtjsu8yNP-hTmg&#pyeR1~I7n}+Grr!zM+EDRwbA(%C57G}(tfuN_Jf-D=b zYR&UF-am|8Z*(KgTM41+cLOo4LS@DSwFs~u6{@~YRA|u75oBiN zvVK}`kY&Wi#vv{)o@1FzCXP=}(q<4w&W&mx7aNN>;+ssY)nZX0j7HY(*KId{*^AeZXibLEXhd9W9Os^qnT_$Qx6ylg6bWX9 zdx`nklk=(mMj<#>iaiy5XUB2z@=bo{&|z;Pd?Q9X0sV~yY>K|dXRD?hRtR}>%K$Sv-be3)+B$9%r_x3 z>ps2`;K#*%BYv*Oi-h=iKR@+rzV2GYy*0t7zNB|dVxpD%g8NaHxei&`xnJk6Sib7b zoZQLte;9xC@=a*Ei}^VoFE(v`6?^x0<4DgSTl<@TM#ILfaJmLR&re8zMNuZ_4~(!6`I0$ZZuFlW$F-Yx zaP{ULu64<>3Rn}ZoD=0`PB0_MYK6n$K(((9M|;n(|FxTUnNMdI<^E0h$C+OQYhof& z7A{0-X&DBGF5${wKF7|M4rrPKidlhbQ8^wxZ3}F$+wDlT+mVuzf{e^8>}fxMD<6N3 zp1vV|PxZ)w8Tre@^iu}1tyqET>S|P0 zR-(AL82S16$j!|~W@aV|3kz8n)rfK@4U{|SraG0CmSTBD1(q#ciY)do!k=E-h5qyJ zBWGzXoxfLvs!t2BNdw(Am(x9|q-HISzCDcI!C^GL(hQ%^hh@u_p{TG3-aIez^72qw zS;gAQ%PUwD?F-eIG?tZ>p}f2tJ37fvT!%EMH!U>Z)qiSy5ij zbtx+?!`k|Fc&ob?Z=Zb+>lr_>OUmzP|`n|Ix&{?`llM6RQ3z`u~v??c98G z>StuKqMZ%=PthFve$#>5j{;p&0ZGC=Ns9c3Bt8DVBt6n4NmFYiY07tD6pLa~>@Ov$ Lnpn)d{V4tg7O#K9 literal 0 HcmV?d00001 diff --git a/client/IntegrationTests/MaestroIT.cs b/client/IntegrationTests/MaestroIT.cs index ea881c89..9524133c 100644 --- a/client/IntegrationTests/MaestroIT.cs +++ b/client/IntegrationTests/MaestroIT.cs @@ -144,7 +144,8 @@ namespace IntegrationTests { MediaCubeApi = null, ArchiveMetadata = null }; - FTPTargetProcessor sut = new FTPTargetProcessor(null, parameters); + FTPTargetProcessor sut = new FTPTargetProcessor(); + sut.Initialize(null, parameters); sut.Execute(); } diff --git a/client/Maestro/Configuration/configuration-playout-ingest.json b/client/Maestro/Configuration/configuration-playout-ingest.json index aa818ef7..ddd13040 100644 --- a/client/Maestro/Configuration/configuration-playout-ingest.json +++ b/client/Maestro/Configuration/configuration-playout-ingest.json @@ -1,6 +1,6 @@ { "title": "Lebony betöltő", - "active": true, + "active": false, "startInTray": false, "enableCustomMetadataId": true, "player": { diff --git a/client/Maestro/Configuration/configuration-sxs.json b/client/Maestro/Configuration/configuration-sxs.json index ef4dea4f..67622e77 100644 --- a/client/Maestro/Configuration/configuration-sxs.json +++ b/client/Maestro/Configuration/configuration-sxs.json @@ -1,6 +1,6 @@ { "title": "SxS", - "active": true, + "active": false, "startInTray": false, "enableCustomMetadataId": true, "player": { @@ -46,7 +46,7 @@ "processor": "FTPTargetProcessor", "outputFormat": "%ID%-%SOURCENAME%", "tag": "Betöltés", - "subFolderFormat": "%IDROOT%%TEXT%", + "subFolderFormat": "%DATESTAMP%/%IDROOT%%TEXT%", "killDateDays": 7, "saveArchiveMetadata": false, "remote": { diff --git a/client/Maestro/Maestro.csproj b/client/Maestro/Maestro.csproj index e38d6009..54c0d742 100644 --- a/client/Maestro/Maestro.csproj +++ b/client/Maestro/Maestro.csproj @@ -120,9 +120,6 @@ MinimumRecommendedRules.ruleset - - ..\packages\FluentFTP.19.1.1\lib\net45\FluentFTP.dll - ..\packages\LinkDotNet.MessageBus.0.1.1\lib\LinkDotNet.MessageHandling.dll diff --git a/client/Maestro/MaestroForm.Target.cs b/client/Maestro/MaestroForm.Target.cs index 2ae663c6..af6f54eb 100644 --- a/client/Maestro/MaestroForm.Target.cs +++ b/client/Maestro/MaestroForm.Target.cs @@ -9,6 +9,7 @@ using MaestroShared.Configuration; using MaestroShared.Metadata; using MaestroShared.Targets; using MaestroShared.Target; +using System.Reflection; namespace Maestro { @@ -132,7 +133,10 @@ namespace Maestro { private ITargetProcessor CreateProcessor(Target target, TargetProcessorParameter processorParameter) { string typeName = string.Format("{0}.{1}", typeof(ITargetProcessor).Namespace, target.Processor); - return (ITargetProcessor)Activator.CreateInstance(Type.GetType(typeName), new object[] { this, processorParameter }); + Type type = typeof(ITargetProcessor).Assembly.GetType(typeName); + ITargetProcessor result = Activator.CreateInstance(type) as ITargetProcessor; + result.Initialize(this, processorParameter); + return result; } private TargetProcessorParameter CreateProcessorParameter(Target target, ISourceItem sourceItem) { diff --git a/client/Maestro/Properties/AssemblyInfo.cs b/client/Maestro/Properties/AssemblyInfo.cs index 29b34d4c..71f7984e 100644 --- a/client/Maestro/Properties/AssemblyInfo.cs +++ b/client/Maestro/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.0")] -[assembly: AssemblyFileVersion("2.0.0")] +[assembly: AssemblyVersion("2.0.1")] +[assembly: AssemblyFileVersion("2.0.1")] diff --git a/client/MaestroShared/MaestroShared.csproj b/client/MaestroShared/MaestroShared.csproj index 27d07984..98b295a7 100644 --- a/client/MaestroShared/MaestroShared.csproj +++ b/client/MaestroShared/MaestroShared.csproj @@ -33,6 +33,24 @@ prompt 4 + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + prompt + MinimumRecommendedRules.ruleset + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + ..\packages\FluentFTP.19.1.2\lib\net45\FluentFTP.dll diff --git a/client/MaestroShared/Targets/FTPTargetProcessor.cs b/client/MaestroShared/Targets/FTPTargetProcessor.cs index 9819fb85..5a89cdd4 100644 --- a/client/MaestroShared/Targets/FTPTargetProcessor.cs +++ b/client/MaestroShared/Targets/FTPTargetProcessor.cs @@ -17,8 +17,8 @@ namespace MaestroShared.Targets { private readonly Logger logger = LogManager.GetCurrentClassLogger(); protected FtpClient targetFTP; - public FTPTargetProcessor(Control parent, TargetProcessorParameter parameters) - : base(parent, parameters) { + public override void Initialize(Control parent, TargetProcessorParameter parameters) { + base.Initialize(parent, parameters); FtpTrace.LogFunctions = false; if (!(parameters.SourceConfig is UNCSource)) { inputFile = null; @@ -126,7 +126,6 @@ namespace MaestroShared.Targets { string result = null; if (!String.IsNullOrEmpty(parameters.TargetConfig.SubFolderFormat)) { string name = GetDynamicName(parameters.TargetConfig.SubFolderFormat); - //TODO ellenőrizni, hogy mi van placeholder esetén if (parameters.TargetConfig.SubFolderFormat.Contains(PATTERN_TEXT)) { string pattern = name.Split(HYPHEN[0])[0] + HYPHEN; targetFTP.SetWorkingDirectory(connection.Address.LocalPath); diff --git a/client/MaestroShared/Targets/FXPTargetProcessor.cs b/client/MaestroShared/Targets/FXPTargetProcessor.cs index 89d2ed2f..6ba5283d 100644 --- a/client/MaestroShared/Targets/FXPTargetProcessor.cs +++ b/client/MaestroShared/Targets/FXPTargetProcessor.cs @@ -17,10 +17,9 @@ namespace MaestroShared.Targets { private Source sourceConfig; Uri inputUri; - public FXPTargetProcessor(Control parent, TargetProcessorParameter parameters) : - base(parent, parameters) { + public override void Initialize(Control parent, TargetProcessorParameter parameters) { + base.Initialize(parent, parameters); sourceConfig = parameters.SourceConfig; - //inputUri = new Uri(String.Format("{0}/{1}", parameters.SourceConfig.Remote.Address, parameters.InputFileName)); inputUri = new Uri(Path.Combine(parameters.SourceConfig.Remote.Address.ToString(), parameters.InputFileName)); Input = inputUri.ToString(); } diff --git a/client/MaestroShared/Targets/ITargetProcessor.cs b/client/MaestroShared/Targets/ITargetProcessor.cs index d8c13118..94157459 100644 --- a/client/MaestroShared/Targets/ITargetProcessor.cs +++ b/client/MaestroShared/Targets/ITargetProcessor.cs @@ -1,5 +1,7 @@ -using System; +using MaestroShared.Target; +using System; using System.ComponentModel; +using System.Windows.Forms; namespace MaestroShared.Targets { public interface ITargetProcessor : INotifyPropertyChanged { @@ -14,6 +16,8 @@ namespace MaestroShared.Targets { string KillDate { get; set; } string Label { get; set; } string KillDatePath { get; set; } + + void Initialize(Control parent, TargetProcessorParameter parameters); bool Execute(); } } \ No newline at end of file diff --git a/client/MaestroShared/Targets/TargetProcessor.cs b/client/MaestroShared/Targets/TargetProcessor.cs index 3ada7fa9..fc0b52a1 100644 --- a/client/MaestroShared/Targets/TargetProcessor.cs +++ b/client/MaestroShared/Targets/TargetProcessor.cs @@ -1,11 +1,12 @@ using MaestroShared.Commons; +using MaestroShared.Target; using System; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Windows.Forms; namespace MaestroShared.Targets { - public abstract class TargetProcessor : ITargetProcessor { + public abstract class TargetProcessor : MarshalByRefObject, ITargetProcessor { private string status; private string message; private string id; @@ -20,13 +21,12 @@ namespace MaestroShared.Targets { private string label; private string killDatePath; protected Control parent; + public event PropertyChangedEventHandler PropertyChanged; - public TargetProcessor(Control parent) { + public virtual void Initialize(Control parent, TargetProcessorParameter parameters) { this.parent = parent; } - public event PropertyChangedEventHandler PropertyChanged; - protected void NotifyPropertyChanged([CallerMemberName] String propertyName = "") { parent?.SafeCall(() => { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); diff --git a/client/MaestroShared/Targets/UNCTargetProcessor.cs b/client/MaestroShared/Targets/UNCTargetProcessor.cs index 30a21dc0..40be4a3c 100644 --- a/client/MaestroShared/Targets/UNCTargetProcessor.cs +++ b/client/MaestroShared/Targets/UNCTargetProcessor.cs @@ -26,17 +26,12 @@ namespace MaestroShared.Targets { private const string KILLDATE_FILE = "{0}.{1}.killdate"; private const string METADATA_FILE = "{0}.json"; private const string DEFAULT_EXTENSION = ".MXF"; - private const string NORMALIZE_TEXT_PATTERN = "[^0-9A-Za-z-._]"; - protected const string UNDERSCORE = "_"; - protected const string HYPHEN = "-"; + private const string NORMALIZE_TEXT_PATTERN = "[^0-9A-Za-z-._/]"; private const string DATE_FORMAT = "yyyy.MM.dd"; private const string PROGRAMME = "PROGRAMME"; private const string COMMERCIAL = "COMMERCIAL"; private const string JUNCTION = "JUNCTION"; private const string XML_EXT = ".xml"; - private const string PATTERN_TARGETNAME = "%TARGETNAME%"; - protected const string PATTERN_TEXT = "%TEXT%"; - protected const string SLASH = "/"; private const string INPROGRESS = "Folyamatban"; private const string ERROR = "Hiba"; private const string DOT = "."; @@ -44,19 +39,26 @@ namespace MaestroShared.Targets { private const string DATE_FORMAT_NODOTS = "yyyyMMdd"; private const string READY = "Kész"; private const string HYPHEN_SPACES = " - "; + private const string PATTERN_TARGETNAME = "%TARGETNAME%"; private const string PATTERN_ID = "%ID%"; private const string PATTERN_IDROOT = "%IDROOT%"; private const string PATTERN_SOURCENAME = "%SOURCENAME%"; private const string PATTERN_TIMESTAMP = "%TIMESTAMP%"; + private const string PATTERN_DATESTAMP = "%DATESTAMP%"; private const string DATETIME_FORMAT = "yyyyMMddhhmmss"; + + protected const string UNDERSCORE = "_"; + protected const string HYPHEN = "-"; + protected const string PATTERN_TEXT = "%TEXT%"; + protected const string SLASH = "/"; protected FileInfo inputFile; protected string workingDir; protected TargetProcessorParameter parameters; public WorkflowAction workFlowAction { get; set; } - public UNCTargetProcessor(Control parent, TargetProcessorParameter parameters) - : base(parent) { + public override void Initialize(Control parent, TargetProcessorParameter parameters) { + base.Initialize(parent, parameters); this.parameters = parameters; InputName = parameters.InputFileName; Input = Path.Combine(parameters.SourceConfig.Local.Address.LocalPath, parameters.InputFileName); @@ -322,7 +324,8 @@ namespace MaestroShared.Targets { .Replace(PATTERN_IDROOT, idRoot) .Replace(PATTERN_TEXT, HYPHEN + RemoveDiacritics(parameters.MetadataText)) .Replace(PATTERN_SOURCENAME, Path.GetFileNameWithoutExtension(InputName)) - .Replace(PATTERN_TIMESTAMP, DateTime.Now.ToString(DATETIME_FORMAT, CultureInfo.InvariantCulture)); + .Replace(PATTERN_TIMESTAMP, DateTime.Now.ToString(DATETIME_FORMAT, CultureInfo.InvariantCulture)) + .Replace(PATTERN_DATESTAMP, DateTime.Now.ToString(DATE_FORMAT_NODOTS, CultureInfo.InvariantCulture)); // replace hungarian and special characters result = Regex.Replace(result, NORMALIZE_TEXT_PATTERN, UNDERSCORE); if (result.Length > 100) diff --git a/client/MediaCube.sln b/client/MediaCube.sln index f3793813..dd22d6c8 100644 --- a/client/MediaCube.sln +++ b/client/MediaCube.sln @@ -148,8 +148,8 @@ Global {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Debug|x86.Build.0 = Debug|Any CPU {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|Any CPU.ActiveCfg = Release|Any CPU {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|Any CPU.Build.0 = Release|Any CPU - {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|x64.ActiveCfg = Release|Any CPU - {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|x64.Build.0 = Release|Any CPU + {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|x64.ActiveCfg = Release|x64 + {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|x64.Build.0 = Release|x64 {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|x86.ActiveCfg = Release|Any CPU {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection -- 2.54.0