public override bool OnFinish()
{
try
{
Cursor.Current = Cursors.WaitCursor;
_destinationPanel.Enabled = false;
_exportProgressBar.Minimum = 0;
_exportProgressBar.Value = 0;
_exportProgressBar.Maximum = this.Context.ImportChannels.Count;
_exportProgressBar.Visible = true;
Application.DoEvents();
using (SchedulerServiceAgent tvSchedulerAgent = new SchedulerServiceAgent())
using (GuideServiceAgent tvGuideAgent = new GuideServiceAgent())
{
_channelMembersByName.Clear();
_channelGroupsByName.Clear();
ChannelGroup[] allGroups = tvSchedulerAgent.GetAllChannelGroups(this.Context.ChannelType, false);
foreach (ChannelGroup channelGroup in allGroups)
{
_channelGroupsByName[channelGroup.GroupName] = channelGroup;
}
int count = 0;
foreach (ImportChannelsContext.ImportChannel importChannel in this.Context.ImportChannels)
{
_exportingFileLabel.Text = importChannel.Channel.DisplayName;
Application.DoEvents();
ImportChannel(tvGuideAgent, tvSchedulerAgent, importChannel);
_exportProgressBar.Value = ++count;
}
foreach (string groupName in _channelGroupsByName.Keys)
{
if (_channelMembersByName.ContainsKey(groupName))
{
tvSchedulerAgent.SetChannelGroupMembers(
_channelGroupsByName[groupName].ChannelGroupId, _channelMembersByName[groupName].ToArray());
}
}
Channels.ChannelLinks.Save();
}
return true;
}
catch (Exception ex)
{
Cursor.Current = Cursors.Default;
MessageBox.Show(this, ex.Message, null, MessageBoxButtons.OK, MessageBoxIcon.Error);
_destinationPanel.Enabled = true;
_exportProgressBar.Visible = false;
}
finally
{
_exportingFileLabel.Text = String.Empty;
Cursor.Current = Cursors.Default;
}
return false;
}