git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Mon, 4 Dec 2017 11:56:17 +0000 (11:56 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Mon, 4 Dec 2017 11:56:17 +0000 (11:56 +0000)
12 files changed:
client/Maestro/Maestro.csproj
client/Maestro/MaestroForm.Target.cs
client/Maestro/Properties/AssemblyInfo.cs
client/Maestro/Sources/CreatedFileMonitor.cs
client/Maestro/Sources/FileSystemSource.cs
client/Maestro/nlog.config
client/MaestroShared/Commons/PatternNameMaker.cs
client/MaestroShared/Metadata/ArchiveMetadata.cs
client/MaestroShared/Targets/TargetProcessorParameter.cs
client/MaestroShared/Targets/UNCTargetProcessor.cs
client/PlanAIRClient/TrafficIDSelector.cs
client/PlanAIRClient/Workers/MaterialWorker.cs

index 55f38c46fddaeebcef25bf724573832d89b1b5a2..139ee95d167b11c436baad49f4558e1c2066eca6 100644 (file)
     <None Include="Configuration\-configuration-torokor-t.json">\r
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
     </None>\r
+    <None Include="Configuration\-ACTIVE-configuration-promo.json">\r
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
+    </None>\r
+    <None Include="Configuration\configuration-grafika.json">\r
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
+    </None>\r
     <None Include="Configuration\global.json">\r
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
     </None>\r
     <None Include="Configuration\-configuration-sxs.json">\r
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
     </None>\r
-    <None Include="Configuration\configuration-studio.json">\r
+    <None Include="Configuration\-configuration-studio.json">\r
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
     </None>\r
   </ItemGroup>\r
index 92282781f5da89cc524339a124d092e8bf2aace3..1b4871552f1c969b4f42e78cc2b18515178e42a6 100644 (file)
@@ -32,7 +32,7 @@ namespace Maestro {
         }\r
 \r
         private void CreateTarget(Target target) {\r
-            logger.Debug("Creating target {0}", target);\r
+            logger.Debug("Creating target '{0}'", target.Label);\r
             CheckBox checkBox = new CheckBox() {\r
                 Appearance = Appearance.Normal,\r
                 Text = target.Label,\r
@@ -75,6 +75,7 @@ namespace Maestro {
 \r
         private List<ITargetProcessor> CreateProcessors(Target target, CheckBox checkBox) {\r
             List<ITargetProcessor> result = null;\r
+            DateTime createDate = DateTime.Now;\r
             foreach (ISourceItem sourceItem in selectedSourceItems) {\r
                 if (sourceItem == null)\r
                     continue;\r
@@ -88,7 +89,7 @@ namespace Maestro {
                     result = null;\r
                     break;\r
                 }\r
-                TargetProcessorParameter processorParameter = CreateProcessorParameter(target, sourceItem);\r
+                TargetProcessorParameter processorParameter = CreateProcessorParameter(target, sourceItem, createDate);\r
                 ITargetProcessor processor = TargetProcessor.Create(target.Processor);\r
                 processor.Initialize(this, processorParameter);\r
                 if (result == null)\r
@@ -144,7 +145,7 @@ namespace Maestro {
             return true;\r
         }\r
 \r
-        private TargetProcessorParameter CreateProcessorParameter(Target target, ISourceItem sourceItem) {\r
+        private TargetProcessorParameter CreateProcessorParameter(Target target, ISourceItem sourceItem, DateTime createDate) {\r
             FileSystemSource source = bindingSource.DataSource as FileSystemSource;\r
 \r
             TargetProcessorParameter result = new TargetProcessorParameter() {\r
@@ -160,14 +161,15 @@ namespace Maestro {
                 VariantID = selectedMetadata == null ? 0 : selectedMetadata.VariantID,\r
                 MetadataKind = selectedMetadata == null ? MetadataType.None : selectedMetadata.Kind,\r
                 UserName = TrayApplicationContext.UserName,\r
-                MessageBus = MessageBus\r
+                MessageBus = MessageBus,\r
+                CreateDate = createDate\r
             };\r
-\r
+            result.ArchiveMetadata.userName = result.UserName;\r
             if (SelectedMetadata.Kind == MetadataType.MediaCube && result.ArchiveMetadata != null) {\r
-                result.ArchiveMetadata.itemHouseId = PatternNameMaker.Get(result.ArchiveMetadata.itemHouseId, result.ID, result.InputFileName, result.MetadataText);\r
-                result.ArchiveMetadata.itemTitle = PatternNameMaker.Get(result.ArchiveMetadata.itemTitle, result.ID, result.InputFileName, result.MetadataText);\r
-                result.ArchiveMetadata.mediaHouseId = PatternNameMaker.Get(result.ArchiveMetadata.mediaHouseId, result.ID, result.InputFileName, result.MetadataText);\r
-                result.ArchiveMetadata.mediaTitle = PatternNameMaker.Get(result.ArchiveMetadata.mediaTitle, result.ID, result.InputFileName, result.MetadataText);\r
+                result.ArchiveMetadata.itemHouseId = PatternNameMaker.Get(result.ArchiveMetadata.itemHouseId, result.ID, result.InputFileName, null, null, result.MetadataText);\r
+                result.ArchiveMetadata.itemTitle = PatternNameMaker.Get(result.ArchiveMetadata.itemTitle, result.ID, result.InputFileName, null, null, result.MetadataText);\r
+                result.ArchiveMetadata.mediaHouseId = PatternNameMaker.Get(result.ArchiveMetadata.mediaHouseId, result.ID, result.InputFileName, null, null, result.MetadataText);\r
+                result.ArchiveMetadata.mediaTitle = PatternNameMaker.Get(result.ArchiveMetadata.mediaTitle, result.ID, result.InputFileName, null, null, result.MetadataText);\r
             }\r
             return result;\r
         }\r
index 76d8cb5247f55a68c2a943f4367ee53f121075af..d4db9ec847f82a18e3227636ca275913c8a96826 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.6.2")]\r
-[assembly: AssemblyFileVersion("2.0.6.2")]\r
+[assembly: AssemblyVersion("2.0.6.3")]\r
+[assembly: AssemblyFileVersion("2.0.6.3")]\r
index 2aafd2de05bfc9ac0f3ddb01cb7c6b2b52a32ba0..d74f371d3c19f8da0d31f492925f3b5617415059 100644 (file)
@@ -1,11 +1,11 @@
-using System;\r
+using NLog;\r
 using System.ComponentModel;\r
-using System.Diagnostics;\r
 using System.IO;\r
 using System.Threading;\r
 \r
 namespace Maestro.Sources {\r
     internal class CreatedFileMonitor : BackgroundWorker {\r
+        private static Logger logger = LogManager.GetCurrentClassLogger();\r
 \r
         internal CreatedFileMonitor(string path) {\r
             DoWork += CreatedFileMonitor_DoWork;\r
@@ -25,6 +25,7 @@ namespace Maestro.Sources {
         }\r
 \r
         private void CreatedFileMonitor_DoWork(object sender, DoWorkEventArgs e) {\r
+            logger.Trace("Entry");\r
             string path = e.Argument as string;\r
             int trasholdLimit = 1000;\r
             double lastDiff = 0;\r
@@ -32,22 +33,22 @@ namespace Maestro.Sources {
                 Thread.Sleep(trasholdLimit);\r
                 FileInfo fi = new FileInfo(path);\r
                 if (fi.Exists) {\r
-                    Debug.WriteLine(string.Format("FileMonitor {0} {1} {2}", fi.CreationTime, fi.LastWriteTime, fi.LastAccessTime));\r
+                    //logger.Debug("FileMonitor {0} {1} {2}", fi.CreationTime, fi.LastWriteTime, fi.LastAccessTime);\r
                     double currentDiff = (fi.LastWriteTime - fi.CreationTime).TotalSeconds;\r
-                    Debug.WriteLine(string.Format("Diffs current {0} last {1}", currentDiff, lastDiff));\r
+                    logger.Debug("Diffs current {0} last {1}", currentDiff, lastDiff);\r
                     if (lastDiff == currentDiff) {\r
                         if (IsFileAccessible(fi.FullName)) {\r
+                            logger.Debug("File {0} is accessible", fi.FullName);\r
                             e.Result = fi;\r
                             //else\r
                             //    e.Cancel = true;\r
                             break;\r
                         }\r
                     }\r
-\r
                     lastDiff = currentDiff;\r
                 }\r
             }\r
-\r
+            logger.Trace("Exit");\r
         }\r
 \r
         //private void CreatedFileMonitor_DoWork(object sender, DoWorkEventArgs e) {\r
index 201742fe2dc419b906346ddceb58c044c0e4a54b..71a5cd9f82f7aa58936d5b0aa1a4756d9218fde0 100644 (file)
@@ -10,8 +10,6 @@ using System.Drawing;
 using NLog;\r
 using MaestroShared.Commons;\r
 using System.Diagnostics;\r
-using MaestroShared.Resources;\r
-using System.Threading;\r
 \r
 namespace Maestro.Sources {\r
     public delegate void ClearAndInitialize();\r
@@ -240,12 +238,14 @@ namespace Maestro.Sources {
 \r
             }\r
             catch (Exception e) {\r
+                logger.Error(e);\r
                 Shutdown();\r
             }\r
-            Debug.WriteLine("initializeList exit");\r
+            logger.Trace("Exit");\r
         }\r
 \r
         private void createWatch(string path) {\r
+            logger.Trace("Entry");\r
             watcher = new FileSystemWatcher();\r
             watcher.Path = path;\r
             //watcher.NotifyFilter = NotifyFilters.LastWrite;\r
@@ -256,20 +256,23 @@ namespace Maestro.Sources {
             watcher.Renamed += new RenamedEventHandler(OnRenamed);\r
             watcher.Error += new ErrorEventHandler(OnError);\r
             watcher.EnableRaisingEvents = true;\r
+            logger.Trace("Exit");\r
         }\r
 \r
         public void OnError(object sender, ErrorEventArgs e) {\r
-            logger.Debug(e.GetException().Message);\r
+            logger.Error(e.GetException());\r
         }\r
 \r
         public void OnRenamed(object sender, RenamedEventArgs e) {\r
             if (!String.IsNullOrEmpty(filter))\r
                 return;\r
+            logger.Trace("Entry");\r
             //logger.Debug("{0} {1} {2}", e.ChangeType, e.OldName, e.Name);\r
             FileInfo fiOld = new FileInfo(e.OldFullPath);\r
             FileInfo fiNew = new FileInfo(e.FullPath);\r
             if (fiOld.Extension.Equals(fiNew.Extension)) {\r
-                var item = this.Where(x => x.Name == e.OldName).SingleOrDefault();\r
+                logger.Debug("File rename");\r
+                var item = this.Where(x => x.Name == e.OldName).FirstOrDefault();\r
                 if (item == null || !item.CanHandle(acceptableExtensions))\r
                     return;\r
                 parent.SafeCall(() => {\r
@@ -281,23 +284,26 @@ namespace Maestro.Sources {
                     });\r
                 });\r
             } else {\r
+                logger.Debug("File extension rename");\r
                 var newItem = CreateItem(fiNew, true);\r
                 if (newItem.CanHandle(acceptableExtensions))\r
                     SafeCreateItem(newItem);\r
-                else {\r
-                    var item = this.Where(x => x.Name == e.OldName).SingleOrDefault();\r
-                    SafeDeleteItem(item);\r
-                }\r
+\r
+                var item = this.Where(x => x.Name == e.OldName).FirstOrDefault();\r
+                SafeDeleteItem(item);\r
             }\r
+            logger.Trace("Exit");\r
         }\r
 \r
         private void OnChanged(object sender, FileSystemEventArgs e) {\r
             if (!String.IsNullOrEmpty(filter))\r
                 return;\r
+            logger.Trace("Entry");\r
             //logger.Debug("{0} {1}", e.ChangeType, e.Name);\r
             var item = this.Where(x => x.Name == e.Name).FirstOrDefault();\r
             if (item == null || !item.CanHandle(acceptableExtensions))\r
                 return;\r
+            logger.Debug("File change");\r
             parent.SafeCall(() => {\r
                 item.FileInfo = new FileInfo(e.FullPath);\r
                 item.IsHighlighted = true;\r
@@ -306,11 +312,13 @@ namespace Maestro.Sources {
                     Source = parent\r
                 });\r
             });\r
+            logger.Trace("Exit");\r
         }\r
 \r
         private void OnCreated(object sender, FileSystemEventArgs e) {\r
             if (!String.IsNullOrEmpty(filter))\r
                 return;\r
+            logger.Trace("Entry");\r
             var item = CreateItem(new FileInfo(e.FullPath), true);\r
             if (!item.CanHandle(acceptableExtensions))\r
                 return;\r
@@ -324,7 +332,7 @@ namespace Maestro.Sources {
                 var completedItem = CreateItem(fileInfo, true);\r
                 SafeCreateItem(completedItem);\r
             };\r
-            logger.Debug("{0} {1}", e.ChangeType, e.Name);\r
+            logger.Trace("Exit");\r
         }\r
 \r
         private void OnDeleted(object sender, FileSystemEventArgs e) {\r
index 6541637710d9c339839bd646dbcb8f987117da4c..d5a005aac17a1b8cf10c2249b569c126aa31575d 100644 (file)
@@ -3,13 +3,16 @@
 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true">\r
   <!--Kimenetek-->\r
   <targets>\r
-    <target name="t1" xsi:type="Debugger" layout="${date:format=HH\:mm\:ss} ${level} ${logger:shortName=true} | ${message}" />\r
+    <target name="t1" xsi:type="Debugger" layout="${date:format=HH\:mm\:ss} ${level:uppercase=true} ${callsite:includeNamespace=false:includeSourcePath=false} | ${message} ${callsite:fileName=true:className=false:includeSourcePath=false:methodName=false:includeNamespace=false}" />\r
     <target name="t2" xsi:type="Debugger" layout="ERROR stack: ${stacktrace:format=Raw}" />\r
-    <!--<target name="debug" xsi:type="Debugger" layout="${date:format=yyyy.MM.dd HH\:mm\:ss} ${level} ${message}" />-->\r
+    <target name="file" xsi:type="File" layout="${date:format=yyyy.MM.dd HH\:mm\:ss} ${level:uppercase=true} ${logger:shortName=true} | ${message}" fileName="${basedir}/logs/maestro.log" keepFileOpen="false" encoding="utf-8" archiveEvery="Day" archiveNumbering="Rolling" maxArchiveFiles="7" />\r
+    <target name="errorfile" xsi:type="File" layout="${date:format=yyyy.MM.dd HH\:mm\:ss} ${level:uppercase=true} ${logger:shortName=true} | ${message} ${stacktrace:format=Raw}" fileName="${basedir}/logs/maestro-err.log" keepFileOpen="false" encoding="utf-8" archiveEvery="Day" archiveNumbering="Rolling" maxArchiveFiles="7" />\r
   </targets>\r
   <!--Naplózási szint-->\r
   <rules>\r
     <logger name="*" minlevel="Trace" writeTo="t1" />\r
     <logger name="*" minlevel="Error" writeTo="t2" />\r
+    <logger name="*" minlevel="Trace" writeTo="file" />\r
+    <logger name="*" minlevel="Error" writeTo="errorfile" />\r
   </rules>\r
 </nlog>\r
index 6112a07f5f728fe3a541508f821f6da1f498655e..bd17c626b752e05129aed1b31ad0af5e844d5f37 100644 (file)
@@ -9,6 +9,7 @@ namespace MaestroShared.Commons {
         private const string NORMALIZE_TEXT_PATTERN = "[^0-9A-Za-z-._]";\r
         private const string SOURCESTARTID_PATTERN = "[^0-9]";\r
         private const string PATTERN_TARGETNAME = "%TARGETNAME%";\r
+        private const string PATTERN_USERNAME = "%USERNAME%";\r
         private const string PATTERN_ID = "%ID%";\r
         private const string PATTERN_IDROOT = "%IDROOT%";\r
         private const string PATTERN_SOURCENAME = "%SOURCENAME%";\r
@@ -38,26 +39,32 @@ namespace MaestroShared.Commons {
             return result;\r
         }\r
 \r
-        static public string Get(string pattern, string id, string fileName, string text) {\r
+        static public string Get(string pattern, string id, string inputName, string outputName, string userName, string text, DateTime? storedDateTime = null) {\r
             string idRoot = id.Contains(UNDERSCORE) ? id.Split(UNDERSCORE[0])[0] : id;\r
+            DateTime dt = storedDateTime == null ? DateTime.Now : (DateTime)storedDateTime;\r
             string result = pattern\r
                 .Replace(PATTERN_ID, id)\r
                 .Replace(PATTERN_IDROOT, idRoot)\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(PATTERN_TIMESTAMP, dt.ToString(DATETIME_FORMAT, CultureInfo.InvariantCulture))\r
+                .Replace(PATTERN_DATESTAMP, dt.ToString(DATE_FORMAT_NODOTS, CultureInfo.InvariantCulture));\r
 \r
-            if (!String.IsNullOrEmpty(fileName)) {\r
-                result = result.Replace(PATTERN_SOURCENAME, Normalize(Path.GetFileNameWithoutExtension(fileName)));\r
-                string sourceStartID = Regex.Replace(fileName, SOURCESTARTID_PATTERN, HYPHEN);\r
+            if (!String.IsNullOrEmpty(inputName)) {\r
+                result = result.Replace(PATTERN_SOURCENAME, Normalize(Path.GetFileNameWithoutExtension(inputName)));\r
+                string sourceStartID = Regex.Replace(inputName, SOURCESTARTID_PATTERN, HYPHEN);\r
                 if (sourceStartID.Contains(HYPHEN))\r
                     sourceStartID = sourceStartID.Substring(0, sourceStartID.IndexOf(HYPHEN));\r
                 if (String.IsNullOrEmpty(sourceStartID))\r
                     result = result.Replace(PATTERN_SOURCESTARTID, String.Empty);\r
                 else\r
                     result = result.Replace(PATTERN_SOURCESTARTID, sourceStartID);\r
-\r
             }\r
 \r
+            if (!String.IsNullOrEmpty(outputName))\r
+                result = result.Replace(PATTERN_TARGETNAME, outputName);\r
+\r
+            if (!String.IsNullOrEmpty(userName))\r
+                result = result.Replace(PATTERN_USERNAME, userName);\r
+\r
             if (!String.IsNullOrEmpty(text))\r
                 result = result.Replace(PATTERN_TEXT, Normalize(text));\r
             return result; \r
index 0aa11252dee8280d02ad12bbafd1098015f0965a..bacae55d1234ea409e562e81d302142419deecb2 100644 (file)
@@ -16,6 +16,7 @@ namespace MaestroShared.Metadata {
         public string mediaTitle { get; set; }\r
         public string mediaDescription { get; set; }\r
         public bool ok { get; set; }\r
+        public string userName { get; set; }\r
 \r
         public override string ToString() {\r
             return JsonConvert.SerializeObject(this);\r
index 2bd01184943be775f383b36aed2baec2d6188391..6f923a96c136b82a9f0639ef870f334f256b185a 100644 (file)
@@ -3,6 +3,7 @@ using MediaCubeClient;
 using MaestroShared.Configuration;\r
 using MaestroShared.Metadata;\r
 using LinkDotNet.MessageHandling.Contracts;\r
+using System;\r
 \r
 namespace MaestroShared.Target {\r
     public class TargetProcessorParameter {\r
@@ -19,5 +20,6 @@ namespace MaestroShared.Target {
         public MetadataType MetadataKind { get; set; }\r
         public string UserName { get; set; }\r
         public IMessageBus MessageBus { get; set; }\r
+        public DateTime CreateDate { get; set; }\r
     }\r
 }\r
index b57e04a2ec26e9964152f45cfde1eda2cc73fa6d..6302ffb067111dde02b506b782fb8ef8e3c5f14f 100644 (file)
@@ -357,7 +357,7 @@ namespace MaestroShared.Targets {
         }\r
 \r
         protected string GetDynamicText(string pattern) {\r
-            return PatternNameMaker.Get(pattern, ID, InputName, Parameters.MetadataText);\r
+            return PatternNameMaker.Get(pattern, ID, InputName, Output, Parameters.UserName, Parameters.MetadataText, Parameters.CreateDate);\r
         }\r
 \r
         private string CreateOutputFileName() {\r
index daab33d9af3bb2748f5b195bdbc012f9ba093d64..0ac82bde1335dd459ae14b63fbf844c12229246d 100644 (file)
@@ -1,14 +1,10 @@
 using System.Windows.Forms;\r
 using System;\r
 using System.Collections.Generic;\r
-using System.Diagnostics;\r
 using LinkDotNet.MessageHandling.Contracts;\r
 using System.Drawing;\r
 using MaestroShared.Commons;\r
 using MaestroShared.Configuration;\r
-using MaestroShared.Target;\r
-using MaestroShared.Targets;\r
-using System.IO;\r
 using System.Text.RegularExpressions;\r
 \r
 namespace TrafficClient {\r
index ac5bfb6c2812c5af9c23d01f1001f47a296fba9b..6f83d49d901dfbfb768d4e51cd5f2e1c701fab35 100644 (file)
@@ -17,7 +17,7 @@ namespace TrafficClient.Workers {
         }\r
 \r
         private TrafficItem ToTrafficItem(clIFsp_EC_MAMBradocastResult data) {\r
-            Debug.WriteLine(data.v_OkForAir);\r
+            //Debug.WriteLine(data.v_OkForAir);\r
 \r
             return new TrafficItem() {\r
                 MediaID = data.v_MediaID,\r