From 10d847d73bd1a7650cc0398898dfa8941164da50 Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1s=C3=A1ry=20D=C3=A1niel?= Date: Mon, 4 Dec 2017 11:56:17 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C30786 --- client/Maestro/Maestro.csproj | 8 +++++- client/Maestro/MaestroForm.Target.cs | 20 +++++++------ client/Maestro/Properties/AssemblyInfo.cs | 4 +-- client/Maestro/Sources/CreatedFileMonitor.cs | 13 +++++---- client/Maestro/Sources/FileSystemSource.cs | 28 ++++++++++++------- client/Maestro/nlog.config | 7 +++-- .../MaestroShared/Commons/PatternNameMaker.cs | 21 +++++++++----- .../MaestroShared/Metadata/ArchiveMetadata.cs | 1 + .../Targets/TargetProcessorParameter.cs | 2 ++ .../Targets/UNCTargetProcessor.cs | 2 +- client/PlanAIRClient/TrafficIDSelector.cs | 4 --- .../PlanAIRClient/Workers/MaterialWorker.cs | 2 +- 12 files changed, 69 insertions(+), 43 deletions(-) diff --git a/client/Maestro/Maestro.csproj b/client/Maestro/Maestro.csproj index 55f38c46..139ee95d 100644 --- a/client/Maestro/Maestro.csproj +++ b/client/Maestro/Maestro.csproj @@ -261,6 +261,12 @@ Always + + Always + + + Always + Always @@ -315,7 +321,7 @@ Always - + Always diff --git a/client/Maestro/MaestroForm.Target.cs b/client/Maestro/MaestroForm.Target.cs index 92282781..1b487155 100644 --- a/client/Maestro/MaestroForm.Target.cs +++ b/client/Maestro/MaestroForm.Target.cs @@ -32,7 +32,7 @@ namespace Maestro { } private void CreateTarget(Target target) { - logger.Debug("Creating target {0}", target); + logger.Debug("Creating target '{0}'", target.Label); CheckBox checkBox = new CheckBox() { Appearance = Appearance.Normal, Text = target.Label, @@ -75,6 +75,7 @@ namespace Maestro { private List CreateProcessors(Target target, CheckBox checkBox) { List result = null; + DateTime createDate = DateTime.Now; foreach (ISourceItem sourceItem in selectedSourceItems) { if (sourceItem == null) continue; @@ -88,7 +89,7 @@ namespace Maestro { result = null; break; } - TargetProcessorParameter processorParameter = CreateProcessorParameter(target, sourceItem); + TargetProcessorParameter processorParameter = CreateProcessorParameter(target, sourceItem, createDate); ITargetProcessor processor = TargetProcessor.Create(target.Processor); processor.Initialize(this, processorParameter); if (result == null) @@ -144,7 +145,7 @@ namespace Maestro { return true; } - private TargetProcessorParameter CreateProcessorParameter(Target target, ISourceItem sourceItem) { + private TargetProcessorParameter CreateProcessorParameter(Target target, ISourceItem sourceItem, DateTime createDate) { FileSystemSource source = bindingSource.DataSource as FileSystemSource; TargetProcessorParameter result = new TargetProcessorParameter() { @@ -160,14 +161,15 @@ namespace Maestro { VariantID = selectedMetadata == null ? 0 : selectedMetadata.VariantID, MetadataKind = selectedMetadata == null ? MetadataType.None : selectedMetadata.Kind, UserName = TrayApplicationContext.UserName, - MessageBus = MessageBus + MessageBus = MessageBus, + CreateDate = createDate }; - + result.ArchiveMetadata.userName = result.UserName; if (SelectedMetadata.Kind == MetadataType.MediaCube && result.ArchiveMetadata != null) { - result.ArchiveMetadata.itemHouseId = PatternNameMaker.Get(result.ArchiveMetadata.itemHouseId, result.ID, result.InputFileName, result.MetadataText); - result.ArchiveMetadata.itemTitle = PatternNameMaker.Get(result.ArchiveMetadata.itemTitle, result.ID, result.InputFileName, result.MetadataText); - result.ArchiveMetadata.mediaHouseId = PatternNameMaker.Get(result.ArchiveMetadata.mediaHouseId, result.ID, result.InputFileName, result.MetadataText); - result.ArchiveMetadata.mediaTitle = PatternNameMaker.Get(result.ArchiveMetadata.mediaTitle, result.ID, result.InputFileName, result.MetadataText); + result.ArchiveMetadata.itemHouseId = PatternNameMaker.Get(result.ArchiveMetadata.itemHouseId, result.ID, result.InputFileName, null, null, result.MetadataText); + result.ArchiveMetadata.itemTitle = PatternNameMaker.Get(result.ArchiveMetadata.itemTitle, result.ID, result.InputFileName, null, null, result.MetadataText); + result.ArchiveMetadata.mediaHouseId = PatternNameMaker.Get(result.ArchiveMetadata.mediaHouseId, result.ID, result.InputFileName, null, null, result.MetadataText); + result.ArchiveMetadata.mediaTitle = PatternNameMaker.Get(result.ArchiveMetadata.mediaTitle, result.ID, result.InputFileName, null, null, result.MetadataText); } return result; } diff --git a/client/Maestro/Properties/AssemblyInfo.cs b/client/Maestro/Properties/AssemblyInfo.cs index 76d8cb52..d4db9ec8 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.6.2")] -[assembly: AssemblyFileVersion("2.0.6.2")] +[assembly: AssemblyVersion("2.0.6.3")] +[assembly: AssemblyFileVersion("2.0.6.3")] diff --git a/client/Maestro/Sources/CreatedFileMonitor.cs b/client/Maestro/Sources/CreatedFileMonitor.cs index 2aafd2de..d74f371d 100644 --- a/client/Maestro/Sources/CreatedFileMonitor.cs +++ b/client/Maestro/Sources/CreatedFileMonitor.cs @@ -1,11 +1,11 @@ -using System; +using NLog; using System.ComponentModel; -using System.Diagnostics; using System.IO; using System.Threading; namespace Maestro.Sources { internal class CreatedFileMonitor : BackgroundWorker { + private static Logger logger = LogManager.GetCurrentClassLogger(); internal CreatedFileMonitor(string path) { DoWork += CreatedFileMonitor_DoWork; @@ -25,6 +25,7 @@ namespace Maestro.Sources { } private void CreatedFileMonitor_DoWork(object sender, DoWorkEventArgs e) { + logger.Trace("Entry"); string path = e.Argument as string; int trasholdLimit = 1000; double lastDiff = 0; @@ -32,22 +33,22 @@ namespace Maestro.Sources { Thread.Sleep(trasholdLimit); FileInfo fi = new FileInfo(path); if (fi.Exists) { - Debug.WriteLine(string.Format("FileMonitor {0} {1} {2}", fi.CreationTime, fi.LastWriteTime, fi.LastAccessTime)); + //logger.Debug("FileMonitor {0} {1} {2}", fi.CreationTime, fi.LastWriteTime, fi.LastAccessTime); double currentDiff = (fi.LastWriteTime - fi.CreationTime).TotalSeconds; - Debug.WriteLine(string.Format("Diffs current {0} last {1}", currentDiff, lastDiff)); + logger.Debug("Diffs current {0} last {1}", currentDiff, lastDiff); if (lastDiff == currentDiff) { if (IsFileAccessible(fi.FullName)) { + logger.Debug("File {0} is accessible", fi.FullName); e.Result = fi; //else // e.Cancel = true; break; } } - lastDiff = currentDiff; } } - + logger.Trace("Exit"); } //private void CreatedFileMonitor_DoWork(object sender, DoWorkEventArgs e) { diff --git a/client/Maestro/Sources/FileSystemSource.cs b/client/Maestro/Sources/FileSystemSource.cs index 201742fe..71a5cd9f 100644 --- a/client/Maestro/Sources/FileSystemSource.cs +++ b/client/Maestro/Sources/FileSystemSource.cs @@ -10,8 +10,6 @@ using System.Drawing; using NLog; using MaestroShared.Commons; using System.Diagnostics; -using MaestroShared.Resources; -using System.Threading; namespace Maestro.Sources { public delegate void ClearAndInitialize(); @@ -240,12 +238,14 @@ namespace Maestro.Sources { } catch (Exception e) { + logger.Error(e); Shutdown(); } - Debug.WriteLine("initializeList exit"); + logger.Trace("Exit"); } private void createWatch(string path) { + logger.Trace("Entry"); watcher = new FileSystemWatcher(); watcher.Path = path; //watcher.NotifyFilter = NotifyFilters.LastWrite; @@ -256,20 +256,23 @@ namespace Maestro.Sources { watcher.Renamed += new RenamedEventHandler(OnRenamed); watcher.Error += new ErrorEventHandler(OnError); watcher.EnableRaisingEvents = true; + logger.Trace("Exit"); } public void OnError(object sender, ErrorEventArgs e) { - logger.Debug(e.GetException().Message); + logger.Error(e.GetException()); } public void OnRenamed(object sender, RenamedEventArgs e) { if (!String.IsNullOrEmpty(filter)) return; + logger.Trace("Entry"); //logger.Debug("{0} {1} {2}", e.ChangeType, e.OldName, e.Name); FileInfo fiOld = new FileInfo(e.OldFullPath); FileInfo fiNew = new FileInfo(e.FullPath); if (fiOld.Extension.Equals(fiNew.Extension)) { - var item = this.Where(x => x.Name == e.OldName).SingleOrDefault(); + logger.Debug("File rename"); + var item = this.Where(x => x.Name == e.OldName).FirstOrDefault(); if (item == null || !item.CanHandle(acceptableExtensions)) return; parent.SafeCall(() => { @@ -281,23 +284,26 @@ namespace Maestro.Sources { }); }); } else { + logger.Debug("File extension rename"); var newItem = CreateItem(fiNew, true); if (newItem.CanHandle(acceptableExtensions)) SafeCreateItem(newItem); - else { - var item = this.Where(x => x.Name == e.OldName).SingleOrDefault(); - SafeDeleteItem(item); - } + + var item = this.Where(x => x.Name == e.OldName).FirstOrDefault(); + SafeDeleteItem(item); } + logger.Trace("Exit"); } private void OnChanged(object sender, FileSystemEventArgs e) { if (!String.IsNullOrEmpty(filter)) return; + logger.Trace("Entry"); //logger.Debug("{0} {1}", e.ChangeType, e.Name); var item = this.Where(x => x.Name == e.Name).FirstOrDefault(); if (item == null || !item.CanHandle(acceptableExtensions)) return; + logger.Debug("File change"); parent.SafeCall(() => { item.FileInfo = new FileInfo(e.FullPath); item.IsHighlighted = true; @@ -306,11 +312,13 @@ namespace Maestro.Sources { Source = parent }); }); + logger.Trace("Exit"); } private void OnCreated(object sender, FileSystemEventArgs e) { if (!String.IsNullOrEmpty(filter)) return; + logger.Trace("Entry"); var item = CreateItem(new FileInfo(e.FullPath), true); if (!item.CanHandle(acceptableExtensions)) return; @@ -324,7 +332,7 @@ namespace Maestro.Sources { var completedItem = CreateItem(fileInfo, true); SafeCreateItem(completedItem); }; - logger.Debug("{0} {1}", e.ChangeType, e.Name); + logger.Trace("Exit"); } private void OnDeleted(object sender, FileSystemEventArgs e) { diff --git a/client/Maestro/nlog.config b/client/Maestro/nlog.config index 65416377..d5a005aa 100644 --- a/client/Maestro/nlog.config +++ b/client/Maestro/nlog.config @@ -3,13 +3,16 @@ - + - + + + + diff --git a/client/MaestroShared/Commons/PatternNameMaker.cs b/client/MaestroShared/Commons/PatternNameMaker.cs index 6112a07f..bd17c626 100644 --- a/client/MaestroShared/Commons/PatternNameMaker.cs +++ b/client/MaestroShared/Commons/PatternNameMaker.cs @@ -9,6 +9,7 @@ namespace MaestroShared.Commons { private const string NORMALIZE_TEXT_PATTERN = "[^0-9A-Za-z-._]"; private const string SOURCESTARTID_PATTERN = "[^0-9]"; private const string PATTERN_TARGETNAME = "%TARGETNAME%"; + private const string PATTERN_USERNAME = "%USERNAME%"; private const string PATTERN_ID = "%ID%"; private const string PATTERN_IDROOT = "%IDROOT%"; private const string PATTERN_SOURCENAME = "%SOURCENAME%"; @@ -38,26 +39,32 @@ namespace MaestroShared.Commons { return result; } - static public string Get(string pattern, string id, string fileName, string text) { + static public string Get(string pattern, string id, string inputName, string outputName, string userName, string text, DateTime? storedDateTime = null) { string idRoot = id.Contains(UNDERSCORE) ? id.Split(UNDERSCORE[0])[0] : id; + DateTime dt = storedDateTime == null ? DateTime.Now : (DateTime)storedDateTime; string result = pattern .Replace(PATTERN_ID, id) .Replace(PATTERN_IDROOT, idRoot) - .Replace(PATTERN_TIMESTAMP, DateTime.Now.ToString(DATETIME_FORMAT, CultureInfo.InvariantCulture)) - .Replace(PATTERN_DATESTAMP, DateTime.Now.ToString(DATE_FORMAT_NODOTS, CultureInfo.InvariantCulture)); + .Replace(PATTERN_TIMESTAMP, dt.ToString(DATETIME_FORMAT, CultureInfo.InvariantCulture)) + .Replace(PATTERN_DATESTAMP, dt.ToString(DATE_FORMAT_NODOTS, CultureInfo.InvariantCulture)); - if (!String.IsNullOrEmpty(fileName)) { - result = result.Replace(PATTERN_SOURCENAME, Normalize(Path.GetFileNameWithoutExtension(fileName))); - string sourceStartID = Regex.Replace(fileName, SOURCESTARTID_PATTERN, HYPHEN); + if (!String.IsNullOrEmpty(inputName)) { + result = result.Replace(PATTERN_SOURCENAME, Normalize(Path.GetFileNameWithoutExtension(inputName))); + string sourceStartID = Regex.Replace(inputName, SOURCESTARTID_PATTERN, HYPHEN); if (sourceStartID.Contains(HYPHEN)) sourceStartID = sourceStartID.Substring(0, sourceStartID.IndexOf(HYPHEN)); if (String.IsNullOrEmpty(sourceStartID)) result = result.Replace(PATTERN_SOURCESTARTID, String.Empty); else result = result.Replace(PATTERN_SOURCESTARTID, sourceStartID); - } + if (!String.IsNullOrEmpty(outputName)) + result = result.Replace(PATTERN_TARGETNAME, outputName); + + if (!String.IsNullOrEmpty(userName)) + result = result.Replace(PATTERN_USERNAME, userName); + if (!String.IsNullOrEmpty(text)) result = result.Replace(PATTERN_TEXT, Normalize(text)); return result; diff --git a/client/MaestroShared/Metadata/ArchiveMetadata.cs b/client/MaestroShared/Metadata/ArchiveMetadata.cs index 0aa11252..bacae55d 100644 --- a/client/MaestroShared/Metadata/ArchiveMetadata.cs +++ b/client/MaestroShared/Metadata/ArchiveMetadata.cs @@ -16,6 +16,7 @@ namespace MaestroShared.Metadata { public string mediaTitle { get; set; } public string mediaDescription { get; set; } public bool ok { get; set; } + public string userName { get; set; } public override string ToString() { return JsonConvert.SerializeObject(this); diff --git a/client/MaestroShared/Targets/TargetProcessorParameter.cs b/client/MaestroShared/Targets/TargetProcessorParameter.cs index 2bd01184..6f923a96 100644 --- a/client/MaestroShared/Targets/TargetProcessorParameter.cs +++ b/client/MaestroShared/Targets/TargetProcessorParameter.cs @@ -3,6 +3,7 @@ using MediaCubeClient; using MaestroShared.Configuration; using MaestroShared.Metadata; using LinkDotNet.MessageHandling.Contracts; +using System; namespace MaestroShared.Target { public class TargetProcessorParameter { @@ -19,5 +20,6 @@ namespace MaestroShared.Target { public MetadataType MetadataKind { get; set; } public string UserName { get; set; } public IMessageBus MessageBus { get; set; } + public DateTime CreateDate { get; set; } } } diff --git a/client/MaestroShared/Targets/UNCTargetProcessor.cs b/client/MaestroShared/Targets/UNCTargetProcessor.cs index b57e04a2..6302ffb0 100644 --- a/client/MaestroShared/Targets/UNCTargetProcessor.cs +++ b/client/MaestroShared/Targets/UNCTargetProcessor.cs @@ -357,7 +357,7 @@ namespace MaestroShared.Targets { } protected string GetDynamicText(string pattern) { - return PatternNameMaker.Get(pattern, ID, InputName, Parameters.MetadataText); + return PatternNameMaker.Get(pattern, ID, InputName, Output, Parameters.UserName, Parameters.MetadataText, Parameters.CreateDate); } private string CreateOutputFileName() { diff --git a/client/PlanAIRClient/TrafficIDSelector.cs b/client/PlanAIRClient/TrafficIDSelector.cs index daab33d9..0ac82bde 100644 --- a/client/PlanAIRClient/TrafficIDSelector.cs +++ b/client/PlanAIRClient/TrafficIDSelector.cs @@ -1,14 +1,10 @@ using System.Windows.Forms; using System; using System.Collections.Generic; -using System.Diagnostics; using LinkDotNet.MessageHandling.Contracts; using System.Drawing; using MaestroShared.Commons; using MaestroShared.Configuration; -using MaestroShared.Target; -using MaestroShared.Targets; -using System.IO; using System.Text.RegularExpressions; namespace TrafficClient { diff --git a/client/PlanAIRClient/Workers/MaterialWorker.cs b/client/PlanAIRClient/Workers/MaterialWorker.cs index ac5bfb6c..6f83d49d 100644 --- a/client/PlanAIRClient/Workers/MaterialWorker.cs +++ b/client/PlanAIRClient/Workers/MaterialWorker.cs @@ -17,7 +17,7 @@ namespace TrafficClient.Workers { } private TrafficItem ToTrafficItem(clIFsp_EC_MAMBradocastResult data) { - Debug.WriteLine(data.v_OkForAir); + //Debug.WriteLine(data.v_OkForAir); return new TrafficItem() { MediaID = data.v_MediaID, -- 2.54.0