示例#1
0
        public void RefreshDownloadItems()
        {
            if (!m_Releases.Any())
            {
                RefreshAfterSynchronize(null);
            }

            DownloadItemsMode type = DownloadItemsMode.All;

            switch (m_SelectedSection.Type)
            {
            case DownloadSectionType.All:
                type = DownloadItemsMode.All;
                break;

            case DownloadSectionType.Downloading:
                type = DownloadItemsMode.Downloading;
                break;

            case DownloadSectionType.Downloaded:
                type = DownloadItemsMode.Downloaded;
                break;

            case DownloadSectionType.NotDownloaded:
                type = DownloadItemsMode.NotDownloaded;
                break;

            default: throw new NotSupportedException($"Type {type} not supported");
            }
            Downloads = m_DownloadService.GetDownloads(type)
                        .Select(MapToModel)
                        .ToList();
            NoFilteredDownloads = !Downloads.Any();
        }
示例#2
0
        /// <summary>
        /// Get downloads.
        /// </summary>
        /// <param name="downloadItemsMode">Download items mode.</param>
        /// <returns></returns>
        public IEnumerable <DownloadReleaseEntity> GetDownloads(DownloadItemsMode downloadItemsMode)
        {
            switch (downloadItemsMode)
            {
            case DownloadItemsMode.All:
                return(m_Entity.DownloadingReleases
                       .OrderBy(a => a.Order)
                       .ToList());

            case DownloadItemsMode.Downloaded:
                return(m_Entity.DownloadingReleases
                       .Where(a => a.Videos.All(b => b.IsDownloaded))
                       .OrderBy(a => a.Order)
                       .ToList());

            case DownloadItemsMode.Downloading:
                return(m_Entity.DownloadingReleases
                       .Where(a => a.Videos.Any(b => b.IsDownloaded) && !a.Videos.All(b => b.IsDownloaded))
                       .OrderBy(a => a.Order)
                       .ToList());

            case DownloadItemsMode.NotDownloaded:
                return(m_Entity.DownloadingReleases
                       .Where(a => !a.Videos.All(b => b.IsDownloaded))
                       .OrderBy(a => a.Order)
                       .ToList());

            default: throw new NotSupportedException($"Download item mode {downloadItemsMode} not supported.");
            }
        }
        public void RefreshDownloadItems()
        {
            if (!m_Releases.Any())
            {
                RefreshAfterSynchronize(null);
            }

            var selectedReleaseId = SelectedDownload?.ReleaseId;

            DownloadItemsMode type = DownloadItemsMode.All;

            switch (m_SelectedSection.Type)
            {
            case DownloadSectionType.All:
                type = DownloadItemsMode.All;
                break;

            case DownloadSectionType.Downloading:
                type = DownloadItemsMode.Downloading;
                break;

            case DownloadSectionType.Downloaded:
                type = DownloadItemsMode.Downloaded;
                break;

            case DownloadSectionType.NotDownloaded:
                type = DownloadItemsMode.NotDownloaded;
                break;

            default: throw new NotSupportedException($"Type {type} not supported");
            }
            var downloads = m_DownloadService.GetDownloads(type)
                            .Select(MapToModel)
                            .ToList();

            Downloads           = FilterDownloads(downloads);
            NoFilteredDownloads = !Downloads.Any();

            if (selectedReleaseId.HasValue)
            {
                SelectedDownload = Downloads.FirstOrDefault(a => a.ReleaseId == selectedReleaseId.Value);
            }
        }