From: Bellai Ádám Date: Fri, 6 Oct 2017 12:20:24 +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=63f125f17abdd1a22f7b258712574e0ad9713445;p=mediacube.git git-tfs-id: [tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C30550 --- diff --git a/client/Maestro/ArchiveMetadata.Designer.cs b/client/Maestro/ArchiveMetadataForm.Designer.cs similarity index 97% rename from client/Maestro/ArchiveMetadata.Designer.cs rename to client/Maestro/ArchiveMetadataForm.Designer.cs index 01206e43..e316a623 100644 --- a/client/Maestro/ArchiveMetadata.Designer.cs +++ b/client/Maestro/ArchiveMetadataForm.Designer.cs @@ -1,5 +1,5 @@ namespace Maestro { - partial class ArchiveMetadata { + partial class ArchiveMetadataForm { /// /// Required designer variable. /// @@ -220,7 +220,7 @@ this.tableLayoutPanel1.Size = new System.Drawing.Size(565, 357); this.tableLayoutPanel1.TabIndex = 3; // - // ArchiveMetadata + // ArchiveMetadataForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; @@ -228,7 +228,7 @@ this.Controls.Add(this.tableLayoutPanel1); this.Controls.Add(this.groupBox1); this.Icon = global::Maestro.Properties.Resources.AppIcon; - this.Name = "ArchiveMetadata"; + this.Name = "ArchiveMetadataForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Archive metaadatok módosítása"; this.groupBox1.ResumeLayout(false); diff --git a/client/Maestro/ArchiveMetadata.cs b/client/Maestro/ArchiveMetadataForm.cs similarity index 83% rename from client/Maestro/ArchiveMetadata.cs rename to client/Maestro/ArchiveMetadataForm.cs index c21aab2b..be7ce9da 100644 --- a/client/Maestro/ArchiveMetadata.cs +++ b/client/Maestro/ArchiveMetadataForm.cs @@ -2,16 +2,16 @@ using Maestro.Metadata; namespace Maestro { - public partial class ArchiveMetadata : Form { + public partial class ArchiveMetadataForm : Form { - private ArchiveMetadataModel model; + private ArchiveMetadata model; - public ArchiveMetadata(ArchiveMetadataModel model) : this() { + public ArchiveMetadataForm(ArchiveMetadata model) : this() { this.model = model; FillTheTextBoxes(); } - public ArchiveMetadata() { + public ArchiveMetadataForm() { InitializeComponent(); } diff --git a/client/Maestro/ArchiveMetadata.resx b/client/Maestro/ArchiveMetadataForm.resx similarity index 100% rename from client/Maestro/ArchiveMetadata.resx rename to client/Maestro/ArchiveMetadataForm.resx diff --git a/client/Maestro/Maestro.csproj b/client/Maestro/Maestro.csproj index e536122b..b237afc2 100644 --- a/client/Maestro/Maestro.csproj +++ b/client/Maestro/Maestro.csproj @@ -101,11 +101,11 @@ - + Form - - ArchiveMetadata.cs + + ArchiveMetadataForm.cs @@ -116,9 +116,7 @@ Form - - Form - + @@ -164,8 +162,8 @@ - - ArchiveMetadata.cs + + ArchiveMetadataForm.cs MaestroForm.cs diff --git a/client/Maestro/MaestroForm.Metadata.cs b/client/Maestro/MaestroForm.Metadata.cs index 7d95d55c..14c17c32 100644 --- a/client/Maestro/MaestroForm.Metadata.cs +++ b/client/Maestro/MaestroForm.Metadata.cs @@ -16,7 +16,7 @@ namespace Maestro { private MetadataInfo selectedMetadata; private List segments = new List(); private MediaCubeApi mediaCubeApi; - private ArchiveMetadataModel model; + private ArchiveMetadata archiveMetadatamodel; public MetadataInfo SelectedMetadata { get { return selectedMetadata; @@ -77,7 +77,7 @@ namespace Maestro { } private void ModifyArchiveMetadataClick(object sender, EventArgs e) { - ArchiveMetadata form = new ArchiveMetadata(model); + ArchiveMetadataForm form = new ArchiveMetadataForm(archiveMetadatamodel); form.ShowDialog(); } diff --git a/client/Maestro/MaestroForm.Target.cs b/client/Maestro/MaestroForm.Target.cs index f2fdc3b3..a95a6bf8 100644 --- a/client/Maestro/MaestroForm.Target.cs +++ b/client/Maestro/MaestroForm.Target.cs @@ -9,8 +9,22 @@ using System.Collections.Generic; using System.Text.RegularExpressions; using TrafficClient; using OctopusClient; +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 partial class MaestroForm { private SegmentConverter segmentConverter; @@ -42,9 +56,13 @@ namespace Maestro { string fileName = actualRow.Cells[1].Value as string; string typeName = string.Format("{0}.{1}", typeof(ITargetProcessor).Namespace, target.Processor); Type type = Type.GetType(typeName); + int variantID = selectedMetadata.VariantID; + TrafficAPI api = trafficIDSelector.trafficAPI; ISourceItem selectedFile = GetSourceItemFromBindingSource(fileName);//bindingSource.Current as ISourceItem; string id = selectedMetadata == null ? textSelectedMetadata.Text : selectedMetadata.ID; - object[] parameters = new object[] { this, Configuration.Source, target, selectedFile.Name, id, segments, mediaCubeApi, model }; + 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 }; ITargetProcessor processor = (ITargetProcessor)Activator.CreateInstance(type, parameters); processors.Add(processor); } @@ -123,18 +141,18 @@ namespace Maestro { private void EnableArchiveMetadataButtonAndCreateMetadataModel() { ctxiModifyArchiveMetadata.Enabled = selectedMetadata != null; if (ctxiModifyArchiveMetadata.Enabled) { - model = new ArchiveMetadataModel(); + archiveMetadatamodel = new ArchiveMetadata(); Cursor.Current = Cursors.WaitCursor; IDTypes idType = GetTypeOfSelectedMetadata(); if (idType == IDTypes.OctopusID) - FillTheModelFromOctopus(model); + FillTheModelFromOctopus(archiveMetadatamodel); else //if (idType == IDTypes.TrafficID) - FillTheModelFromTraffic(model); + FillTheModelFromTraffic(archiveMetadatamodel); } else - model = null; + archiveMetadatamodel = null; } - private void FillTheModelFromTraffic(ArchiveMetadataModel model) { + private void FillTheModelFromTraffic(ArchiveMetadata model) { string id = selectedMetadata.ID; TrafficAPI api = trafficIDSelector.trafficAPI; List result = null; @@ -155,7 +173,7 @@ namespace Maestro { model.mediaDescription = actualResult.EpisodeDescription; } - private void FillTheModelFromOctopus(ArchiveMetadataModel model) { + private void FillTheModelFromOctopus(ArchiveMetadata model) { string id = selectedMetadata.ID; OctopusAPI api = octopusIDSelector.GetClient(); IEnumerable storyEnum = api.GetStoriesById(id); @@ -170,7 +188,7 @@ namespace Maestro { } } - private void FillModelFromStories(ArchiveMetadataModel model, List stories, OctopusAPI api) { + private void FillModelFromStories(ArchiveMetadata model, List stories, OctopusAPI api) { if (stories == null || stories.Count == 0) return; Story story = stories[0]; diff --git a/client/Maestro/Metadata/ArchiveMetadata.cs b/client/Maestro/Metadata/ArchiveMetadata.cs index dd8dbaeb..a2e49515 100644 --- a/client/Maestro/Metadata/ArchiveMetadata.cs +++ b/client/Maestro/Metadata/ArchiveMetadata.cs @@ -1,7 +1,12 @@ -using Newtonsoft.Json; +using System; +using Newtonsoft.Json; +using System.Runtime.Serialization.Formatters.Binary; +using System.IO; namespace Maestro.Metadata { - public class ArchiveMetadataModel { + + [Serializable()] + public class ArchiveMetadata { //todo rename a Stuffra?? public string itemHouseId { get; set; } @@ -16,5 +21,15 @@ namespace Maestro.Metadata { //return String.Format("{{\n \"Anyag azonosító\": \"{0}\",\n, \"Anyag cím\": \"{1}\",\n \"Anyag leírása\": \"{2}\",\n \"Média azonosító\": \"{3}\",\n \"Média cím\": \"{4}\",\n \"Média leírás\": \"{5}\" \n}}", // StuffID, StuffTitle, StuffDescription, MediaID, MediaTitle, MediaDescription); } + + public static ArchiveMetadata DeepClone(ArchiveMetadata obj) { + using (var ms = new MemoryStream()) { + var formatter = new BinaryFormatter(); + formatter.Serialize(ms, obj); + ms.Position = 0; + + return (ArchiveMetadata)formatter.Deserialize(ms); + } + } } } diff --git a/client/Maestro/Targets/FTPTargetProcessor.cs b/client/Maestro/Targets/FTPTargetProcessor.cs index 5265c543..983670bb 100644 --- a/client/Maestro/Targets/FTPTargetProcessor.cs +++ b/client/Maestro/Targets/FTPTargetProcessor.cs @@ -17,8 +17,11 @@ 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, ArchiveMetadataModel archiveMetadata) - : base(parent, sourceConfig, targetConfig, inputFileName, id, segments, mediaCubeApi, archiveMetadata) { + 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) { FtpTrace.LogFunctions = false; Uri inputUri = new Uri(String.Format("{0}/{1}", sourceConfig.Local.Address.LocalPath, inputFileName)); inputFile = new FileInfo(inputUri.LocalPath); diff --git a/client/Maestro/Targets/FXPTargetProcessor.cs b/client/Maestro/Targets/FXPTargetProcessor.cs index 51d47dd1..52e4a835 100644 --- a/client/Maestro/Targets/FXPTargetProcessor.cs +++ b/client/Maestro/Targets/FXPTargetProcessor.cs @@ -17,8 +17,11 @@ 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, ArchiveMetadataModel model) : - base(parent, sourceConfig, targetConfig, inputFileName, id, segments, mediaCubeApi, model) { + 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; } diff --git a/client/Maestro/Targets/UNCTargetProcessor.cs b/client/Maestro/Targets/UNCTargetProcessor.cs index 2350a9d6..e74c9ad9 100644 --- a/client/Maestro/Targets/UNCTargetProcessor.cs +++ b/client/Maestro/Targets/UNCTargetProcessor.cs @@ -30,15 +30,23 @@ namespace Maestro.Targets { protected FileInfo inputFile; protected string workingDir; protected List segments; - protected ArchiveMetadataModel archiveMetadata; + protected ArchiveMetadata archiveMetadata; + protected TrafficAPI client; + protected int variantID; + public WorkflowAction workFlowAction { get; set; } - public UNCTargetProcessor(Control parent, Source sourceConfig, Target targetConfig, string inputFileName, string id, List segments, MediaCubeApi mediaCubeApi, ArchiveMetadataModel archiveMetadata) + public UNCTargetProcessor(Control parent, Source sourceConfig, Target targetConfig, + string inputFileName, string id, List segments, + MediaCubeApi mediaCubeApi, ArchiveMetadata archiveMetadata, + TrafficAPI client, int variantID) : 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); inputFile = new FileInfo(Input); @@ -93,14 +101,10 @@ namespace Maestro.Targets { SaveSegments(); } - private void SaveSegments() { - MaestroForm maestroForm = parent as MaestroForm; - TrafficMetadata metadata = maestroForm.Configuration.Metadatas.Where(m => { return m is TrafficMetadata; }).FirstOrDefault() as TrafficMetadata; - TrafficAPI client = new TrafficAPI(metadata.Server.Address.OriginalString, metadata.Server.UserName, metadata.Server.Password, metadata.Server.Timeout); - client.DeleteSegments(maestroForm.SelectedMetadata.VariantID); + client.DeleteSegments(variantID); foreach (Segment actual in segments) { - client.AddSegmentToCopia(maestroForm.SelectedMetadata.VariantID, actual.Comment, actual.TCIn, actual.TCOut, actual.Optional); + client.AddSegmentToCopia(variantID, actual.Comment, actual.TCIn, actual.TCOut, actual.Optional); } }