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
}\r
set {\r
selectedMetadata = value;\r
- movieSegments = null;\r
segments = null;\r
textSelectedMetadata.Text = value?.ID;\r
ttMetadata.SetToolTip(textSelectedMetadata, GetMetadataTypeTooltip(value?.Kind));\r
if (SelectedSource?.FileInfo == null)\r
return;\r
Cursor = Cursors.WaitCursor;\r
- if (movieSegments == null)\r
- movieSegments = GetMovieSegmentsFromSegments();\r
+ BindingList<MovieSegment> movieSegments = GetEditableSegments();\r
PlayerForm player = new PlayerForm(ref movieSegments);\r
player.AutoStart = Configuration.Player.AutoStart;\r
player.SegmentEditor = Configuration.Player.SegmentEditor;\r
}\r
\r
private void ConvertMovieSegmentsToSegments(BindingList<MovieSegment> movieSegments) {\r
- segments = new List<Segment>();\r
+ if (movieSegments == null || movieSegments.Count == 0) {\r
+ segments = null;\r
+ return;\r
+ }\r
+\r
foreach (MovieSegment actual in movieSegments) {\r
Segment actualSegment = segmentConverter.ConvertToSegment(actual);\r
+ if (segments == null)\r
+ segments = new List<Segment>();\r
segments.Add(actualSegment);\r
}\r
}\r
\r
- private BindingList<MovieSegment> GetMovieSegmentsFromSegments() {\r
+ private BindingList<MovieSegment> GetEditableSegments() {\r
BindingList<MovieSegment> result = new BindingList<MovieSegment>();\r
- TrafficAPI trafficApi = trafficIDSelector.trafficAPI;\r
- List<Segment> segments = trafficApi.GetMaterialSegments(selectedMetadata.VariantID);\r
- if (segments != null)\r
+ if (segments == null)\r
+ segments = GetSegments();\r
+ if (segments != null) {\r
foreach (Segment segment in segments) {\r
MovieSegment movieSegment = segmentConverter.ConvertToMovieSegment(segment);\r
result.Add(movieSegment);\r
}\r
+ }\r
return result;\r
}\r
\r
+ private List<Segment> GetSegments() {\r
+ List<Segment> result = null;\r
+ switch (selectedMetadata.Kind) {\r
+ case MetadataType.TrafficMaterial: {\r
+ result = trafficIDSelector.trafficAPI.GetMaterialSegments(selectedMetadata.VariantID);\r
+ break;\r
+ }\r
+ case MetadataType.TrafficPromo: {\r
+ result = trafficIDSelector.trafficAPI.GetPromoSegments(selectedMetadata.ID);\r
+ break;\r
+ }\r
+ case MetadataType.TrafficAD: {\r
+ result = trafficIDSelector.trafficAPI.GetADSegments(selectedMetadata.ID);\r
+ break;\r
+ }\r
+ }\r
+ return result;\r
+ }\r
+\r
+\r
private ArchiveMetadata GetArchiveMetadata() {\r
ArchiveMetadata result = null;\r
Cursor.Current = Cursors.WaitCursor;\r
UpdateDefineSegmentEnabled();\r
UpdateEditArchiveMetadataEnabled();\r
UpdateLookupMetadataEnabled();\r
+ segments = null;\r
archiveMetadata = null;\r
}\r
\r
return result;\r
}\r
\r
+\r
private bool EnsureSegments(Target target) {\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
- segments = trafficIDSelector.trafficAPI.GetMaterialSegments(selectedMetadata.VariantID);\r
- if (segments == null) {\r
- MessageBox.Show(String.Format("A {0} folyamat nem futtatható szegmens adatok nélkül.", target.Label));\r
- return false;\r
- }\r
- break;\r
- }\r
- case MetadataType.TrafficPromo: {\r
- segments = trafficIDSelector.trafficAPI.GetPromoSegments(selectedMetadata.ID);\r
- if (segments == null) {\r
- MessageBox.Show(String.Format("A {0} folyamat nem futtatható szegmens adatok nélkül.", target.Label));\r
- return false;\r
- }\r
- if (segments.Count != 1) {\r
- MessageBox.Show(String.Format("A promó anyagnak csak egy szegmens adata lehet."));\r
- return false;\r
- }\r
- break;\r
+ segments = GetSegments();\r
+ if (segments == null) {\r
+ MessageBox.Show(String.Format("A {0} folyamat nem futtatható szegmens adatok nélkül.", target.Label));\r
+ return false;\r
+ }\r
+ switch (selectedMetadata.Kind) {\r
+ case MetadataType.TrafficPromo: {\r
+ if (segments.Count != 1) {\r
+ MessageBox.Show(String.Format("Promó anyagnak csak egy szegmens adata lehet."));\r
+ return false;\r
}\r
- case MetadataType.TrafficAD: {\r
- segments = trafficIDSelector.trafficAPI.GetADSegments(selectedMetadata.ID);\r
- if (segments == null) {\r
- MessageBox.Show(String.Format("A {0} folyamat nem futtatható szegmens adatok nélkül.", target.Label));\r
- return false;\r
- }\r
- if (segments.Count != 1) {\r
- MessageBox.Show(String.Format("A reklám anyagnak csak egy szegmens adata lehet."));\r
- return false;\r
- }\r
- break;\r
+ break;\r
+ }\r
+ case MetadataType.TrafficAD: {\r
+ if (segments.Count != 1) {\r
+ MessageBox.Show(String.Format("Reklám anyagnak csak egy szegmens adata lehet."));\r
+ return false;\r
}\r
- }\r
+ break;\r
+ }\r
+ }\r
}\r
return true;\r
}\r