protected override void ExecuteChannelCore()
        {
            PreProcess();

            channel.SelectFolder(folder);

            SetSelectionRange();

            var headers = channel.GetHeaders().ToList();

            // Channel returned oldest first, turn around and use newest first
            if (Channel is IReversePagableChannel)
            {
                headers.Reverse();
            }

            var headersToDownload = GetHeadersToDownload(headers);

            if (headersToDownload != null)
            {
                Logger.Debug("Got {0} headers from {1}", LogSource.Receive, headersToDownload.Count, config.DisplayName);

                if (headersToDownload.Count > 0)
                {
                    // Download details for each header
                    headersToDownload.ForEach(DownloadHeader);
                }
            }

            EventBroker.Publish(AppEvents.ReceiveMessagesFinished);
        }
        protected override void ExecuteChannelCore()
        {
            if (ProgressGroup == null)
            {
                ProgressGroup = new ProgressGroup {
                    SourceChannelId = config.ChannelId
                }
            }
            ;

            ExecuteOnUIThread(() => ProgressManager.Current.Register(ProgressGroup));

            try
            {
                PreProcess();

                channel.SelectFolder(folder);

                SetSelectionRange();

                var headers = channel.GetHeaders().ToList();

                // Channel returned oldest first, turn around and use newest first
                if (Channel is IReversePagableChannel)
                {
                    headers.Reverse();
                }

                var headersToDownload = GetHeadersToDownload(headers);

                if (headersToDownload != null)
                {
                    Logger.Debug("Got {0} headers from {1}", LogSource.Receive, headersToDownload.Count, config.DisplayName);

                    if (headersToDownload.Count > 0)
                    {
                        ProgressGroup.Status = String.Format("Downloading {0}...", LocalizedFolderNames.GetName(folder.ToStorageFolder()));
                        ProgressGroup.SetMaximum(headersToDownload.Count);

                        // Download details for each header
                        headersToDownload.ForEach(DownloadHeader);
                    }
                }

                EventBroker.Publish(AppEvents.ReceiveMessagesFinished);
            }
            finally
            {
                PostProcess();
            }
        }