TargetConfig = configuration,\r
InputFileName = @"c:\tmp\watch\tcdrone.MXF",\r
ID = "000000",\r
- Segments = null,\r
MediaCubeApi = null,\r
ArchiveMetadata = null\r
};\r
using Microsoft.VisualStudio.TestTools.UnitTesting;\r
using TrafficClient;\r
using System.Collections.Generic;\r
+using MaestroShared.Metadata;\r
\r
namespace IntegrationTests {\r
[TestClass]\r
[TestMethod]\r
public void GetSegmentReadyTest() {\r
//Exercise\r
- List<Segment> actual = sut.GetMaterialSegments(ITEM_ID);\r
+ List<MovieSegment> actual = sut.GetMaterialSegments(ITEM_ID);\r
\r
//Verify\r
Assert.IsTrue(actual.Count > 0);\r
using Model;\r
using MaestroShared.Configuration;\r
using MaestroShared.Metadata;\r
+using MaestroShared.Targets;\r
\r
namespace Maestro {\r
public partial class MaestroForm {\r
private const string REGEXP_OCTOPUSPLACEHOLDERVERSIONEDID = "^[0-9]+_[0-9]+-[0-9]{3}$";\r
\r
private MetadataInfo selectedMetadata;\r
- private List<Segment> segments;\r
private BindingList<MovieSegment> movieSegments;\r
private MediaCubeApi mediaCubeApi;\r
private ArchiveMetadata archiveMetadata;\r
}\r
set {\r
selectedMetadata = value;\r
- segments = null;\r
+ movieSegments = null;\r
textSelectedMetadata.Text = value?.ID;\r
ttMetadata.SetToolTip(textSelectedMetadata, GetMetadataTypeTooltip(value?.Kind));\r
}\r
textSelectedMetadata.ReadOnly = !Configuration.EnableCustomMetadataId;\r
UpdateDefineSegmentEnabled();\r
UpdateEditArchiveMetadataEnabled();\r
+\r
+ MessageBus.Subscribe<TargetUpdateTrafficMessage>(m => OnTargetUpdateTrafficMessage(m));\r
+ }\r
+\r
+ private void OnTargetUpdateTrafficMessage(TargetUpdateTrafficMessage message) {\r
+ trafficIDSelector.trafficAPI.UpdateTrafficInformation(message.VariantID, message.Ready, message.MetadataType, message.Segments);\r
}\r
\r
private void InitializeTrafficSelector() {\r
if (SelectedSource?.FileInfo == null)\r
return;\r
Cursor = Cursors.WaitCursor;\r
- CreateEditableSegments();\r
+ if (movieSegments == null || movieSegments.Count == 0)\r
+ QuerySegments();\r
+ if (movieSegments == null)\r
+ movieSegments = new BindingList<MovieSegment>();\r
PlayerForm player = new PlayerForm(ref movieSegments);\r
player.AutoStart = Configuration.Player.AutoStart;\r
player.SegmentEditor = Configuration.Player.SegmentEditor;\r
player.Open(SelectedSource.FileInfo);\r
Cursor = Cursors.Default;\r
player.ShowDialog();\r
- CreateSegments(movieSegments);\r
UpdateDefineSegmentsStatus();\r
}\r
\r
+ private void QuerySegments() {\r
+ List<MovieSegment> storedSegments = GetSegments();\r
+ if (storedSegments != null && storedSegments.Count > 0)\r
+ movieSegments = new BindingList<MovieSegment>(storedSegments);\r
+ }\r
+\r
private void UpdateDefineSegmentsStatus() {\r
- if(segments == null || segments.Count == 0)\r
+ if(movieSegments == null || movieSegments.Count == 0)\r
btnDefineSegments.Image = Properties.Resources.ic_playlist_add_check_black_24dp_1x;\r
else\r
btnDefineSegments.Image = Properties.Resources.ic_playlist_add_check_black_24dp_1x_green;\r
btnEditMetadata.Image = Properties.Resources.ic_receipt_black_24dp_1x_green;\r
}\r
\r
- private void CreateSegments(BindingList<MovieSegment> movieSegments) {\r
- if (movieSegments == null || movieSegments.Count == 0) {\r
- segments = null;\r
- return;\r
- }\r
- if (segments != null)\r
- segments.Clear();\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 void CreateEditableSegments() {\r
- if (segments == null)\r
- segments = GetSegments();\r
- movieSegments = new BindingList<MovieSegment>();\r
- if (segments != null) {\r
- foreach (Segment segment in segments) {\r
- MovieSegment movieSegment = segmentConverter.ConvertToMovieSegment(segment);\r
- movieSegments.Add(movieSegment);\r
- }\r
- }\r
- }\r
\r
- private List<Segment> GetSegments() {\r
- List<Segment> result = null;\r
+ private List<MovieSegment> GetSegments() {\r
+ List<MovieSegment> result = null;\r
switch (selectedMetadata.Kind) {\r
case MetadataType.TrafficMaterial: {\r
result = trafficIDSelector.trafficAPI.GetMaterialSegments(selectedMetadata.VariantID);\r
}\r
}\r
\r
- segments = null;\r
movieSegments = null;\r
archiveMetadata = null;\r
\r
}\r
textSelectedSource.Text = selectedSource?.Name;\r
archiveMetadata = null;\r
- segments = null;\r
movieSegments = null;\r
UpdateProcessorButtonsEnabled();\r
UpdateDefineSegmentEnabled();\r
using System.Linq;\r
using System.Windows.Forms;\r
using System.Collections.Generic;\r
-using TrafficClient;\r
using MaestroShared.Configuration;\r
using MaestroShared.Metadata;\r
using MaestroShared.Targets;\r
using MaestroShared.Target;\r
-using System.Diagnostics;\r
+using System.ComponentModel;\r
\r
namespace Maestro {\r
\r
public partial class MaestroForm {\r
\r
- private SegmentConverter segmentConverter;\r
-\r
private void InitializeTarget() {\r
btnExecute.Enabled = false;\r
if (Configuration.Targets == null)\r
}\r
\r
UpdateProcessorButtonsEnabled();\r
- segmentConverter = new SegmentConverter();\r
}\r
\r
private void CreateTarget(Target target) {\r
\r
\r
private bool EnsureSegments(Target target) {\r
- if ((target.SaveMorpheusMetadata || target.SaveSegments) && (segments == null || segments.Count == 0)) {\r
- if (selectedMetadata?.VariantID != null && selectedMetadata?.VariantID != 0)\r
- segments = GetSegments();\r
- if (segments == null) {\r
+ if ((target.SaveMorpheusMetadata || target.SaveSegments) && (movieSegments == null || movieSegments.Count == 0)) {\r
+ if (selectedMetadata?.VariantID != null && selectedMetadata?.VariantID != 0) {\r
+ List<MovieSegment> storedSegments = GetSegments();\r
+ if (storedSegments != null && storedSegments.Count > 0)\r
+ movieSegments = new BindingList<MovieSegment>(storedSegments);\r
+ }\r
+ if (movieSegments == null) {\r
MessageBox.Show(String.Format("A {0} folyamat nem futtatható szegmens adatok nélkül.", target.Label));\r
return false;\r
}\r
- CreateEditableSegments();\r
switch (selectedMetadata.Kind) {\r
case MetadataType.TrafficPromo: {\r
- if (segments.Count != 1) {\r
+ if (movieSegments.Count != 1) {\r
MessageBox.Show(String.Format("Promó anyagnak csak egy szegmens adata lehet."));\r
return false;\r
}\r
break;\r
}\r
case MetadataType.TrafficAD: {\r
- if (segments.Count != 1) {\r
+ if (movieSegments.Count != 1) {\r
MessageBox.Show(String.Format("Reklám anyagnak csak egy szegmens adata lehet."));\r
return false;\r
}\r
\r
private TargetProcessorParameter CreateProcessorParameter(Target target, ISourceItem sourceItem) {\r
return new TargetProcessorParameter() {\r
- TrafficApi = trafficIDSelector.trafficAPI,\r
MediaCubeApi = mediaCubeApi,\r
SourceConfig = Configuration.Source,\r
TargetConfig = target,\r
ID = textSelectedMetadata.Text,\r
MetadataText = SelectedMetadata?.MetadataText,\r
InputFileName = sourceItem.Name,\r
- Segments = segments == null ? null : new List<Segment>(segments),\r
MovieSegments = movieSegments == null ? null : movieSegments.ToList(), \r
ArchiveMetadata = ArchiveMetadata.DeepClone(archiveMetadata),\r
VariantID = selectedMetadata == null ? 0 : selectedMetadata.VariantID,\r
MetadataKind = selectedMetadata == null ? MetadataType.None : selectedMetadata.Kind,\r
- UserName = TrayApplicationContext.UserName\r
+ UserName = TrayApplicationContext.UserName,\r
+ MessageBus = MessageBus\r
};\r
}\r
\r
<Reference Include="FluentFTP, Version=19.1.2.0, Culture=neutral, PublicKeyToken=f4af092b1d8df44f, processorArchitecture=MSIL">\r
<HintPath>..\packages\FluentFTP.19.1.2\lib\net45\FluentFTP.dll</HintPath>\r
</Reference>\r
+ <Reference Include="LinkDotNet.MessageHandling.Contracts, Version=0.2.0.0, Culture=neutral, processorArchitecture=MSIL">\r
+ <HintPath>..\packages\LinkDotNet.MessageBus.Contracts.0.1.1\lib\LinkDotNet.MessageHandling.Contracts.dll</HintPath>\r
+ </Reference>\r
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">\r
<HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>\r
</Reference>\r
<Compile Include="Targets\FTPTargetProcessor.cs" />\r
<Compile Include="Targets\FXPTargetProcessor.cs" />\r
<Compile Include="Targets\ITargetProcessor.cs" />\r
- <Compile Include="Metadata\SegmentConverter.cs" />\r
<Compile Include="Targets\TargetProcessor.cs" />\r
<Compile Include="Targets\TargetProcessorParameter.cs" />\r
+ <Compile Include="Targets\TargetUpdateTrafficMessage.cs" />\r
<Compile Include="Targets\UNCTargetProcessor.cs" />\r
</ItemGroup>\r
<ItemGroup>\r
<Project>{cefd0348-ded4-453e-bf3a-0b52f8890ab3}</Project>\r
<Name>MediaCubeClient</Name>\r
</ProjectReference>\r
- <ProjectReference Include="..\OctopusClient\OctopusClient.csproj">\r
- <Project>{8cc7c930-9dbf-487b-aed5-776937a649d5}</Project>\r
- <Name>OctopusClient</Name>\r
- </ProjectReference>\r
<ProjectReference Include="..\PasswordEncrypter\PasswordEncrypter.csproj">\r
<Project>{8c51d508-1759-4c10-84a4-80965fd074ff}</Project>\r
<Name>PasswordEncrypter</Name>\r
</ProjectReference>\r
- <ProjectReference Include="..\PlanAIRClient\TrafficClient.csproj">\r
- <Project>{a7a21311-cb0e-465f-8ad6-829faf093f00}</Project>\r
- <Name>TrafficClient</Name>\r
- </ProjectReference>\r
</ItemGroup>\r
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
</Project>
\ No newline at end of file
-using TrafficClient;\r
-\r
-namespace MaestroShared.Metadata {\r
+namespace MaestroShared.Metadata {\r
public enum MetadataType {\r
- None = 6, MediaCube = 5, OctopusStory = 4, OctopusPlaceHolder = 3, TrafficMaterial = TrafficMetadataType.TrafficMaterial, TrafficPromo = TrafficMetadataType.TrafficPromo, TrafficAD = TrafficMetadataType.TrafficAD \r
+ None, MediaCube, OctopusStory, OctopusPlaceHolder, TrafficMaterial, TrafficPromo, TrafficAD\r
}\r
}\r
+++ /dev/null
-using TrafficClient;\r
-\r
-namespace MaestroShared.Metadata {\r
- public class SegmentConverter {\r
-\r
- public MovieSegment ConvertToMovieSegment(Segment source) {\r
- Timecode tcIn = new Timecode();\r
- Timecode tcOut = new Timecode();\r
- tcIn.Set((int)source.TCIn);\r
- tcOut.Set((int)source.TCOut);\r
- MovieSegment result = new MovieSegment() {\r
- Comment = source.Comment,\r
- Optional = source.Optional,\r
- TCIn = tcIn,\r
- TCOut = tcOut\r
- };\r
- return result;\r
- }\r
-\r
- public Segment ConvertToSegment(MovieSegment source) {\r
- Segment result = new Segment() {\r
- Comment = source.Comment,\r
- Optional = source.Optional,\r
- TCIn = source.TCIn.Frames,\r
- TCOut = source.TCOut.Frames\r
- };\r
- return result;\r
- }\r
- }\r
-}\r
\r
}\r
\r
+ public Timecode(long frames) : this() {\r
+ Set(frames);\r
+ }\r
+\r
public Timecode(Timecode tc) {\r
if (tc == null)\r
return;\r
using System.Collections.Generic;\r
-using TrafficClient;\r
using MediaCubeClient;\r
using MaestroShared.Configuration;\r
using MaestroShared.Metadata;\r
+using LinkDotNet.MessageHandling.Contracts;\r
\r
namespace MaestroShared.Target {\r
public class TargetProcessorParameter {\r
public string InputFileName { get; set; }\r
public string ID { get; set; }\r
public string MetadataText { get; set; }\r
- public List<Segment> Segments { get; set; }\r
public List<MovieSegment> MovieSegments { get; set; }\r
public MediaCubeApi MediaCubeApi { get; set; }\r
public ArchiveMetadata ArchiveMetadata { get; set; }\r
- public TrafficAPI TrafficApi { get; set; }\r
public int VariantID { get; set; }\r
public MetadataType MetadataKind { get; set; }\r
public string UserName { get; set; }\r
+ public IMessageBus MessageBus { get; set; }\r
}\r
}\r
--- /dev/null
+using LinkDotNet.MessageHandling.Contracts;\r
+using MaestroShared.Metadata;\r
+using System.Collections.Generic;\r
+\r
+namespace MaestroShared.Targets {\r
+ public class TargetUpdateTrafficMessage : IMessage {\r
+ public int VariantID { get; set; }\r
+ public bool Ready { get; set; }\r
+ public MetadataType MetadataType { get; set; }\r
+ public List<MovieSegment> Segments { get; set; }\r
+ }\r
+}\r
using System;\r
using System.IO;\r
using System.Windows.Forms;\r
-using TrafficClient;\r
using Model;\r
using System.Text;\r
using System.Globalization;\r
CreateArchiveMetadata();\r
if (Parameters.TargetConfig.SaveMorpheusMetadata && Parameters.ArchiveMetadata != null && Parameters.MovieSegments != null && Parameters.MovieSegments.Count > 0)\r
UploadMorpheusMetadata();\r
- if (Parameters.TargetConfig.SaveSegments && Parameters.Segments != null)\r
- Parameters.TrafficApi.UpdateTrafficInformation(Parameters.VariantID, true, (TrafficMetadataType)Parameters.MetadataKind, Parameters.Segments);\r
-\r
+ if (Parameters.TargetConfig.SaveSegments && Parameters.MovieSegments != null)\r
+ UpdateTrafficInformation();\r
if (Parameters.TargetConfig.SendEmailOnSuccess && !String.IsNullOrEmpty(Parameters.TargetConfig.SuccessEmailRecipient) && !String.IsNullOrEmpty(Parameters.TargetConfig.SuccessEmailPattern))\r
SendEmail(Parameters.TargetConfig.SuccessEmailRecipient, Parameters.TargetConfig.SuccessEmailPattern);\r
Status = READY;\r
Message = SUCCESS;\r
}\r
\r
+ private void UpdateTrafficInformation() {\r
+ TargetUpdateTrafficMessage message = new TargetUpdateTrafficMessage {\r
+ VariantID = Parameters.VariantID,\r
+ Ready = true,\r
+ MetadataType = Parameters.MetadataKind,\r
+ Segments = Parameters.MovieSegments\r
+ };\r
+ \r
+ }\r
+\r
private void UploadNexioMetadata() {\r
String xml = null;\r
string name = GetOutputName();\r
<?xml version="1.0" encoding="utf-8"?>\r
<packages>\r
<package id="FluentFTP" version="19.1.2" targetFramework="net461" />\r
+ <package id="LinkDotNet.MessageBus.Contracts" version="0.1.1" targetFramework="net461" />\r
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net461" />\r
<package id="NLog" version="4.4.12" targetFramework="net461" />\r
</packages>
\ No newline at end of file
+++ /dev/null
-namespace TrafficClient {\r
- public class Segment {\r
- public long TCIn { get; set; }\r
- public long TCOut { get; set; }\r
- public bool Optional { get; set; }\r
- public string Comment { get; set; }\r
- }\r
-}\r
using NLog;\r
using TrafficClient.Workers;\r
using LinkDotNet.MessageHandling.Contracts;\r
+using MaestroShared.Metadata;\r
\r
namespace TrafficClient {\r
public class TrafficAPI {\r
return materialWorker.GetMaterialArchiveMetadata(strParam);\r
}\r
\r
- public void UpdateTrafficInformation(int itemID, bool ready, TrafficMetadataType kind, List<Segment> segments) {\r
+ public void UpdateTrafficInformation(int itemID, bool ready, MetadataType kind, List<MovieSegment> segments) {\r
switch (kind) {\r
- case TrafficMetadataType.TrafficMaterial: {\r
+ case MetadataType.TrafficMaterial: {\r
materialWorker.SetMaterialOK(itemID, false);\r
segmentWorker.DeleteMaterialSegments(itemID);\r
- foreach (Segment actualSegment in segments)\r
+ foreach (MovieSegment actualSegment in segments)\r
segmentWorker.AddMaterialSegment(itemID, actualSegment);\r
materialWorker.SetMaterialOK(itemID, ready);\r
break;\r
}\r
- case TrafficMetadataType.TrafficAD: {\r
+ case MetadataType.TrafficAD: {\r
if (segments != null && segments.Count == 1)\r
segmentWorker.AddADSegment(itemID, segments[0]);\r
adWorker.SetADOK(itemID, true);\r
break;\r
}\r
- case TrafficMetadataType.TrafficPromo: {\r
+ case MetadataType.TrafficPromo: {\r
promoWorker.SetPromoOK(itemID, true);\r
if (segments != null && segments.Count == 1)\r
segmentWorker.AddPromoSegment(itemID, segments[0]);\r
return adWorker.GetADArchiveMetadata(strParam);\r
}\r
\r
- public List<Segment> GetMaterialSegments(int itemID) {\r
+ public List<MovieSegment> GetMaterialSegments(int itemID) {\r
return segmentWorker.GetMaterialSegments(itemID);\r
}\r
\r
- public List<Segment> GetPromoSegments(string strParam) {\r
+ public List<MovieSegment> GetPromoSegments(string strParam) {\r
return segmentWorker.GetPromoSegments(strParam);\r
}\r
\r
- public List<Segment> GetADSegments(string strParam) {\r
+ public List<MovieSegment> GetADSegments(string strParam) {\r
return segmentWorker.GetADSegments(strParam);\r
}\r
\r
<Compile Include="TrafficLookupResultSelector.Designer.cs">\r
<DependentUpon>TrafficLookupResultSelector.cs</DependentUpon>\r
</Compile>\r
- <Compile Include="Segment.cs" />\r
<Compile Include="TrafficClasses.cs">\r
<DependentUpon>TrafficClasses.dbml</DependentUpon>\r
</Compile>\r
<DependentUpon>TrafficIDSelector.cs</DependentUpon>\r
</EmbeddedResource>\r
</ItemGroup>\r
- <ItemGroup />\r
+ <ItemGroup>\r
+ <ProjectReference Include="..\MaestroShared\MaestroShared.csproj">\r
+ <Project>{d4417174-f21e-4ce2-ae5c-8eb30c9a9625}</Project>\r
+ <Name>MaestroShared</Name>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
</Project>
\ No newline at end of file
using System.Data.SqlClient;\r
using NLog;\r
using LinkDotNet.MessageHandling.Contracts;\r
+using MaestroShared.Metadata;\r
\r
namespace TrafficClient.Workers {\r
public class SegmentWorker : TrafficWorker {\r
base(connection, cliFSPReader, messageBus) {\r
}\r
\r
- private Segment ToSegment(clIFsp_EC_MAMPromotionalResult item) {\r
- return new Segment() {\r
- TCIn = item.t_TcIn.HasValue ? item.t_TcIn.Value : 0,\r
- TCOut = item.t_TcOut.HasValue ? item.t_TcOut.Value : 0,\r
+ private MovieSegment ToSegment(clIFsp_EC_MAMPromotionalResult item) {\r
+ return new MovieSegment() {\r
+ TCIn = item.t_TcIn.HasValue ? new Timecode(item.t_TcIn.Value) : new Timecode(),\r
+ TCOut = item.t_TcOut.HasValue ? new Timecode(item.t_TcOut.Value) : new Timecode(),\r
};\r
}\r
\r
- private Segment ToSegment(clIFsp_EC_SegmentResult item) {\r
- return new Segment() {\r
- TCIn = item.v_TcIn.HasValue ? item.v_TcIn.Value : 0,\r
- TCOut = item.v_TcOut.HasValue ? item.v_TcOut.Value : 0,\r
+ private MovieSegment ToSegment(clIFsp_EC_SegmentResult item) {\r
+ return new MovieSegment() {\r
+ TCIn = item.v_TcIn.HasValue ? new Timecode(item.v_TcIn.Value) : new Timecode(),\r
+ TCOut = item.v_TcOut.HasValue ? new Timecode(item.v_TcOut.Value) : new Timecode(),\r
Comment = item.v_SegTitle,\r
Optional = item.v_Dropable.HasValue ? item.v_Dropable.Value : false\r
};\r
}\r
\r
- private Segment ToSegment(clIFsp_EC_MAMAdvertismentResult item) {\r
- return new Segment() {\r
- TCIn = item.t_TcIn.HasValue ? item.t_TcIn.Value : 0,\r
- TCOut = item.t_TcOut.HasValue ? item.t_TcOut.Value : 0\r
+ private MovieSegment ToSegment(clIFsp_EC_MAMAdvertismentResult item) {\r
+ return new MovieSegment() {\r
+ TCIn = item.t_TcIn.HasValue ? new Timecode(item.t_TcIn.Value) : new Timecode(),\r
+ TCOut = item.t_TcOut.HasValue ? new Timecode(item.t_TcOut.Value) : new Timecode()\r
};\r
}\r
\r
- public List<Segment> GetMaterialSegments(int itemID) {\r
- List<Segment> result = null;\r
+ public List<MovieSegment> GetMaterialSegments(int itemID) {\r
+ List<MovieSegment> result = null;\r
try {\r
TryConnect();\r
using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
using (SqlDataReader reader = cmd.ExecuteReader()) {\r
while (reader.Read()) {\r
if (result == null)\r
- result = new List<Segment>();\r
+ result = new List<MovieSegment>();\r
clIFsp_EC_SegmentResult item = cliFSPReader.ToclIFsp_SegmentResult(reader);\r
result.Add(ToSegment(item));\r
}\r
}\r
}\r
\r
- public void AddMaterialSegment(int itemID, Segment segment) {\r
+ public void AddMaterialSegment(int itemID, MovieSegment segment) {\r
object comment = segment.Comment;\r
if (String.IsNullOrEmpty(segment.Comment))\r
comment = DBNull.Value;\r
cmd.CommandType = CommandType.StoredProcedure;\r
cmd.Parameters.AddWithValue("@Operation", 1115);\r
cmd.Parameters.AddWithValue("@@ItemID", itemID);\r
- cmd.Parameters.AddWithValue("@@IntParam1", segment.TCIn);\r
- cmd.Parameters.AddWithValue("@@IntParam2", segment.TCOut);\r
+ cmd.Parameters.AddWithValue("@@IntParam1", segment.TCIn.Frames);\r
+ cmd.Parameters.AddWithValue("@@IntParam2", segment.TCOut.Frames);\r
cmd.Parameters.AddWithValue("@@StrParam1", comment);\r
cmd.Parameters.AddWithValue("@@StrParam2", DBNull.Value);\r
cmd.Parameters.AddWithValue("@@@Options", optionalParam);\r
}\r
}\r
\r
- public void AddADSegment(int itemID, Segment segment) {\r
+ public void AddADSegment(int itemID, MovieSegment segment) {\r
object comment = segment.Comment;\r
if (String.IsNullOrEmpty(segment.Comment))\r
comment = DBNull.Value;\r
cmd.Parameters.AddWithValue("@Operation", 3100);\r
cmd.Parameters.AddWithValue("@@ItemID", itemID);\r
cmd.Parameters.AddWithValue("@@@Options", DBNull.Value);\r
- cmd.Parameters.AddWithValue("@@IntParam1", segment.TCIn);\r
- cmd.Parameters.AddWithValue("@@IntParam2", segment.TCOut);\r
+ cmd.Parameters.AddWithValue("@@IntParam1", segment.TCIn.Frames);\r
+ cmd.Parameters.AddWithValue("@@IntParam2", segment.TCOut.Frames);\r
cmd.Parameters.AddWithValue("@@StrParam1", comment);\r
cmd.ExecuteNonQuery();\r
}\r
}\r
}\r
\r
- public void AddPromoSegment(int itemID, Segment segment) {\r
+ public void AddPromoSegment(int itemID, MovieSegment segment) {\r
object comment = segment.Comment;\r
if (String.IsNullOrEmpty(segment.Comment))\r
comment = DBNull.Value;\r
cmd.Parameters.AddWithValue("@Operation", 2100);\r
cmd.Parameters.AddWithValue("@@ItemID", itemID);\r
cmd.Parameters.AddWithValue("@@@Options", DBNull.Value);\r
- cmd.Parameters.AddWithValue("@@IntParam1", segment.TCIn);\r
- cmd.Parameters.AddWithValue("@@IntParam2", segment.TCOut);\r
+ cmd.Parameters.AddWithValue("@@IntParam1", segment.TCIn.Frames);\r
+ cmd.Parameters.AddWithValue("@@IntParam2", segment.TCOut.Frames);\r
cmd.Parameters.AddWithValue("@@StrParam2", comment);\r
cmd.ExecuteNonQuery();\r
}\r
}\r
}\r
\r
- public List<Segment> GetPromoSegments(string strParam) {\r
- List<Segment> result = null;\r
+ public List<MovieSegment> GetPromoSegments(string strParam) {\r
+ List<MovieSegment> result = null;\r
try {\r
TryConnect();\r
using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
using (SqlDataReader reader = cmd.ExecuteReader()) {\r
while (reader.Read()) {\r
if (result == null)\r
- result = new List<Segment>();\r
+ result = new List<MovieSegment>();\r
\r
clIFsp_EC_MAMPromotionalResult item = cliFSPReader.ToclIFsp_MAMPromotionalResult(reader);\r
- Segment segment = ToSegment(item);\r
- if (segment.TCOut != 0)\r
+ MovieSegment segment = ToSegment(item);\r
+ if (segment.TCOut.Frames != 0)\r
result.Add(segment);\r
}\r
}\r
return result;\r
}\r
\r
- public List<Segment> GetADSegments(string strParam) {\r
- List<Segment> result = null;\r
+ public List<MovieSegment> GetADSegments(string strParam) {\r
+ List<MovieSegment> result = null;\r
try {\r
TryConnect();\r
using (SqlCommand cmd = new SqlCommand("dbo.clIFsp_EC_MAM", connection)) {\r
using (SqlDataReader reader = cmd.ExecuteReader()) {\r
while (reader.Read()) {\r
if (result == null)\r
- result = new List<Segment>();\r
+ result = new List<MovieSegment>();\r
clIFsp_EC_MAMAdvertismentResult item = cliFSPReader.ToclIFsp_MAMAdvertisementResult(reader);\r
- Segment segment = ToSegment(item);\r
- if (segment.TCOut != 0)\r
+ MovieSegment segment = ToSegment(item);\r
+ if (segment.TCOut.Frames != 0)\r
result.Add(segment);\r
}\r
}\r