ArgusTV.Recorder.MediaPortalTvServer.Wizards.ImportChannels.FinishPage.OnFinish C# (CSharp) Метод

OnFinish() публичный Метод

public OnFinish ( ) : bool
Результат bool
        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;
        }