using System.Security;\r
using BethesdaConsentFormWCFSvc;\r
using System.IO;\r
+using System.Text.RegularExpressions;\r
\r
namespace IntegrationTests {\r
public sealed class SafeTokenHandle : SafeHandleZeroOrMinusOneIsInvalid {\r
}\r
}\r
\r
+ void testRegex(string id, string exp, bool expect) {\r
+ Match match = Regex.Match(id, exp);\r
+ Debug.WriteLine(String.Format($"{id} : {match.Success} {expect}"));\r
+ }\r
+\r
+ [TestMethod]\r
+ public void TestTrafficRegex() {\r
+ const string exp = "^[M,P,R]{1}[0-9]{6}[A-Z]{1}$";\r
+ testRegex("M000000A", exp, true);\r
+ testRegex("P000000B", exp, true);\r
+ testRegex("R000000C", exp, true);\r
+ testRegex("R000000C.", exp, false);\r
+ testRegex("R0000000C", exp, false);\r
+ testRegex("M00000A", exp, false);\r
+ testRegex("M0000000", exp, false);\r
+ testRegex("Q000000A", exp, false);\r
+ }\r
+\r
+ [TestMethod]\r
+ public void TestMaterialRegex() {\r
+ const string exp = "^M{1}[0-9]{6}[A-Z]{1}$";\r
+ testRegex("M000000A", exp, true);\r
+ testRegex("P000000B", exp, false);\r
+ testRegex("R000000C", exp, false);\r
+ testRegex("A3333333", exp, false);\r
+ testRegex("55555.", exp, false);\r
+ testRegex("44444S", exp, false);\r
+ testRegex("M000000.", exp, false);\r
+ testRegex("M0000000.", exp, false);\r
+ }\r
+\r
+ [TestMethod]\r
+ public void TestOctopusRegex() {\r
+ const string exp = "^[0-9]+$";\r
+ testRegex("1111", exp, true);\r
+ testRegex("2222222222", exp, true);\r
+ testRegex("A3333333", exp, false);\r
+ testRegex("55555.", exp, false);\r
+ testRegex("44444S", exp, false);\r
+ }\r
+\r
[TestMethod]\r
public void TestFTPTarget() {\r
Target configuration = new Target() {\r
-{\r
+\r
+{\r
"title": "Szerkesztő",\r
"active": true,\r
- "startInTray": true,\r
+ "startInTray": false,\r
"enableCustomMetadataId": true,\r
"player": {\r
"enabled": true,\r
</Compile>\r
<Compile Include="MaestroForm.Target.cs" />\r
<Compile Include="Metadata\ArchiveMetadata.cs" />\r
- <Compile Include="Metadata\IDTypes.cs" />\r
<Compile Include="Metadata\MenuButton.cs">\r
<SubType>Component</SubType>\r
</Compile>\r
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();\r
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();\r
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();\r
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();\r
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();\r
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();\r
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();\r
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();\r
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();\r
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();\r
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();\r
this.groupSource = new System.Windows.Forms.GroupBox();\r
this.dataGridSource = new System.Windows.Forms.DataGridView();\r
this.bindingSource = new System.Windows.Forms.BindingSource(this.components);\r
this.tabControl2 = new System.Windows.Forms.TabControl();\r
this.tabPage1 = new System.Windows.Forms.TabPage();\r
this.dataGridJobs = new System.Windows.Forms.DataGridView();\r
- this.bindingSourceJobs = new System.Windows.Forms.BindingSource(this.components);\r
- this.tabPage2 = new System.Windows.Forms.TabPage();\r
- this.dataGridMessages = new System.Windows.Forms.DataGridView();\r
- this.timeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
- this.Level = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
- this.messageDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
- this.systemMessageBindingSource = new System.Windows.Forms.BindingSource(this.components);\r
- this.metadataInfoBindingSource = new System.Windows.Forms.BindingSource(this.components);\r
this.columnLabel = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
this.columnID = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
this.Progress = new Maestro.Commons.DataGridViewProgressColumn();\r
this.columnInput = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
this.columnOutput = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
this.columnKillDate = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+ this.bindingSourceJobs = new System.Windows.Forms.BindingSource(this.components);\r
+ this.tabPage2 = new System.Windows.Forms.TabPage();\r
+ this.dataGridMessages = new System.Windows.Forms.DataGridView();\r
+ this.timeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+ this.Level = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+ this.messageDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+ this.systemMessageBindingSource = new System.Windows.Forms.BindingSource(this.components);\r
+ this.metadataInfoBindingSource = new System.Windows.Forms.BindingSource(this.components);\r
this.groupSource.SuspendLayout();\r
((System.ComponentModel.ISupportInitialize)(this.dataGridSource)).BeginInit();\r
((System.ComponentModel.ISupportInitialize)(this.bindingSource)).BeginInit();\r
this.dataGridJobs.CellEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridJobs_CellEnter);\r
this.dataGridJobs.MouseClick += new System.Windows.Forms.MouseEventHandler(this.dataGridJobs_MouseClick);\r
// \r
+ // columnLabel\r
+ // \r
+ this.columnLabel.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+ this.columnLabel.DataPropertyName = "Label";\r
+ this.columnLabel.HeaderText = "Label";\r
+ this.columnLabel.Name = "columnLabel";\r
+ this.columnLabel.Width = 63;\r
+ // \r
+ // columnID\r
+ // \r
+ this.columnID.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+ this.columnID.DataPropertyName = "ID";\r
+ dataGridViewCellStyle5.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+ this.columnID.DefaultCellStyle = dataGridViewCellStyle5;\r
+ this.columnID.HeaderText = "ID";\r
+ this.columnID.Name = "columnID";\r
+ this.columnID.Width = 44;\r
+ // \r
+ // Progress\r
+ // \r
+ this.Progress.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;\r
+ this.Progress.DataPropertyName = "Progress";\r
+ this.Progress.HeaderText = "";\r
+ this.Progress.MinimumWidth = 100;\r
+ this.Progress.Name = "Progress";\r
+ // \r
+ // columnStatus\r
+ // \r
+ this.columnStatus.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+ this.columnStatus.DataPropertyName = "Status";\r
+ dataGridViewCellStyle6.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+ this.columnStatus.DefaultCellStyle = dataGridViewCellStyle6;\r
+ this.columnStatus.HeaderText = "Status";\r
+ this.columnStatus.Name = "columnStatus";\r
+ this.columnStatus.Width = 66;\r
+ // \r
+ // columnStarted\r
+ // \r
+ this.columnStarted.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+ this.columnStarted.DataPropertyName = "Started";\r
+ this.columnStarted.HeaderText = "Started";\r
+ this.columnStarted.Name = "columnStarted";\r
+ this.columnStarted.Width = 71;\r
+ // \r
+ // columnFinished\r
+ // \r
+ this.columnFinished.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+ this.columnFinished.DataPropertyName = "Finished";\r
+ this.columnFinished.HeaderText = "Finished";\r
+ this.columnFinished.Name = "columnFinished";\r
+ this.columnFinished.Width = 79;\r
+ // \r
+ // columnInput\r
+ // \r
+ this.columnInput.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+ this.columnInput.DataPropertyName = "Input";\r
+ this.columnInput.HeaderText = "Input";\r
+ this.columnInput.Name = "columnInput";\r
+ this.columnInput.Width = 59;\r
+ // \r
+ // columnOutput\r
+ // \r
+ this.columnOutput.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+ this.columnOutput.DataPropertyName = "Output";\r
+ this.columnOutput.HeaderText = "Output";\r
+ this.columnOutput.Name = "columnOutput";\r
+ this.columnOutput.Width = 68;\r
+ // \r
+ // columnKillDate\r
+ // \r
+ this.columnKillDate.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
+ this.columnKillDate.DataPropertyName = "KillDate";\r
+ this.columnKillDate.HeaderText = "KillDate";\r
+ this.columnKillDate.Name = "columnKillDate";\r
+ this.columnKillDate.Width = 75;\r
+ // \r
// tabPage2\r
// \r
this.tabPage2.Controls.Add(this.dataGridMessages);\r
// \r
this.metadataInfoBindingSource.DataSource = typeof(Maestro.Metadata.MetadataInfo);\r
// \r
- // columnLabel\r
- // \r
- this.columnLabel.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
- this.columnLabel.DataPropertyName = "Label";\r
- this.columnLabel.HeaderText = "Label";\r
- this.columnLabel.Name = "columnLabel";\r
- this.columnLabel.Width = 63;\r
- // \r
- // columnID\r
- // \r
- this.columnID.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
- this.columnID.DataPropertyName = "ID";\r
- dataGridViewCellStyle5.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
- this.columnID.DefaultCellStyle = dataGridViewCellStyle5;\r
- this.columnID.HeaderText = "ID";\r
- this.columnID.Name = "columnID";\r
- this.columnID.Width = 44;\r
- // \r
- // Progress\r
- // \r
- this.Progress.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;\r
- this.Progress.DataPropertyName = "Progress";\r
- this.Progress.HeaderText = "";\r
- this.Progress.MinimumWidth = 100;\r
- this.Progress.Name = "Progress";\r
- // \r
- // columnStatus\r
- // \r
- this.columnStatus.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
- this.columnStatus.DataPropertyName = "Status";\r
- dataGridViewCellStyle6.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
- this.columnStatus.DefaultCellStyle = dataGridViewCellStyle6;\r
- this.columnStatus.HeaderText = "Status";\r
- this.columnStatus.Name = "columnStatus";\r
- this.columnStatus.Width = 66;\r
- // \r
- // columnStarted\r
- // \r
- this.columnStarted.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
- this.columnStarted.DataPropertyName = "Started";\r
- this.columnStarted.HeaderText = "Started";\r
- this.columnStarted.Name = "columnStarted";\r
- this.columnStarted.Width = 71;\r
- // \r
- // columnFinished\r
- // \r
- this.columnFinished.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
- this.columnFinished.DataPropertyName = "Finished";\r
- this.columnFinished.HeaderText = "Finished";\r
- this.columnFinished.Name = "columnFinished";\r
- this.columnFinished.Width = 79;\r
- // \r
- // columnInput\r
- // \r
- this.columnInput.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
- this.columnInput.DataPropertyName = "Input";\r
- this.columnInput.HeaderText = "Input";\r
- this.columnInput.Name = "columnInput";\r
- this.columnInput.Width = 59;\r
- // \r
- // columnOutput\r
- // \r
- this.columnOutput.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
- this.columnOutput.DataPropertyName = "Output";\r
- this.columnOutput.HeaderText = "Output";\r
- this.columnOutput.Name = "columnOutput";\r
- this.columnOutput.Width = 68;\r
- // \r
- // columnKillDate\r
- // \r
- this.columnKillDate.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;\r
- this.columnKillDate.DataPropertyName = "KillDate";\r
- this.columnKillDate.HeaderText = "KillDate";\r
- this.columnKillDate.Name = "columnKillDate";\r
- this.columnKillDate.Width = 75;\r
- // \r
// MaestroForm\r
// \r
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
namespace Maestro {\r
public partial class MaestroForm {\r
private const string ARCHIVEID_PREFIX = "MC-";\r
+ private const string REGEXP_TRAFFICMATERIALID = "^M{1}[0-9]{6}[A-Z]{1}$";\r
+ private const string REGEXP_TRAFFICADID = "^R{1}[0-9]{6}[A-Z]{1}$";\r
+ private const string REGEXP_TRAFFICPROMOID = "^P{1}[0-9]{6}[A-Z]{1}$";\r
+ private const string REGEXP_OCTOPUSID = "^[0-9]+$";\r
private MetadataInfo selectedMetadata;\r
private List<Segment> segments;\r
private MediaCubeApi mediaCubeApi;\r
private ArchiveMetadata archiveMetadata;\r
private BindingList<MovieSegment> movieSegments;\r
+ private static MetadataType[] validTypes = { MetadataType.TrafficAD, MetadataType.TrafficMaterial, MetadataType.TrafficPromo };\r
+ private ToolTip ttMetadata = new ToolTip();\r
\r
public MetadataInfo SelectedMetadata {\r
get {\r
movieSegments = null;\r
segments = null;\r
textSelectedMetadata.Text = value?.ID;\r
+ ttMetadata.SetToolTip(textSelectedMetadata, value?.Tooltip);\r
}\r
}\r
\r
form.ShowDialog();\r
}\r
\r
- private SourceIDType GetSourceType(string id) {\r
- SourceIDType result = SourceIDType.MediaCube;\r
- if (!String.IsNullOrEmpty(id)) {\r
- Match match = Regex.Match(id, "[A-Z]{1}[0-9]{6}[A-Z]{1}");\r
- if (match.Success)\r
- result = SourceIDType.TrafficID;\r
- else {\r
- //"^[0-9]+$";\r
- match = Regex.Match(id, "[0-9]");\r
- if (match.Success)\r
- result = SourceIDType.OctopusID;\r
- }\r
- }\r
- return result;\r
+ private MetadataType GuessMetadataType(string id) {\r
+ if (String.IsNullOrEmpty(id))\r
+ return MetadataType.None;\r
+ Match match = null;\r
+\r
+ match = Regex.Match(id, REGEXP_TRAFFICMATERIALID);\r
+ if (match.Success)\r
+ return MetadataType.TrafficMaterial;\r
+\r
+ match = Regex.Match(id, REGEXP_TRAFFICPROMOID);\r
+ if (match.Success)\r
+ return MetadataType.TrafficPromo;\r
+\r
+ match = Regex.Match(id, REGEXP_TRAFFICADID);\r
+ if (match.Success)\r
+ return MetadataType.TrafficAD;\r
+\r
+ match = Regex.Match(id, REGEXP_OCTOPUSID);\r
+ if (match.Success)\r
+ return MetadataType.OctopusPlaceHolder;\r
+\r
+ return MetadataType.MediaCube;\r
}\r
\r
private void OnDefineSegmentsClick(object sender, EventArgs e) {\r
\r
private ArchiveMetadata GetArchiveMetadata() {\r
ArchiveMetadata result = null;\r
- SourceIDType idType = GetSourceType(textSelectedMetadata.Text);\r
Cursor.Current = Cursors.WaitCursor;\r
- switch (idType) {\r
- case SourceIDType.MediaCube:\r
+ MetadataType metadataType = GuessMetadataType(textSelectedMetadata.Text);\r
+ switch (metadataType) {\r
+ case MetadataType.MediaCube:\r
result = GetMediaCubeMetadata();\r
textSelectedMetadata.Text = result.itemHouseId;\r
break;\r
- case SourceIDType.OctopusID:\r
+ case MetadataType.OctopusPlaceHolder:\r
result = GetOctopusMetadata();\r
break;\r
- case SourceIDType.TrafficID:\r
- result = GetTrafficMetadata();\r
+ case MetadataType.TrafficMaterial:\r
+ result = GetTrafficMetadata(metadataType);\r
break;\r
}\r
Cursor.Current = Cursors.Default;\r
return result;\r
}\r
\r
- private ArchiveMetadata GetTrafficMetadata() {\r
+ private ArchiveMetadata GetTrafficMetadata(MetadataType metadataType) {\r
string id = textSelectedMetadata.Text;\r
if (String.IsNullOrEmpty(id))\r
return null;\r
TrafficAPI api = trafficIDSelector.trafficAPI;\r
List<TrafficItemMetadata> trafficResult = null;\r
- MetadataType metadataType = GetTrafficMetadataType(id);\r
switch (metadataType) {\r
case MetadataType.TrafficMaterial:\r
trafficResult = api.GetMaterialMetadata(id);\r
model.mediaDescription = story.Script;\r
}\r
\r
- private MetadataType GetTrafficMetadataType(string id) {\r
- MetadataType result = MetadataType.None;\r
- if (id.Length < 1)\r
- return result;\r
- switch (id[0]) {\r
- case 'M':\r
- result = MetadataType.TrafficMaterial;\r
- break;\r
- case 'P':\r
- result = MetadataType.TrafficPromo;\r
- break;\r
- case 'R':\r
- result = MetadataType.TrafficAD;\r
- break;\r
+ private void OnMetadataIDChanged(object sender, EventArgs e) {\r
+ if (String.IsNullOrEmpty(textSelectedMetadata.Text)) {\r
+ SelectedMetadata = null;\r
+ } else {\r
+ if (SelectedMetadata == null || !textSelectedMetadata.Text.Equals(SelectedMetadata.ID)) {\r
+ SelectedMetadata = new MetadataInfo() {\r
+ Kind = MetadataType.MediaCube,\r
+ ID = textSelectedMetadata.Text,\r
+ Tooltip = "MediaCube azonosító"\r
+ };\r
+ }\r
}\r
- return result;\r
+\r
+ UpdateProcessorButtonsEnabled();\r
+ UpdateDefineSegmentEnabled();\r
+ UpdateEditArchiveMetadataEnabled();\r
+ UpdateLookupMetadataEnabled();\r
+ archiveMetadata = null;\r
}\r
\r
private void OnOctopusIDSelected(string id, string name) {\r
return;\r
}\r
SelectedMetadata = new MetadataInfo() {\r
- Kind = MetadataType.OctopusStory,\r
- Tooltip = "Story ID",\r
- ID = name,\r
+ Kind = MetadataType.OctopusPlaceHolder,\r
+ Tooltip = "Octopus azonosító",\r
+ ID = id,\r
VariantID = int.Parse(id)\r
};\r
- UpdateEditArchiveMetadataEnabled();\r
- UpdateDefineSegmentEnabled();\r
}\r
\r
private void OnTrafficIDSelected(string selectedID, int variantID) {\r
SelectedMetadata = null;\r
return;\r
}\r
+ MetadataType metadataType = GuessMetadataType(selectedID);\r
+ string tooltip = null;\r
+ switch (metadataType) {\r
+ case MetadataType.TrafficAD:\r
+ tooltip = "Traffic reklám azonosító";\r
+ break;\r
+ case MetadataType.TrafficMaterial:\r
+ tooltip = "Traffic műsor azonosító";\r
+ break;\r
+ case MetadataType.TrafficPromo:\r
+ tooltip = "Traffic promó azonosító";\r
+ break;\r
+ }\r
SelectedMetadata = new MetadataInfo() {\r
- Kind = GetTrafficMetadataType(selectedID),\r
- Tooltip = "Epizod ID",\r
+ Kind = metadataType,\r
+ Tooltip = tooltip,\r
ID = selectedID,\r
VariantID = variantID\r
};\r
- UpdateEditArchiveMetadataEnabled();\r
- UpdateDefineSegmentEnabled();\r
}\r
\r
private void UpdateEditArchiveMetadataEnabled() {\r
-// ctxiModifyArchiveMetadata.Enabled = !String.IsNullOrEmpty(textSelectedMetadata.Text);\r
- ctxiModifyArchiveMetadata.Enabled = true;\r
+ // ctxiModifyArchiveMetadata.Enabled = !String.IsNullOrEmpty(textSelectedMetadata.Text);\r
+ ctxiModifyArchiveMetadata.Enabled = SelectedSource != null && SelectedMetadata != null;\r
}\r
\r
private void UpdateDefineSegmentEnabled() {\r
- MetadataType[] validTypes = { MetadataType.TrafficAD, MetadataType.TrafficMaterial, MetadataType.TrafficPromo };\r
ctxiDefineSegments.Enabled =\r
Configuration.Player != null &&\r
Configuration.Player.SegmentEditor &&\r
}\r
\r
private void buttonMetadata_Click(object sender, EventArgs e) {\r
- switch (GetSourceType(SelectedSource?.Prefix)) {\r
- case SourceIDType.TrafficID:\r
- LookupTraffic();\r
+ Cursor.Current = Cursors.WaitCursor;\r
+ MetadataType metadataType = GuessMetadataType(SelectedSource?.Prefix);\r
+ switch (metadataType) {\r
+ case MetadataType.TrafficMaterial:\r
+ case MetadataType.TrafficPromo:\r
+ case MetadataType.TrafficAD:\r
+ LookupTraffic(metadataType);\r
break;\r
- case SourceIDType.OctopusID:\r
+ case MetadataType.OctopusPlaceHolder:\r
LookupOctopus();\r
break;\r
}\r
+ Cursor.Current = Cursors.Default;\r
}\r
\r
- private void LookupTraffic() {\r
+ private void LookupTraffic(MetadataType metadataType) {\r
TrafficAPI api = trafficIDSelector.trafficAPI;\r
- Cursor.Current = Cursors.WaitCursor;\r
List<TrafficItem> result = null;\r
- MetadataType metadataType = GetTrafficMetadataType(SelectedSource?.Prefix);\r
switch (metadataType) {\r
case MetadataType.TrafficMaterial:\r
result = api.GetMaterials(SelectedSource?.Prefix, false);\r
}\r
if (result == null || result.Count == 0) {\r
MessageBox.Show(this, StringResources.NINCS_TALALAT);\r
- Cursor.Current = Cursors.Default;\r
return;\r
}\r
if (result.Count == 1) {\r
TrafficLookupResultSelector lookupResult = new TrafficLookupResultSelector(result, trafficMetadataSelected);\r
lookupResult.ShowDialog();\r
}\r
- Cursor.Current = Cursors.Default;\r
}\r
\r
\r
+ //private void LookupOctopus() {\r
+ // OctopusAPI api = octopusIDSelector.GetClient();\r
+ // Cursor.Current = Cursors.WaitCursor;\r
+ // IEnumerable<Story> stories = api.GetStoriesById(SelectedSource?.Prefix);\r
+ // if (stories == null || stories.Count() == 0) {\r
+ // LookupOctopusMOS();\r
+ // Cursor.Current = Cursors.Default;\r
+ // return;\r
+ // }\r
+ // List<Story> list = stories.ToList();\r
+ // if (list.Count == 1) {\r
+ // UpdateEditArchiveMetadataEnabled();\r
+ // textSelectedMetadata.Text = list[0].ID;\r
+ // octopusMetadataSelected?.Invoke(list[0].ID, null);\r
+ // } else {\r
+ // OctopusLookupResultSelector box = new OctopusLookupResultSelector(list, octopusMetadataSelected);\r
+ // box.ShowDialog();\r
+ // }\r
+ // Cursor.Current = Cursors.Default;\r
+ //}\r
+\r
private void LookupOctopus() {\r
OctopusAPI api = octopusIDSelector.GetClient();\r
- Cursor.Current = Cursors.WaitCursor;\r
- IEnumerable<Story> stories = api.GetStoriesById(SelectedSource?.Prefix);\r
- if (stories == null || stories.Count() == 0) {\r
- LookupOctopusMOS(api);\r
- Cursor.Current = Cursors.Default;\r
- return;\r
- }\r
- List<Story> list = stories.ToList();\r
- if (list.Count == 1) {\r
- UpdateEditArchiveMetadataEnabled();\r
- textSelectedMetadata.Text = list[0].ID;\r
- octopusMetadataSelected?.Invoke(list[0].ID, null);\r
- } else {\r
- OctopusLookupResultSelector box = new OctopusLookupResultSelector(list, octopusMetadataSelected);\r
- box.ShowDialog();\r
- }\r
- Cursor.Current = Cursors.Default;\r
- }\r
-\r
- private void LookupOctopusMOS(OctopusAPI api) {\r
IEnumerable<MosObject> mosIDs = api.GetMosObjectsByID(SelectedSource?.Prefix);\r
if (mosIDs == null) {\r
MessageBox.Show(this, StringResources.NINCS_TALALAT);\r
UpdateEditArchiveMetadataEnabled();\r
textSelectedMetadata.Text = list[0].ID;\r
octopusMetadataSelected?.Invoke(list[0].ID, null);\r
- //octopusIDSelector.IDSelectedFromOutside(list[0].ID);\r
- return;\r
+ } else {\r
+ OctopusLookupResultSelector box = new OctopusLookupResultSelector(list, octopusMetadataSelected);\r
+ box.ShowDialog();\r
}\r
- OctopusLookupResultSelector box = new OctopusLookupResultSelector(list, octopusMetadataSelected);\r
- box.ShowDialog();\r
}\r
\r
private void UpdateLookupMetadataEnabled() {\r
- buttonMetadata.Enabled = !String.IsNullOrEmpty(SelectedSource?.Prefix) && GetSourceType(SelectedSource?.Prefix) != SourceIDType.MediaCube;\r
+ MetadataType metadataType = GuessMetadataType(SelectedSource?.Prefix);\r
+ buttonMetadata.Enabled = !String.IsNullOrEmpty(SelectedSource?.Prefix) && metadataType != MetadataType.MediaCube && metadataType != MetadataType.None;\r
}\r
\r
}\r
}\r
\r
private bool EnsureSegments(Target target) {\r
- if (target.SaveSegments && segments == null) {\r
+ if (target.SaveSegments && (segments == null || segments.Count == 0)) {\r
if (selectedMetadata?.VariantID != null && selectedMetadata?.VariantID != 0)\r
switch (selectedMetadata.Kind) {\r
case MetadataType.TrafficMaterial: {\r
};\r
}\r
\r
- private bool IsOffCheckAble(String text) {\r
- List<CheckBox> checkBoxes = new List<CheckBox>(currentProcessors.Keys);\r
- foreach (CheckBox actual in checkBoxes) {\r
- Target target = actual.Tag as Target;\r
- if (text.Equals(target.Reference))\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
private void HandleCheckBoxReferences(string reference, bool check) {\r
if (String.IsNullOrEmpty(reference))\r
return;\r
return result;\r
}\r
\r
- private void OnMetadataIDChanged(object sender, EventArgs e) {\r
- UpdateProcessorButtonsEnabled();\r
- UpdateDefineSegmentEnabled();\r
- UpdateEditArchiveMetadataEnabled();\r
- UpdateLookupMetadataEnabled();\r
- archiveMetadata = null;\r
- }\r
-\r
private void ChangeProcessButtonsState(bool enabled) {\r
if (panelActions.Controls == null)\r
return;\r
+++ /dev/null
-namespace Maestro.Metadata {\r
- public enum SourceIDType {\r
- TrafficID = 1,\r
- OctopusID = 2,\r
- MediaCube = 0\r
- }\r
-}\r
\r
namespace Maestro.Metadata {\r
public enum MetadataType {\r
- None, OctopusStory, OctopusPlaceHolder, TrafficMaterial = TrafficMetadataType.TrafficMaterial, TrafficPromo = TrafficMetadataType.TrafficPromo, TrafficAD = TrafficMetadataType.TrafficAD \r
+ None, MediaCube, OctopusStory, OctopusPlaceHolder, TrafficMaterial = TrafficMetadataType.TrafficMaterial, TrafficPromo = TrafficMetadataType.TrafficPromo, TrafficAD = TrafficMetadataType.TrafficAD \r
}\r
}\r
Microsoft Visual Studio Solution File, Format Version 12.00\r
# Visual Studio 15\r
-VisualStudioVersion = 15.0.26430.14\r
+VisualStudioVersion = 15.0.26430.15\r
MinimumVisualStudioVersion = 10.0.40219.1\r
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DxPlay", "DxPlay\DxPlay.csproj", "{0B44B3D7-52D7-4C0E-9B1C-F48CEEDA36FE}"\r
EndProject\r
{BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Debug|x86.Build.0 = Debug|x86\r
{BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
{BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|Any CPU.Build.0 = Release|Any CPU\r
- {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|x64.ActiveCfg = Release|Any CPU\r
- {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|x64.Build.0 = Release|Any CPU\r
+ {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|x64.ActiveCfg = Release|x64\r
+ {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|x64.Build.0 = Release|x64\r
{BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|x86.ActiveCfg = Release|Any CPU\r
{BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|x86.Build.0 = Release|Any CPU\r
{CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
{CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Debug|x86.Build.0 = Debug|x86\r
{CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
{CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|Any CPU.Build.0 = Release|Any CPU\r
- {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|x64.ActiveCfg = Release|Any CPU\r
- {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|x64.Build.0 = Release|Any CPU\r
+ {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|x64.ActiveCfg = Release|x64\r
+ {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|x64.Build.0 = Release|x64\r
{CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|x86.ActiveCfg = Release|Any CPU\r
{CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|x86.Build.0 = Release|Any CPU\r
{8CC7C930-9DBF-487B-AED5-776937A649D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
{8CC7C930-9DBF-487B-AED5-776937A649D5}.Debug|x86.Build.0 = Debug|x86\r
{8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
{8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|Any CPU.Build.0 = Release|Any CPU\r
- {8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|x64.ActiveCfg = Release|Any CPU\r
- {8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|x64.Build.0 = Release|Any CPU\r
+ {8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|x64.ActiveCfg = Release|x64\r
+ {8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|x64.Build.0 = Release|x64\r
{8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|x86.ActiveCfg = Release|Any CPU\r
{8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|x86.Build.0 = Release|Any CPU\r
{4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
{4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Debug|x86.Build.0 = Debug|x86\r
{4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
{4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|Any CPU.Build.0 = Release|Any CPU\r
- {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|x64.ActiveCfg = Release|Any CPU\r
- {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|x64.Build.0 = Release|Any CPU\r
+ {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|x64.ActiveCfg = Release|x64\r
+ {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|x64.Build.0 = Release|x64\r
{4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|x86.ActiveCfg = Release|Any CPU\r
{4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|x86.Build.0 = Release|Any CPU\r
{616D8912-16A4-493B-BC45-53BF2A5D9B92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
{616D8912-16A4-493B-BC45-53BF2A5D9B92}.Debug|x86.Build.0 = Debug|x86\r
{616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
{616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|Any CPU.Build.0 = Release|Any CPU\r
- {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|x64.ActiveCfg = Release|Any CPU\r
+ {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|x64.ActiveCfg = Release|x64\r
+ {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|x64.Build.0 = Release|x64\r
{616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|x86.ActiveCfg = Release|x86\r
{616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|x86.Build.0 = Release|x86\r
{A7A21311-CB0E-465F-8AD6-829FAF093F00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
{A7A21311-CB0E-465F-8AD6-829FAF093F00}.Debug|x86.Build.0 = Debug|x86\r
{A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
{A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|Any CPU.Build.0 = Release|Any CPU\r
- {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|x64.ActiveCfg = Release|Any CPU\r
- {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|x64.Build.0 = Release|Any CPU\r
+ {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|x64.ActiveCfg = Release|x64\r
+ {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|x64.Build.0 = Release|x64\r
{A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|x86.ActiveCfg = Release|Any CPU\r
{A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|x86.Build.0 = Release|Any CPU\r
{8C51D508-1759-4C10-84A4-80965FD074FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
{8C51D508-1759-4C10-84A4-80965FD074FF}.Debug|x86.Build.0 = Debug|Any CPU\r
{8C51D508-1759-4C10-84A4-80965FD074FF}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
{8C51D508-1759-4C10-84A4-80965FD074FF}.Release|Any CPU.Build.0 = Release|Any CPU\r
- {8C51D508-1759-4C10-84A4-80965FD074FF}.Release|x64.ActiveCfg = Release|Any CPU\r
- {8C51D508-1759-4C10-84A4-80965FD074FF}.Release|x64.Build.0 = Release|Any CPU\r
+ {8C51D508-1759-4C10-84A4-80965FD074FF}.Release|x64.ActiveCfg = Release|x64\r
+ {8C51D508-1759-4C10-84A4-80965FD074FF}.Release|x64.Build.0 = Release|x64\r
{8C51D508-1759-4C10-84A4-80965FD074FF}.Release|x86.ActiveCfg = Release|Any CPU\r
{8C51D508-1759-4C10-84A4-80965FD074FF}.Release|x86.Build.0 = Release|Any CPU\r
EndGlobalSection\r
HideCheckBox(treeOctopus, actualNode);\r
MosObject[] mosObjects = story.MosObjects;\r
foreach (MosObject mosObject in mosObjects) {\r
- TreeNode node = actualNode.Nodes.Add(mosObject.ObjID, String.Format($"{mosObject.ObjID}"));\r
+ TreeNode node = actualNode.Nodes.Add(mosObject.ObjID, String.Format($"{mosObject.ID} {mosObject.ObjID}"));\r
node.Tag = mosObject.ID;\r
}\r
}\r
HideCheckBox(treeOctopus, actualNode);\r
MosObject[] mosObjects = story.MosObjects;\r
foreach (MosObject mosObject in mosObjects) {\r
- TreeNode node = actualNode.Nodes.Add(mosObject.ObjID, String.Format($"{mosObject.ObjID}"));\r
+ TreeNode node = actualNode.Nodes.Add(mosObject.ObjID, String.Format($"{mosObject.ID} {mosObject.ObjID}"));\r
node.Tag = mosObject.ID;\r
}\r
}\r
}\r
\r
private void OnDataGridKeyDown(object sender, KeyEventArgs e) {\r
- if (e.KeyCode == Keys.Space && dgTraffic.CurrentCell.GetType() != typeof(DataGridViewCheckBoxCell))\r
+ if (e.KeyCode == Keys.Space && dgTraffic.CurrentCell.ColumnIndex != 0)\r
OnSelectionChanged(dgTraffic.SelectedRows[0]);\r
}\r
}\r