366 lines
24 KiB
C#
366 lines
24 KiB
C#
using skyscraper5.Skyscraper.Scraper.Storage.Split;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using MySqlConnector;
|
|
using skyscraper5.Scte35;
|
|
using skyscraper5.Scte35.Descriptors;
|
|
|
|
namespace skyscraper5.Data.MySql
|
|
{
|
|
public partial class MySqlDataStorage : DataStorage
|
|
{
|
|
private void InsertScte35SpliceComponents(MySqlTransaction transaction, int currentNetworkId, int currentTransportStreamId, ushort programNumber, SpliceInsert spliceInsert)
|
|
{
|
|
if (spliceInsert.Components == null)
|
|
return;
|
|
|
|
if (spliceInsert.Components.Length == 0)
|
|
return;
|
|
|
|
MySqlCommand command = transaction.Connection.CreateCommand();
|
|
command.Transaction = transaction;
|
|
command.CommandText =
|
|
"INSERT INTO scte35_splice_components (cnid, ctsid, progno, splice_event_id, k, v) VALUES (@cnid, @ctsid, @progno, @splice_event_id, @k, @v)";
|
|
command.Parameters.AddWithValue("@cnid", currentNetworkId);
|
|
command.Parameters.AddWithValue("@ctsid", currentTransportStreamId);
|
|
command.Parameters.AddWithValue("@progno", programNumber);
|
|
command.Parameters.AddWithValue("@splice_event_id", spliceInsert.SpliceEventId);
|
|
command.Parameters.Add("@k", MySqlDbType.Int16);
|
|
command.Parameters.Add("@v", MySqlDbType.Int64);
|
|
foreach (Tuple<byte, ulong?> component in spliceInsert.Components)
|
|
{
|
|
command.Parameters["@k"].Value = component.Item1;
|
|
command.Parameters["@v"].Value = component.Item2;
|
|
command.ExecuteNonQuery();
|
|
}
|
|
}
|
|
|
|
private void InsertScte35SpliceSegmentationComponents(MySqlTransaction transaction, int currentNetworkId, int currentTransportStreamId, ushort programNumber, SpliceInsert spliceInsert)
|
|
{
|
|
if (spliceInsert.Descriptors == null)
|
|
return;
|
|
|
|
if (spliceInsert.Descriptors.segmentationDescriptor == null)
|
|
return;
|
|
|
|
SegmentationDescriptor.Component[] components = spliceInsert.Descriptors.segmentationDescriptor.Components;
|
|
if (components == null)
|
|
return;
|
|
|
|
if (components.Length == 0)
|
|
return;
|
|
|
|
MySqlCommand command = transaction.Connection.CreateCommand();
|
|
command.Transaction = transaction;
|
|
command.CommandText =
|
|
"INSERT INTO scte35_splice_segmentation_components (cnid, ctsid, progno, splice_event_id, component_tag, pts_offset) " +
|
|
"VALUES (@cnid, @ctsid, @progno, @splice_event_id, @component_tag, @pts_offset)";
|
|
command.Parameters.AddWithValue("@cnid", currentNetworkId);
|
|
command.Parameters.AddWithValue("@ctsid", currentTransportStreamId);
|
|
command.Parameters.AddWithValue("@progno", programNumber);
|
|
command.Parameters.AddWithValue("@splice_event_id", spliceInsert.SpliceEventId);
|
|
command.Parameters.Add("@component_tag", MySqlDbType.Int16);
|
|
command.Parameters.Add("@pts_offset", MySqlDbType.Int64);
|
|
foreach (SegmentationDescriptor.Component component in components)
|
|
{
|
|
command.Parameters["@component_tag"].Value = component.ComponentTag;
|
|
command.Parameters["@pts_offset"].Value = component.PtsOffset;
|
|
command.ExecuteNonQuery();
|
|
}
|
|
}
|
|
|
|
private DateTime? QueryScte35TimeSignal(MySqlConnection connection, int currentNetworkId, int currentTransportStreamId, ushort programNumber)
|
|
{
|
|
MySqlCommand command = connection.CreateCommand();
|
|
command.CommandText = "SELECT dateadded FROM scte35_time_signal WHERE cnid = @cnid AND ctsid = @ctsid AND progno = @progno";
|
|
command.Parameters.AddWithValue("@cnid", currentNetworkId);
|
|
command.Parameters.AddWithValue("@ctsid", currentTransportStreamId);
|
|
command.Parameters.AddWithValue("@progno", programNumber);
|
|
MySqlDataReader dataReader = command.ExecuteReader();
|
|
DateTime? result = null;
|
|
if (dataReader.Read())
|
|
result = dataReader.GetDateTime(0);
|
|
dataReader.Close();
|
|
return result;
|
|
}
|
|
|
|
public bool TestForScte35SpliceInsert(int currentNetworkId, int currentTransportStreamId, ushort programNumber,
|
|
SpliceInsert spliceInsert)
|
|
{
|
|
using (MySqlConnection connection = new MySqlConnection(_mcsb.ToString()))
|
|
{
|
|
connection.Open();
|
|
MySqlCommand command = connection.CreateCommand();
|
|
command.CommandText =
|
|
"SELECT dateadded FROM scte35_splice WHERE cnid = @cnid AND ctsid = @ctsid AND progno = @progno AND splice_event_id = @splice_event_id";
|
|
command.Parameters.AddWithValue("@cnid", currentNetworkId);
|
|
command.Parameters.AddWithValue("@ctsid", currentTransportStreamId);
|
|
command.Parameters.AddWithValue("@progno", programNumber);
|
|
command.Parameters.AddWithValue("@splice_event_id", spliceInsert.SpliceEventId);
|
|
MySqlDataReader dataReader = command.ExecuteReader();
|
|
bool result = dataReader.Read();
|
|
dataReader.Close();
|
|
connection.Close();
|
|
return result;
|
|
}
|
|
}
|
|
|
|
public void StoreScte35SpliceInsert(int currentNetworkId, int currentTransportStreamId, ushort programNumber,
|
|
SpliceInsert spliceInsert)
|
|
{
|
|
using (MySqlConnection connection = new MySqlConnection(_mcsb.ToString()))
|
|
{
|
|
connection.Open();
|
|
MySqlTransaction transaction = connection.BeginTransaction();
|
|
MySqlCommand command = connection.CreateCommand();
|
|
command.Transaction = transaction;
|
|
command.CommandText =
|
|
"INSERT INTO scte35_splice (cnid, ctsid, progno, splice_event_id, splice_time, splice_event_cancel_indicator, avails_expected, avail_num, unique_program_id, duration, duration_auto_return, splice_immediate_flag, duration_flag, program_splice_flag, out_of_network_indicator, provider_avail_id, identifier, sub_segments_expected, sub_segment_num, segments_expected, segment_num, segmentation_type_id, segmentation_upid, segmentation_upid_type, segmentation_duration, program_segmentation_flag, segmentation_event_cancel_indicator, device_restrictions, archive_allowed_flag, no_regional_blackout_flag, web_delivery_flag, segmentation_duration_flag, segmentation_event_id, segmentation_identifier, utc_offset, tai_ns, tai_seconds, tai_identififer) " +
|
|
"VALUES (@cnid, @ctsid, @progno, @splice_event_id, @splice_time, @splice_event_cancel_indicator, @avails_expected, @avail_num, @unique_program_id, @duration, @duration_auto_return, @splice_immediate_flag, " +
|
|
"@duration_flag, @program_splice_flag, @out_of_network_indicator, @provider_avail_id, @identifier, @sub_segments_expected, @sub_segment_num, @segments_expected, @segment_num," +
|
|
"@segmentation_type_id, @segmentation_upid, @segmentation_upid_type, @segmentation_duration, @program_segmentation_flag, @segmentation_event_cancel_indicator, @device_restrictions, " +
|
|
"@archive_allowed_flag, @no_regional_blackout_flag, @web_delivery_flag, @segmentation_duration_flag, @segmentation_event_id, @segmentation_identifier, @utc_offset, @tai_ns, @tai_seconds, @tai_identififer)";
|
|
command.Parameters.AddWithValue("@cnid", currentNetworkId);
|
|
command.Parameters.AddWithValue("@ctsid", currentTransportStreamId);
|
|
command.Parameters.AddWithValue("@progno", programNumber);
|
|
command.Parameters.AddWithValue("@splice_event_id", spliceInsert.SpliceEventId);
|
|
command.Parameters.AddWithValue("@splice_time", spliceInsert.SpliceTime);
|
|
command.Parameters.AddWithValue("@splice_event_cancel_indicator", spliceInsert.SpliceEventCancelIndicator);
|
|
command.Parameters.AddWithValue("@avails_expected", spliceInsert.AvailsExpected);
|
|
command.Parameters.AddWithValue("@avail_num", spliceInsert.AvailNum);
|
|
command.Parameters.AddWithValue("@unique_program_id", spliceInsert.UniqueProgramId);
|
|
command.Parameters.AddWithValue("@duration", spliceInsert.Duration);
|
|
command.Parameters.AddWithValue("@duration_auto_return", spliceInsert.DurationAutoReturn);
|
|
command.Parameters.AddWithValue("@splice_immediate_flag", spliceInsert.SpliceImmediateFlag);
|
|
command.Parameters.AddWithValue("@duration_flag", spliceInsert.DurationFlag);
|
|
command.Parameters.AddWithValue("@program_splice_flag", spliceInsert.ProgramSpliceFlag);
|
|
command.Parameters.AddWithValue("@out_of_network_indicator", spliceInsert.OutOfNetworkIndicator);
|
|
if (spliceInsert.Descriptors != null)
|
|
{
|
|
if (spliceInsert.Descriptors.availDescriptor != null)
|
|
{
|
|
command.Parameters.AddWithValue("@provider_avail_id", spliceInsert.Descriptors.availDescriptor.ProviderAvailId);
|
|
command.Parameters.AddWithValue("@identifier", spliceInsert.Descriptors.availDescriptor.Identifier);
|
|
}
|
|
else
|
|
{
|
|
command.Parameters.AddWithValue("@provider_avail_id", DBNull.Value);
|
|
command.Parameters.AddWithValue("@identifier", DBNull.Value);
|
|
}
|
|
|
|
if (spliceInsert.Descriptors.segmentationDescriptor != null)
|
|
{
|
|
command.Parameters.AddWithValue("@sub_segments_expected", spliceInsert.Descriptors.segmentationDescriptor.SubSegmentsExpected);
|
|
command.Parameters.AddWithValue("@sub_segment_num", spliceInsert.Descriptors.segmentationDescriptor.SubSegmentNum);
|
|
command.Parameters.AddWithValue("@segments_expected", spliceInsert.Descriptors.segmentationDescriptor.SegmentsExpected);
|
|
command.Parameters.AddWithValue("@segment_num", spliceInsert.Descriptors.segmentationDescriptor.SegmentNum);
|
|
command.Parameters.AddWithValue("@segmentation_type_id", spliceInsert.Descriptors.segmentationDescriptor.SegmentationTypeId);
|
|
command.Parameters.AddWithValue("@segmentation_upid", spliceInsert.Descriptors.segmentationDescriptor.SegmentationUpid);
|
|
command.Parameters.AddWithValue("@segmentation_upid_type", spliceInsert.Descriptors.segmentationDescriptor.SegmentationUpidType);
|
|
command.Parameters.AddWithValue("@segmentation_duration", spliceInsert.Descriptors.segmentationDescriptor.SegmentationDuration);
|
|
command.Parameters.AddWithValue("@program_segmentation_flag", spliceInsert.Descriptors.segmentationDescriptor.ProgramSegmentationFlag);
|
|
command.Parameters.AddWithValue("@segmentation_event_cancel_indicator", spliceInsert.Descriptors.segmentationDescriptor.SegmentationEventCancelIndicator);
|
|
command.Parameters.AddWithValue("@device_restrictions", spliceInsert.Descriptors.segmentationDescriptor.DeviceRestrictions);
|
|
command.Parameters.AddWithValue("@archive_allowed_flag", spliceInsert.Descriptors.segmentationDescriptor.ArchiveAllowedFlag);
|
|
command.Parameters.AddWithValue("@no_regional_blackout_flag", spliceInsert.Descriptors.segmentationDescriptor.NoRegionalBlackoutFlag);
|
|
command.Parameters.AddWithValue("@web_delivery_flag", spliceInsert.Descriptors.segmentationDescriptor.WebDeliveryFlag);
|
|
command.Parameters.AddWithValue("@segmentation_duration_flag", spliceInsert.Descriptors.segmentationDescriptor.SegmentationDurationFlag);
|
|
command.Parameters.AddWithValue("@segmentation_event_id", spliceInsert.Descriptors.segmentationDescriptor.SegmentationEventId);
|
|
command.Parameters.AddWithValue("@segmentation_identifier", spliceInsert.Descriptors.segmentationDescriptor.Identifier);
|
|
}
|
|
else
|
|
{
|
|
command.Parameters.AddWithValue("@sub_segments_expected", DBNull.Value);
|
|
command.Parameters.AddWithValue("@sub_segment_num", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segments_expected", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segment_num", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_type_id", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_upid", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_upid_type", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_duration", DBNull.Value);
|
|
command.Parameters.AddWithValue("@program_segmentation_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_event_cancel_indicator", DBNull.Value);
|
|
command.Parameters.AddWithValue("@device_restrictions", DBNull.Value);
|
|
command.Parameters.AddWithValue("@archive_allowed_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@no_regional_blackout_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@web_delivery_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_duration_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_event_id", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_identifier", DBNull.Value);
|
|
}
|
|
|
|
if (spliceInsert.Descriptors.timeDescriptor != null)
|
|
{
|
|
command.Parameters.AddWithValue("@segmentation_identifier", spliceInsert.Descriptors.timeDescriptor.UtcOffset);
|
|
command.Parameters.AddWithValue("@tai_ns", spliceInsert.Descriptors.timeDescriptor.TaiNs);
|
|
command.Parameters.AddWithValue("@tai_seconds", spliceInsert.Descriptors.timeDescriptor.TaiSeconds);
|
|
command.Parameters.AddWithValue("@tai_identififer", spliceInsert.Descriptors.timeDescriptor.Identifier);
|
|
}
|
|
else
|
|
{
|
|
command.Parameters.AddWithValue("@utc_offset", DBNull.Value);
|
|
command.Parameters.AddWithValue("@tai_ns", DBNull.Value);
|
|
command.Parameters.AddWithValue("@tai_seconds", DBNull.Value);
|
|
command.Parameters.AddWithValue("@tai_identififer", DBNull.Value);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
command.Parameters.AddWithValue("@provider_avail_id", DBNull.Value);
|
|
command.Parameters.AddWithValue("@identifier", DBNull.Value);
|
|
command.Parameters.AddWithValue("@sub_segments_expected", DBNull.Value);
|
|
command.Parameters.AddWithValue("@sub_segment_num", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segments_expected", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segment_num", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_type_id", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_upid", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_upid_type", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_duration", DBNull.Value);
|
|
command.Parameters.AddWithValue("@program_segmentation_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_event_cancel_indicator", DBNull.Value);
|
|
command.Parameters.AddWithValue("@device_restrictions", DBNull.Value);
|
|
command.Parameters.AddWithValue("@archive_allowed_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@no_regional_blackout_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@web_delivery_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_duration_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_event_id", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_identifier", DBNull.Value);
|
|
command.Parameters.AddWithValue("@utc_offset", DBNull.Value);
|
|
command.Parameters.AddWithValue("@tai_ns", DBNull.Value);
|
|
command.Parameters.AddWithValue("@tai_seconds", DBNull.Value);
|
|
command.Parameters.AddWithValue("@tai_identififer", DBNull.Value);
|
|
}
|
|
|
|
command.ExecuteNonQuery();
|
|
|
|
InsertScte35SpliceComponents(transaction, currentNetworkId, currentTransportStreamId, programNumber, spliceInsert);
|
|
InsertScte35SpliceSegmentationComponents(transaction, currentNetworkId, currentTransportStreamId, programNumber, spliceInsert);
|
|
transaction.Commit();
|
|
connection.Close();
|
|
}
|
|
}
|
|
|
|
public void SetScte35TimeSignal(int currentNetworkId, int currentTransportStreamId, DateTime currentTime, ushort programNumber, TimeSignal spliceInsert)
|
|
{
|
|
using (MySqlConnection connection = new MySqlConnection(_mcsb.ToString()))
|
|
{
|
|
connection.Open();
|
|
MySqlCommand command = connection.CreateCommand();
|
|
command.CommandText =
|
|
"INSERT INTO scte35_time_signal (cnid, ctsid, progno, current, value, provider_avail_id, identifier, sub_segments_expected, sub_segment_num, segments_expected, segment_num, segmentation_type_id, segmentation_upid, segmentation_upid_type, segmentation_duration, program_segmentation_flag, segmentation_event_cancel_indicator, device_restrictions, archive_allowed_flag, no_regional_blackout_flag, web_delivery_flag, segmentation_duration_flag, segmentation_event_id, segmentation_identifier, utc_offset, tai_ns, tai_seconds, tai_identififer) " +
|
|
"VALUES (@cnid, @ctsid, @progno, @current, @value, @provider_avail_id, @identifier, @sub_segments_expected, @sub_segment_num, @segments_expected, @segment_num, @segmentation_type_id, @segmentation_upid, @segmentation_upid_type, @segmentation_duration, @program_segmentation_flag, @segmentation_event_cancel_indicator, @device_restrictions, @archive_allowed_flag, @no_regional_blackout_flag, @web_delivery_flag, @segmentation_duration_flag, @segmentation_event_id, @segmentation_identifier, @utc_offset, @tai_ns, @tai_seconds, @tai_identififer)";
|
|
command.Parameters.AddWithValue("@cnid", currentNetworkId);
|
|
command.Parameters.AddWithValue("@ctsid", currentTransportStreamId);
|
|
command.Parameters.AddWithValue("@progno", programNumber);
|
|
command.Parameters.AddWithValue("@current", currentTime);
|
|
if (spliceInsert.Descriptors != null)
|
|
{
|
|
if (spliceInsert.Descriptors.availDescriptor != null)
|
|
{
|
|
command.Parameters.AddWithValue("@provider_avail_id", spliceInsert.Descriptors.availDescriptor.ProviderAvailId);
|
|
command.Parameters.AddWithValue("@identifier", spliceInsert.Descriptors.availDescriptor.Identifier);
|
|
}
|
|
else
|
|
{
|
|
command.Parameters.AddWithValue("@provider_avail_id", DBNull.Value);
|
|
command.Parameters.AddWithValue("@identifier", DBNull.Value);
|
|
}
|
|
|
|
if (spliceInsert.Descriptors.segmentationDescriptor != null)
|
|
{
|
|
command.Parameters.AddWithValue("@sub_segments_expected", spliceInsert.Descriptors.segmentationDescriptor.SubSegmentsExpected);
|
|
command.Parameters.AddWithValue("@sub_segment_num", spliceInsert.Descriptors.segmentationDescriptor.SubSegmentNum);
|
|
command.Parameters.AddWithValue("@segments_expected", spliceInsert.Descriptors.segmentationDescriptor.SegmentsExpected);
|
|
command.Parameters.AddWithValue("@segment_num", spliceInsert.Descriptors.segmentationDescriptor.SegmentNum);
|
|
command.Parameters.AddWithValue("@segmentation_type_id", spliceInsert.Descriptors.segmentationDescriptor.SegmentationTypeId);
|
|
command.Parameters.AddWithValue("@segmentation_upid", spliceInsert.Descriptors.segmentationDescriptor.SegmentationUpid);
|
|
command.Parameters.AddWithValue("@segmentation_upid_type", spliceInsert.Descriptors.segmentationDescriptor.SegmentationUpidType);
|
|
command.Parameters.AddWithValue("@segmentation_duration", spliceInsert.Descriptors.segmentationDescriptor.SegmentationDuration);
|
|
command.Parameters.AddWithValue("@program_segmentation_flag", spliceInsert.Descriptors.segmentationDescriptor.ProgramSegmentationFlag);
|
|
command.Parameters.AddWithValue("@segmentation_event_cancel_indicator", spliceInsert.Descriptors.segmentationDescriptor.SegmentationEventCancelIndicator);
|
|
command.Parameters.AddWithValue("@device_restrictions", spliceInsert.Descriptors.segmentationDescriptor.DeviceRestrictions);
|
|
command.Parameters.AddWithValue("@archive_allowed_flag", spliceInsert.Descriptors.segmentationDescriptor.ArchiveAllowedFlag);
|
|
command.Parameters.AddWithValue("@no_regional_blackout_flag", spliceInsert.Descriptors.segmentationDescriptor.NoRegionalBlackoutFlag);
|
|
command.Parameters.AddWithValue("@web_delivery_flag", spliceInsert.Descriptors.segmentationDescriptor.WebDeliveryFlag);
|
|
command.Parameters.AddWithValue("@segmentation_duration_flag", spliceInsert.Descriptors.segmentationDescriptor.SegmentationDurationFlag);
|
|
command.Parameters.AddWithValue("@segmentation_event_id", spliceInsert.Descriptors.segmentationDescriptor.SegmentationEventId);
|
|
command.Parameters.AddWithValue("@segmentation_identifier", spliceInsert.Descriptors.segmentationDescriptor.Identifier);
|
|
}
|
|
else
|
|
{
|
|
command.Parameters.AddWithValue("@sub_segments_expected", DBNull.Value);
|
|
command.Parameters.AddWithValue("@sub_segment_num", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segments_expected", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segment_num", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_type_id", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_upid", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_upid_type", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_duration", DBNull.Value);
|
|
command.Parameters.AddWithValue("@program_segmentation_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_event_cancel_indicator", DBNull.Value);
|
|
command.Parameters.AddWithValue("@device_restrictions", DBNull.Value);
|
|
command.Parameters.AddWithValue("@archive_allowed_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@no_regional_blackout_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@web_delivery_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_duration_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_event_id", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_identifier", DBNull.Value);
|
|
}
|
|
|
|
if (spliceInsert.Descriptors.timeDescriptor != null)
|
|
{
|
|
command.Parameters.AddWithValue("@utc_offset", spliceInsert.Descriptors.timeDescriptor.UtcOffset);
|
|
command.Parameters.AddWithValue("@tai_ns", spliceInsert.Descriptors.timeDescriptor.TaiNs);
|
|
command.Parameters.AddWithValue("@tai_seconds", spliceInsert.Descriptors.timeDescriptor.TaiSeconds);
|
|
command.Parameters.AddWithValue("@tai_identififer", spliceInsert.Descriptors.timeDescriptor.Identifier);
|
|
}
|
|
else
|
|
{
|
|
command.Parameters.AddWithValue("@utc_offset", DBNull.Value);
|
|
command.Parameters.AddWithValue("@tai_ns", DBNull.Value);
|
|
command.Parameters.AddWithValue("@tai_seconds", DBNull.Value);
|
|
command.Parameters.AddWithValue("@tai_identififer", DBNull.Value);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
command.Parameters.AddWithValue("@provider_avail_id", DBNull.Value);
|
|
command.Parameters.AddWithValue("@identifier", DBNull.Value);
|
|
command.Parameters.AddWithValue("@sub_segments_expected", DBNull.Value);
|
|
command.Parameters.AddWithValue("@sub_segment_num", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segments_expected", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segment_num", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_type_id", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_upid", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_upid_type", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_duration", DBNull.Value);
|
|
command.Parameters.AddWithValue("@program_segmentation_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_event_cancel_indicator", DBNull.Value);
|
|
command.Parameters.AddWithValue("@device_restrictions", DBNull.Value);
|
|
command.Parameters.AddWithValue("@archive_allowed_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@no_regional_blackout_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@web_delivery_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_duration_flag", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_event_id", DBNull.Value);
|
|
command.Parameters.AddWithValue("@segmentation_identifier", DBNull.Value);
|
|
command.Parameters.AddWithValue("@utc_offset", DBNull.Value);
|
|
command.Parameters.AddWithValue("@tai_ns", DBNull.Value);
|
|
command.Parameters.AddWithValue("@tai_seconds", DBNull.Value);
|
|
command.Parameters.AddWithValue("@tai_identififer", DBNull.Value);
|
|
}
|
|
|
|
command.ExecuteNonQueryAsync().ContinueWith(
|
|
x =>
|
|
{
|
|
connection.Close();
|
|
}
|
|
);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|