<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
}\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
\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
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
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
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
// 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
-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
}\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
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
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
\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
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
});\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
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
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
<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
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
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
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
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
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
}\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
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
}\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