From: Bellai Ádám Date: Fri, 6 Oct 2017 13:54:32 +0000 (+0000) Subject: git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube... X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=73ed947e9348d17f7744914ffe8871d81dbcdb24;p=mediacube.git git-tfs-id: [tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C30551 --- diff --git a/client/IntegrationTests/MaestroIT.cs b/client/IntegrationTests/MaestroIT.cs index 2ab62d64..10b60eec 100644 --- a/client/IntegrationTests/MaestroIT.cs +++ b/client/IntegrationTests/MaestroIT.cs @@ -1,5 +1,6 @@ using Maestro.Configuration; using Maestro.Targets; +using Maestro; using Microsoft.VisualStudio.TestTools.UnitTesting; using System; @@ -17,7 +18,16 @@ namespace IntegrationTests { }, OutputFormat = "{0}_{1}_{2}" }; - FTPTargetProcessor sut = new FTPTargetProcessor(null, null, configuration, @"c:\tmp\watch\tcdrone.MXF", "000000", null, null, null); + TargetProcessorParametersWrapper parameters = new TargetProcessorParametersWrapper() { + SourceConfig = null, + TargetConfig = configuration, + InputFileName = @"c:\tmp\watch\tcdrone.MXF", + ID = "000000", + Segments = null, + MediaCubeApi = null, + ArchiveMetadata = null + }; + FTPTargetProcessor sut = new FTPTargetProcessor(null, parameters); sut.Execute(); } diff --git a/client/Maestro/MaestroForm.Target.cs b/client/Maestro/MaestroForm.Target.cs index a95a6bf8..d8a69d23 100644 --- a/client/Maestro/MaestroForm.Target.cs +++ b/client/Maestro/MaestroForm.Target.cs @@ -14,15 +14,15 @@ using JobEngineClient; namespace Maestro { public class TargetProcessorParametersWrapper { - public Source sourceConfig { get; set; } - public Target targetConfig { get; set; } - public string inputFileName { get; set; } - public string id { get; set; } - public List segments { get; set; } - public MediaCubeApi mediaCubeApi { get; set; } - public ArchiveMetadata archiveMetadata { get; set; } - public TrafficAPI client { get; set; } - public int variantID { get; set; } + public Source SourceConfig { get; set; } + public Target TargetConfig { get; set; } + public string InputFileName { get; set; } + public string ID { get; set; } + public List Segments { get; set; } + public MediaCubeApi MediaCubeApi { get; set; } + public ArchiveMetadata ArchiveMetadata { get; set; } + public TrafficAPI Client { get; set; } + public int VariantID { get; set; } } public partial class MaestroForm { @@ -62,7 +62,18 @@ namespace Maestro { string id = selectedMetadata == null ? textSelectedMetadata.Text : selectedMetadata.ID; ArchiveMetadata archiveMetadataClone = ArchiveMetadata.DeepClone(archiveMetadatamodel); List segmentsClone = new List(segments); - object[] parameters = new object[] { this, Configuration.Source, target, selectedFile.Name, id, segmentsClone, mediaCubeApi, archiveMetadataClone, api, variantID }; + TargetProcessorParametersWrapper parameterObj = new TargetProcessorParametersWrapper() { + ArchiveMetadata = archiveMetadataClone, + Client = api, + ID = id, + InputFileName = selectedFile.Name, + MediaCubeApi = mediaCubeApi, + Segments = segmentsClone, + SourceConfig = Configuration.Source, + TargetConfig = target, + VariantID = variantID + }; + object[] parameters = new object[] { this, parameterObj}; ITargetProcessor processor = (ITargetProcessor)Activator.CreateInstance(type, parameters); processors.Add(processor); } diff --git a/client/Maestro/MaestroForm.cs b/client/Maestro/MaestroForm.cs index d99aa6fa..e9a08042 100644 --- a/client/Maestro/MaestroForm.cs +++ b/client/Maestro/MaestroForm.cs @@ -223,7 +223,6 @@ namespace Maestro { result = api.GetBroadcasts(startingName, null, null, true); else if (startingName.StartsWith("P")) result = api.GetPromotionals(startingName); - //todo ha az adatbázis felvan töltve normális adatokkal, megnézni hogy tényleg R betüvel kezdődnek-e a reklámok else if (startingName.StartsWith("R")) result = api.GetAdvertisements(startingName); ProcessMamResults(result); @@ -244,6 +243,6 @@ namespace Maestro { searchResult.ShowDialog(); } - + } } diff --git a/client/Maestro/Targets/FTPTargetProcessor.cs b/client/Maestro/Targets/FTPTargetProcessor.cs index 983670bb..fb82d9e5 100644 --- a/client/Maestro/Targets/FTPTargetProcessor.cs +++ b/client/Maestro/Targets/FTPTargetProcessor.cs @@ -5,11 +5,7 @@ using System; using System.IO; using System.Net; using System.Windows.Forms; -using System.Collections.Generic; -using TrafficClient; using Model; -using JobEngineClient; -using Maestro.Metadata; namespace Maestro.Targets { @@ -17,22 +13,19 @@ namespace Maestro.Targets { private readonly Logger logger = LogManager.GetCurrentClassLogger(); protected FtpClient targetFTP; - public FTPTargetProcessor(Control parent, Source sourceConfig, Target targetConfig, - string inputFileName, string id, List segments, - MediaCubeApi mediaCubeApi, ArchiveMetadata archiveMetadata, - TrafficAPI client, int variantID) - : base(parent, sourceConfig, targetConfig, inputFileName, id, segments, mediaCubeApi, archiveMetadata, client, variantID) { + public FTPTargetProcessor(Control parent, TargetProcessorParametersWrapper parameters) + : base(parent, parameters) { FtpTrace.LogFunctions = false; - Uri inputUri = new Uri(String.Format("{0}/{1}", sourceConfig.Local.Address.LocalPath, inputFileName)); + Uri inputUri = new Uri(String.Format("{0}/{1}", parameters.SourceConfig.Local.Address.LocalPath, parameters.InputFileName)); inputFile = new FileInfo(inputUri.LocalPath); Input = inputFile.FullName; - ID = id; - workFlowAction = new WorkflowAction() { houseId = ID, tag = targetConfig.Tag, touched = DateTime.Now }; + ID = parameters.ID; + workFlowAction = new WorkflowAction() { houseId = ID, tag = parameters.TargetConfig.Tag, touched = DateTime.Now }; } protected override void BeforeExecute() { base.BeforeExecute(); - targetFTP = CreateClient(targetConfig.Remote); + targetFTP = CreateClient(parameters.TargetConfig.Remote); } protected override void AfterExecute() { diff --git a/client/Maestro/Targets/FXPTargetProcessor.cs b/client/Maestro/Targets/FXPTargetProcessor.cs index 52e4a835..9bc19495 100644 --- a/client/Maestro/Targets/FXPTargetProcessor.cs +++ b/client/Maestro/Targets/FXPTargetProcessor.cs @@ -1,15 +1,10 @@ using FluentFTP; -using Maestro.Commons; using Maestro.Configuration; using NLog; using System; using System.Text.RegularExpressions; using System.Threading; using System.Windows.Forms; -using System.Collections.Generic; -using TrafficClient; -using JobEngineClient; -using Maestro.Metadata; namespace Maestro.Targets { @@ -17,12 +12,9 @@ namespace Maestro.Targets { private Logger logger = LogManager.GetCurrentClassLogger(); private Source sourceConfig; - public FXPTargetProcessor(Control parent, Source sourceConfig, Target targetConfig, - string inputFileName, string id, List segments, - MediaCubeApi mediaCubeApi, ArchiveMetadata archiveMetadata, - TrafficAPI client, int variantID) : - base(parent, sourceConfig, targetConfig, inputFileName, id, segments, mediaCubeApi, archiveMetadata, client, variantID) { - this.sourceConfig = sourceConfig; + public FXPTargetProcessor(Control parent,TargetProcessorParametersWrapper parameters) : + base(parent, parameters) { + sourceConfig = parameters.SourceConfig; } protected override void UploadFile() { @@ -61,7 +53,7 @@ namespace Maestro.Targets { if (!replyRETR.Success) throw new Exception(replyRETR.ErrorMessage); - monitorFTP = CreateClient(targetConfig.Remote); + monitorFTP = CreateClient(parameters.TargetConfig.Remote); long overall = 0; while (overall != ilength) { diff --git a/client/Maestro/Targets/UNCTargetProcessor.cs b/client/Maestro/Targets/UNCTargetProcessor.cs index e74c9ad9..34cd43ae 100644 --- a/client/Maestro/Targets/UNCTargetProcessor.cs +++ b/client/Maestro/Targets/UNCTargetProcessor.cs @@ -1,14 +1,10 @@ using Maestro.Configuration; using NLog; using System; -using System.Linq; using System.IO; using System.Windows.Forms; -using System.Collections.Generic; using TrafficClient; using Model; -using JobEngineClient; -using Maestro.Metadata; using System.Text; using Maestro.Commons; @@ -25,33 +21,20 @@ namespace Maestro.Targets { private const string STATUS_FOLDER = ".STATUS"; private const string KILLDATE_FILE = "{0}.{1}.killdate"; private const string METADATA_FILE = "{0}.json"; - private MediaCubeApi mediaCubeApi; - protected Target targetConfig; protected FileInfo inputFile; protected string workingDir; - protected List segments; - protected ArchiveMetadata archiveMetadata; - protected TrafficAPI client; - protected int variantID; + protected TargetProcessorParametersWrapper parameters; public WorkflowAction workFlowAction { get; set; } - public UNCTargetProcessor(Control parent, Source sourceConfig, Target targetConfig, - string inputFileName, string id, List segments, - MediaCubeApi mediaCubeApi, ArchiveMetadata archiveMetadata, - TrafficAPI client, int variantID) + public UNCTargetProcessor(Control parent, TargetProcessorParametersWrapper parameters) : base(parent) { - this.mediaCubeApi = mediaCubeApi; - this.targetConfig = targetConfig; - this.archiveMetadata = archiveMetadata; - this.segments = segments; - this.client = client; - this.variantID = variantID; - InputName = inputFileName; - Input = Path.Combine(sourceConfig.Local.Address.LocalPath, inputFileName); + this.parameters = parameters; + InputName = parameters.InputFileName; + Input = Path.Combine(parameters.SourceConfig.Local.Address.LocalPath, parameters.InputFileName); inputFile = new FileInfo(Input); - ID = id; - workFlowAction = new WorkflowAction() { houseId = ID, tag = targetConfig.Tag, touched = DateTime.Now }; + ID = parameters.ID; + workFlowAction = new WorkflowAction() { houseId = ID, tag = parameters.TargetConfig.Tag, touched = DateTime.Now }; } protected virtual void BeforeExecute() { @@ -64,7 +47,7 @@ namespace Maestro.Targets { bool result = false; try { BeforeExecute(); - workingDir = DetermineWorkingDirectory(targetConfig.Remote); + workingDir = DetermineWorkingDirectory(parameters.TargetConfig.Remote); EnsureDirectoryExistence(workingDir); OutputName = CreateOutputFileName(); Output = Path.Combine(workingDir, OutputName); @@ -93,18 +76,18 @@ namespace Maestro.Targets { Message = SUCCESS; workFlowAction.description = SUCCESS; workFlowAction.successful = true; - if (targetConfig.KillDateDays > 0) + if (parameters.TargetConfig.KillDateDays > 0) UploadKillDateFile(); - if (targetConfig.UseMetadata && archiveMetadata != null) + if (parameters.TargetConfig.UseMetadata && parameters.ArchiveMetadata != null) CreateMetadata(); - if (targetConfig.SaveSegments && segments != null) + if (parameters.TargetConfig.SaveSegments && parameters.Segments != null) SaveSegments(); } private void SaveSegments() { - client.DeleteSegments(variantID); - foreach (Segment actual in segments) { - client.AddSegmentToCopia(variantID, actual.Comment, actual.TCIn, actual.TCOut, actual.Optional); + parameters.Client.DeleteSegments(parameters.VariantID); + foreach (Segment actual in parameters.Segments) { + parameters.Client.AddSegmentToCopia(parameters.VariantID, actual.Comment, actual.TCIn, actual.TCOut, actual.Optional); } } @@ -120,7 +103,7 @@ namespace Maestro.Targets { private void SendWorkFlowAction() { try { - mediaCubeApi.Create(workFlowAction); + parameters.MediaCubeApi.Create(workFlowAction); } catch (Exception e) { MessageBox.Show(parent, e.Message); @@ -129,7 +112,7 @@ namespace Maestro.Targets { private String DetermineWorkingDirectory(Connection connection) { string result = null; - if (targetConfig.CreateSubFolder) + if (parameters.TargetConfig.CreateSubFolder) result = Path.Combine(connection.Address.LocalPath, ID); else result = connection.Address.LocalPath; @@ -137,23 +120,23 @@ namespace Maestro.Targets { } private void UploadKillDateFile() { - Uri address = targetConfig.Remote.Address; + Uri address = parameters.TargetConfig.Remote.Address; string statusWorkDir = Path.Combine(address.LocalPath, STATUS_FOLDER); EnsureDirectoryExistence(statusWorkDir); DateTime date = DateTime.Now; - date = date.AddDays(targetConfig.KillDateDays); + date = date.AddDays(parameters.TargetConfig.KillDateDays); string fileName = String.Format(KILLDATE_FILE, OutputName, date.ToString("yyyyMMdd")); logger.Debug("Creating KILLDATE status file {0}", fileName); UploadContent(Path.Combine(statusWorkDir, fileName), null); } private void CreateMetadata() { - Uri address = targetConfig.Remote.Address; + Uri address = parameters.TargetConfig.Remote.Address; string statusWorkDir = Path.Combine(address.LocalPath, STATUS_FOLDER); EnsureDirectoryExistence(statusWorkDir); string fileName = String.Format(METADATA_FILE, OutputName); logger.Debug("Creating METADATA file {0}", fileName); - byte[] content = Encoding.UTF8.GetBytes(archiveMetadata.ToString()); + byte[] content = Encoding.UTF8.GetBytes(parameters.ArchiveMetadata.ToString()); UploadContent(Path.Combine(statusWorkDir, fileName), content); } @@ -183,7 +166,7 @@ namespace Maestro.Targets { } protected virtual string CreateOutputFileName() { - string nameWithoutExtension = targetConfig.OutputFormat.Replace("%ID%", ID).Replace("%SOURCENAME%", Path.GetFileNameWithoutExtension(inputFile.Name)); + string nameWithoutExtension = parameters.TargetConfig.OutputFormat.Replace("%ID%", ID).Replace("%SOURCENAME%", Path.GetFileNameWithoutExtension(inputFile.Name)); string result = String.Format(FILENAME, nameWithoutExtension, inputFile.Extension); int version = 1; while (FileExists(Path.Combine(workingDir, result))) { diff --git a/client/PlanAIRClient/TrafficAPI.cs b/client/PlanAIRClient/TrafficAPI.cs index 5edaac15..050aacab 100644 --- a/client/PlanAIRClient/TrafficAPI.cs +++ b/client/PlanAIRClient/TrafficAPI.cs @@ -36,7 +36,7 @@ namespace TrafficClient { } public void BroadcastOKForAir(int itemID) { - broadvastWorker.BroadcastOKForAir(itemID); + broadvastWorker.SetBroadcastOKForAir(itemID); } public List GetPromotionals(string strParam) { diff --git a/client/PlanAIRClient/Workers/BroadcastWorker.cs b/client/PlanAIRClient/Workers/BroadcastWorker.cs index ec29695f..70097c6c 100644 --- a/client/PlanAIRClient/Workers/BroadcastWorker.cs +++ b/client/PlanAIRClient/Workers/BroadcastWorker.cs @@ -124,7 +124,7 @@ namespace TrafficClient.Workers { return result; } - public void BroadcastOKForAir(int itemID) { + public void SetBroadcastOKForAir(int itemID) { try { TryConnect(); using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {