item.touched = DateTime.Now;\r
item.started = DateTime.Now;\r
item.finished = DateTime.Now;\r
- var actual = client.Create(item);\r
+ var actual = client.Create<WorkflowAction>(item);\r
}\r
\r
[TestMethod]\r
public void TestCreateMasterId() {\r
MediaCubeApi client = new MediaCubeApi("http://10.10.1.28/services/rest/jobengine/", null, null, 100);\r
- MasterId masterId = client.Create(new MasterId()) as MasterId;\r
+ MasterId masterId = client.Create<MasterId>(new MasterId());\r
Assert.IsTrue(masterId.id > 0);\r
}\r
\r
item.touched = DateTime.Now;\r
item.started = DateTime.Now;\r
item.finished = DateTime.Now.AddMinutes(5 * i);\r
- var actual = client.Create(item);\r
+ var actual = client.Create<WorkflowAction>(item);\r
}\r
\r
for (int i = 0; i < 10; i++) {\r
item.touched = DateTime.Now;\r
item.started = DateTime.Now;\r
item.finished = DateTime.Now.AddHours(-5).AddMinutes(i);\r
- var actual = client.Create(item);\r
+ var actual = client.Create<WorkflowAction>(item);\r
}\r
}\r
\r
public bool SaveSegments { get; set; }\r
public bool CreateSubFolder { get; set; }\r
public string Tag { get; set; }\r
- public bool CreateMetadata {get; set;}\r
+ public bool SaveMetadata {get; set;}\r
public bool SendEmailOnError { get; set; }\r
public string ErrorEmailRecipient { get; set; }\r
public string ErrorEmailPattern { get; set; }\r
"tag": "Betöltés",\r
"createSubFolder": true,\r
"killDateDays": 7,\r
- "useMetadata": false,\r
+ "saveMetadata": false,\r
"remote": {\r
"address": "ftp://10.10.1.100/OCTOPUS",\r
"userName": "mediacube",\r
"tag": "Betöltés",\r
"createSubFolder": true,\r
"killDateDays": 7,\r
- "useMetadata": false,\r
+ "saveMetadata": false,\r
"remote": {\r
"address": "ftp://10.10.1.100/PLAYOUT_NLE",\r
"userName": "mediacube",\r
"processor": "FTPTargetProcessor",\r
"outputFormat": "%ID%",\r
"tag": "Archiválás",\r
- "useMetadata": true,\r
+ "saveMetadata": true,\r
"remote": {\r
"address": "ftp://10.10.1.100/ARCHIVE",\r
"userName": "mediacube",\r
"tag": "Betöltés",\r
"createSubFolder": true,\r
"killDateDays": 7,\r
- "useMetadata": false,\r
+ "saveMetadata": false,\r
"remote": {\r
"address": "ftp://10.10.1.100/OCTOPUS",\r
"userName": "mediacube",\r
"tag": "Betöltés",\r
"createSubFolder": true,\r
"killDateDays": 7,\r
- "useMetadata": false,\r
+ "saveMetadata": false,\r
"remote": {\r
"address": "ftp://10.10.1.100/PLAYOUT_NLE",\r
"userName": "mediacube",\r
"processor": "FTPTargetProcessor",\r
"outputFormat": "%ID%",\r
"tag": "Archiválás",\r
- "useMetadata": true,\r
+ "saveMetadata": true,\r
"remote": {\r
"address": "ftp://10.10.1.100/ARCHIVE",\r
"userName": "mediacube",\r
"tag": "Betöltés",\r
"createSubFolder": true,\r
"killDateDays": 7,\r
- "useMetadata": false,\r
+ "saveMetadata": false,\r
"remote": {\r
"address": "file://10.10.1.100/BRAAVOS/OCTOPUS",\r
"userName": "mediacube",\r
"tag": "Betöltés",\r
"createSubFolder": true,\r
"killDateDays": 7,\r
- "useMetadata": false,\r
+ "saveMetadata": false,\r
"remote": {\r
"address": "file://10.10.1.100/BRAAVOS/PLAYOUT_NLE",\r
"userName": "mediacube",\r
"processor": "UNCTargetProcessor",\r
"outputFormat": "%ID%",\r
"tag": "Archiválás",\r
- "useMetadata": true,\r
+ "saveMetadata": true,\r
"remote": {\r
"address": "file://10.10.1.100/BRAAVOS/ARCHIVE",\r
"userName": "mediacube",\r
this.dataGridSource = new System.Windows.Forms.DataGridView();\r
this.bindingSource = new System.Windows.Forms.BindingSource(this.components);\r
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();\r
- this.textSelectedSource = new System.Windows.Forms.TextBox();\r
+ this.txtSelectedSource = new System.Windows.Forms.TextBox();\r
this.label1 = new System.Windows.Forms.Label();\r
this.buttonMetadata = new System.Windows.Forms.Button();\r
this.panel2 = new System.Windows.Forms.Panel();\r
this.trafficIDSelector = new TrafficClient.TrafficIDSelector();\r
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();\r
this.labelSelectedMetadata = new System.Windows.Forms.Label();\r
- this.textSelectedMetadata = new System.Windows.Forms.TextBox();\r
+ this.txtSelectedMetadata = new System.Windows.Forms.TextBox();\r
this.menuButtonActions = new Maestro.MenuButton();\r
this.groupTarget = new System.Windows.Forms.GroupBox();\r
this.panelActions = new System.Windows.Forms.TableLayoutPanel();\r
this.tableLayoutPanel2.ColumnCount = 2;\r
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());\r
- this.tableLayoutPanel2.Controls.Add(this.textSelectedSource, 0, 1);\r
+ this.tableLayoutPanel2.Controls.Add(this.txtSelectedSource, 0, 1);\r
this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0);\r
this.tableLayoutPanel2.Controls.Add(this.buttonMetadata, 1, 1);\r
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Bottom;\r
this.tableLayoutPanel2.Size = new System.Drawing.Size(394, 62);\r
this.tableLayoutPanel2.TabIndex = 12;\r
// \r
- // textSelectedSource\r
+ // txtSelectedSource\r
// \r
- this.textSelectedSource.BackColor = System.Drawing.SystemColors.ActiveCaption;\r
- this.textSelectedSource.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
- this.textSelectedSource.Dock = System.Windows.Forms.DockStyle.Fill;\r
- this.textSelectedSource.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
- this.textSelectedSource.Location = new System.Drawing.Point(3, 28);\r
- this.textSelectedSource.Name = "textSelectedSource";\r
- this.textSelectedSource.Size = new System.Drawing.Size(292, 26);\r
- this.textSelectedSource.TabIndex = 10;\r
- this.textSelectedSource.TextChanged += new System.EventHandler(this.OnInfoTextChanged);\r
+ this.txtSelectedSource.BackColor = System.Drawing.SystemColors.ActiveCaption;\r
+ this.txtSelectedSource.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
+ this.txtSelectedSource.Dock = System.Windows.Forms.DockStyle.Fill;\r
+ this.txtSelectedSource.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+ this.txtSelectedSource.Location = new System.Drawing.Point(3, 28);\r
+ this.txtSelectedSource.Name = "txtSelectedSource";\r
+ this.txtSelectedSource.Size = new System.Drawing.Size(292, 26);\r
+ this.txtSelectedSource.TabIndex = 10;\r
+ this.txtSelectedSource.TextChanged += new System.EventHandler(this.OnInfoTextChanged);\r
// \r
// label1\r
// \r
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());\r
this.tableLayoutPanel1.Controls.Add(this.labelSelectedMetadata, 0, 0);\r
- this.tableLayoutPanel1.Controls.Add(this.textSelectedMetadata, 0, 1);\r
+ this.tableLayoutPanel1.Controls.Add(this.txtSelectedMetadata, 0, 1);\r
this.tableLayoutPanel1.Controls.Add(this.menuButtonActions, 1, 1);\r
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Bottom;\r
this.tableLayoutPanel1.Location = new System.Drawing.Point(10, 399);\r
this.labelSelectedMetadata.TabIndex = 13;\r
this.labelSelectedMetadata.Text = "Selected metadata";\r
// \r
- // textSelectedMetadata\r
+ // txtSelectedMetadata\r
// \r
- this.textSelectedMetadata.BackColor = System.Drawing.SystemColors.ActiveCaption;\r
- this.textSelectedMetadata.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
- this.textSelectedMetadata.Dock = System.Windows.Forms.DockStyle.Fill;\r
- this.textSelectedMetadata.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
- this.textSelectedMetadata.Location = new System.Drawing.Point(3, 28);\r
- this.textSelectedMetadata.Name = "textSelectedMetadata";\r
- this.textSelectedMetadata.Size = new System.Drawing.Size(162, 26);\r
- this.textSelectedMetadata.TabIndex = 12;\r
- this.textSelectedMetadata.TextChanged += new System.EventHandler(this.OnInfoTextChanged);\r
+ this.txtSelectedMetadata.BackColor = System.Drawing.SystemColors.ActiveCaption;\r
+ this.txtSelectedMetadata.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
+ this.txtSelectedMetadata.Dock = System.Windows.Forms.DockStyle.Fill;\r
+ this.txtSelectedMetadata.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+ this.txtSelectedMetadata.Location = new System.Drawing.Point(3, 28);\r
+ this.txtSelectedMetadata.Name = "txtSelectedMetadata";\r
+ this.txtSelectedMetadata.Size = new System.Drawing.Size(162, 26);\r
+ this.txtSelectedMetadata.TabIndex = 12;\r
+ this.txtSelectedMetadata.TextChanged += new System.EventHandler(this.OnInfoTextChanged);\r
// \r
// menuButtonActions\r
// \r
private System.Windows.Forms.GroupBox groupMetadata;\r
private System.Windows.Forms.GroupBox groupTarget;\r
private System.Windows.Forms.Button btnExecute;\r
- private System.Windows.Forms.TextBox textSelectedSource;\r
+ private System.Windows.Forms.TextBox txtSelectedSource;\r
private System.Windows.Forms.Label labelSelectedMetadata;\r
- private System.Windows.Forms.TextBox textSelectedMetadata;\r
+ private System.Windows.Forms.TextBox txtSelectedMetadata;\r
private System.Windows.Forms.TableLayoutPanel panelActions;\r
private System.Windows.Forms.GroupBox groupActions;\r
private System.Windows.Forms.DataGridView dataGridJobs;\r
\r
namespace Maestro {\r
public partial class MaestroForm {\r
+ private const string ARCHIVEID_PREFIX = "MC-";\r
private MetadataInfo selectedMetadata;\r
private List<Segment> segments;\r
private MediaCubeApi mediaCubeApi;\r
selectedMetadata = value;\r
movieSegments = null;\r
segments = null;\r
- textSelectedMetadata.Text = value?.ID;\r
+ txtSelectedMetadata.Text = value?.ID;\r
}\r
}\r
\r
InitializeOctopusSelector();\r
InitializeTrafficSelector();\r
InitializeMediaCubeApi();\r
- textSelectedMetadata.ReadOnly = !Configuration.EnableCustomMetadataId;\r
+ txtSelectedMetadata.ReadOnly = !Configuration.EnableCustomMetadataId;\r
}\r
\r
private void InitializeTrafficSelector() {\r
\r
private ArchiveMetadata GetArchiveMetadata() {\r
ArchiveMetadata result = null;\r
- SourceIDType idType = GetSourceType(textSelectedMetadata.Text);\r
+ SourceIDType idType = GetSourceType(txtSelectedMetadata.Text);\r
Cursor.Current = Cursors.WaitCursor;\r
switch (idType) {\r
case SourceIDType.MediaCube:\r
result = GetMediaCubeMetadata();\r
+ txtSelectedMetadata.Text = result.itemHouseId;\r
break;\r
case SourceIDType.OctopusID:\r
result = GetOctopusMetadata();\r
}\r
\r
private ArchiveMetadata GetMediaCubeMetadata() {\r
- MasterId masterId = mediaCubeApi.Create(new MasterId()) as MasterId;\r
+ MasterId masterId = mediaCubeApi.Create<MasterId>(new MasterId());\r
if (masterId == null)\r
return null;\r
ArchiveMetadata result = new ArchiveMetadata();\r
- result.itemHouseId = masterId.ToString();\r
- result.mediaHouseId = masterId.ToString();\r
+ result.itemHouseId = ARCHIVEID_PREFIX + masterId.id.ToString();\r
+ result.mediaHouseId = result.itemHouseId;\r
return result;\r
}\r
\r
private ArchiveMetadata GetTrafficMetadata() {\r
- string id = textSelectedMetadata.Text;\r
+ string id = txtSelectedMetadata.Text;\r
if (String.IsNullOrEmpty(id))\r
return null;\r
TrafficAPI api = trafficIDSelector.trafficAPI;\r
\r
private ArchiveMetadata GetOctopusMetadata() {\r
ArchiveMetadata result = new ArchiveMetadata();\r
- string id = textSelectedMetadata.Text;\r
+ string id = txtSelectedMetadata.Text;\r
OctopusAPI api = octopusIDSelector.GetClient();\r
IEnumerable<Story> storyEnum = api.GetStoriesById(id);\r
if (storyEnum != null)\r
}\r
\r
private void UpdateEditArchiveMetadataEnabled() {\r
- ctxiModifyArchiveMetadata.Enabled = !String.IsNullOrEmpty(textSelectedSource.Text);\r
+ ctxiModifyArchiveMetadata.Enabled = !String.IsNullOrEmpty(txtSelectedSource.Text);\r
}\r
\r
private void UpdateDefineSegmentEnabled() {\r
}\r
set {\r
selectedSource = value;\r
- textSelectedSource.Text = selectedSource.Name;\r
+ txtSelectedSource.Text = selectedSource.Name;\r
UpdateEditArchiveMetadataEnabled();\r
}\r
}\r
String actualName = actual.Cells[index].Value as string;\r
if (fileName.Equals(actualName)) {\r
selectedSourceRows.Remove(actual);\r
- if (textSelectedSource.InvokeRequired) {\r
+ if (txtSelectedSource.InvokeRequired) {\r
SetTextCallback d = new SetTextCallback(SetTextSelectedSourceAndMetadataButtonEnabled);\r
Invoke(d);\r
} else\r
}\r
\r
private bool EnsureMetadata(Target target) {\r
- if (target.CreateMetadata && (archiveMetadata == null || !archiveMetadata.IsFilled)) {\r
+ if (target.SaveMetadata && (archiveMetadata == null || !archiveMetadata.IsFilled)) {\r
archiveMetadata = GetArchiveMetadata();\r
if (archiveMetadata == null) {\r
MessageBox.Show(String.Format("A {0} folyamat nem futtatható kísérő adatok nélkül.", target.Label));\r
MediaCubeApi = mediaCubeApi,\r
SourceConfig = Configuration.Source,\r
TargetConfig = target,\r
- ID = textSelectedMetadata.Text,\r
+ ID = txtSelectedMetadata.Text,\r
InputFileName = sourceItem.Name,\r
Segments = segments == null ? null : new List<Segment>(segments),\r
ArchiveMetadata = ArchiveMetadata.DeepClone(archiveMetadata),\r
VariantID = selectedMetadata == null ? 0 : selectedMetadata.VariantID,\r
- MetadataKind = selectedMetadata.Kind\r
+ MetadataKind = selectedMetadata == null ? MetadataType.None : selectedMetadata.Kind\r
};\r
}\r
\r
}\r
\r
private void OnInfoTextChanged(object sender, EventArgs e) {\r
- if (!sender.Equals(textSelectedSource))\r
+ if (!sender.Equals(txtSelectedSource))\r
ApplyProcessorButtonsLogic();\r
ApplyMetaDataButtonLogic();\r
}\r
\r
private void ApplyProcessorButtonsLogic() {\r
ClearSelectedProcessors();\r
- if (!String.IsNullOrEmpty(textSelectedSource.Text) && !String.IsNullOrEmpty(textSelectedMetadata.Text)) {\r
+ if (!String.IsNullOrEmpty(txtSelectedSource.Text) && !String.IsNullOrEmpty(txtSelectedMetadata.Text)) {\r
ChangeProcessButtonsState(true);\r
} else {\r
ChangeProcessButtonsState(false);\r
\r
private void ApplyProcessorButtonsLogicWithoutArchiveMetadataButton() {\r
ClearSelectedProcessors();\r
- if (!String.IsNullOrEmpty(textSelectedMetadata.Text) && !String.IsNullOrEmpty(textSelectedMetadata.Text)) {\r
+ if (!String.IsNullOrEmpty(txtSelectedMetadata.Text) && !String.IsNullOrEmpty(txtSelectedMetadata.Text)) {\r
ChangeProcessButtonsState(true);\r
} else {\r
ChangeProcessButtonsState(false);\r
List<Story> list = stories.ToList();\r
if (list.Count == 1) {\r
UpdateEditArchiveMetadataEnabled();\r
- textSelectedMetadata.Text = list[0].ID;\r
+ txtSelectedMetadata.Text = list[0].ID;\r
octopusMetadataSelected?.Invoke(list[0].ID);\r
//octopusIDSelector.IDSelectedFromOutside(list[0].ID);\r
return;\r
}\r
if (list.Count == 1) {\r
UpdateEditArchiveMetadataEnabled();\r
- textSelectedMetadata.Text = list[0].ID;\r
+ txtSelectedMetadata.Text = list[0].ID;\r
octopusMetadataSelected?.Invoke(list[0].ID);\r
//octopusIDSelector.IDSelectedFromOutside(list[0].ID);\r
return;\r
if (result.Count == 1) {\r
trafficMetadataSelected?.Invoke(result[0].MediaID, result[0].VariantID);\r
UpdateEditArchiveMetadataEnabled();\r
- textSelectedMetadata.Text = result[0].MediaID;\r
+ txtSelectedMetadata.Text = result[0].MediaID;\r
return;\r
}\r
SearchResult searchResult = new SearchResult(result, trafficMetadataSelected);\r
return x > -1;\r
}\r
\r
- protected override string GetOutputFilePath(string fileName) {\r
+ protected override string GetOutputFilePath(string path, string fileName) {\r
return fileName;\r
}\r
\r
UploadKillDateFile();\r
}\r
\r
- if (parameters.TargetConfig.CreateMetadata && parameters.ArchiveMetadata != null)\r
+ if (parameters.TargetConfig.SaveMetadata && parameters.ArchiveMetadata != null)\r
CreateMetadata();\r
if (parameters.TargetConfig.SaveSegments && parameters.Segments != null)\r
//eljuthat-e ide a felhasználó, ha a MetadataKind octopus?\r
\r
private void SendWorkFlowAction() {\r
try {\r
- parameters.MediaCubeApi.Create(workFlowAction);\r
+ parameters.MediaCubeApi.Create<WorkflowAction>(workFlowAction);\r
}\r
catch (Exception e) {\r
MessageBox.Show(parent, e.Message);\r
DateTime date = GetKillDate();\r
string fileName = String.Format(KILLDATE_FILE, OutputName, date.ToString("yyyyMMdd"));\r
logger.Debug("Creating KILLDATE status file {0}", fileName);\r
- KillDatePath = Path.Combine(statusWorkDir, fileName);\r
- UploadContent(fileName, new byte[] { });\r
+ KillDatePath = GetOutputFilePath(statusWorkDir, fileName);\r
+ UploadContent(KillDatePath, new byte[] { });\r
KillDate = date.ToString("yyyy.MM.dd");\r
}\r
\r
string fileName = String.Format(METADATA_FILE, OutputName);\r
logger.Debug("Creating METADATA file {0}", fileName);\r
byte[] content = Encoding.UTF8.GetBytes(parameters.ArchiveMetadata.ToString());\r
- UploadContent(Path.Combine(statusWorkDir, fileName), content);\r
+ string ouputPath = GetOutputFilePath(statusWorkDir, fileName);\r
+ UploadContent(ouputPath, content);\r
}\r
\r
protected void CopyStream(Stream istream, long ilength, Stream ostream) {\r
Win32File.CopyFileEx(Input, Output, new CopyProgressRoutine(this.CopyProgressHandler), IntPtr.Zero, ref pbCancel, CopyFileFlags.COPY_FILE_RESTARTABLE);\r
}\r
\r
- protected virtual string GetOutputFilePath(string fileName) {\r
- return "/".Equals(workingDir) ? fileName : Path.Combine(workingDir, fileName);\r
+ protected virtual string GetOutputFilePath(string path, string fileName) {\r
+ return "/".Equals(workingDir) ? fileName : Path.Combine(path, fileName);\r
}\r
\r
protected virtual string CreateOutputFileName() {\r
\r
string result = String.Format(FILENAME, nameWithoutExtension, extension);\r
int version = 1;\r
- while (FileExists(GetOutputFilePath(result))) {\r
+ while (FileExists(GetOutputFilePath(workingDir, result))) {\r
string versioned = String.Format(VERSIONED_FILENAME, nameWithoutExtension, version, extension);\r
logger.Debug(ALREADY_EXISTS, result, versioned);\r
result = versioned;\r
}\r
\r
\r
- public Object Create(object data) {\r
+ public T Create<T>(object data) {\r
var request = new RestRequest("create", Method.POST);\r
String body = JsonConvert.SerializeObject(data, serializerSettings);\r
//Debug.WriteLine(body);\r
var response = client.Execute(request);\r
if (response.StatusCode != HttpStatusCode.OK && response.ErrorMessage != null) {\r
ErrorReporter?.Invoke(DateTime.Now, "Error", String.Format("[MediaCube] {0}", response.ErrorMessage), Color.Red);\r
- return null;\r
+ return default(T);\r
}\r
//Debug.WriteLine(response.Content);\r
- var result = JsonConvert.DeserializeObject<WorkflowAction>(response.Content);\r
+ var result = JsonConvert.DeserializeObject<T>(response.Content);\r
return result;\r
}\r
\r