public static ChapterSlots <TResource> CreateChapterSlots <TResource>(this IComicVisiting <TResource> visiting) { if (visiting is null) { throw new System.ArgumentNullException(nameof(visiting)); } return(new ChapterSlots <TResource>(visiting)); }
public static bool IsLoad <TResource>(this IComicVisiting <TResource> visiting) { if (visiting is null) { throw new ArgumentNullException(nameof(visiting)); } return(!string.IsNullOrEmpty(visiting.Address)); }
public VisitingViewModel( IComicVisiting <TImage> visiting, HttpClient httpClient, RecyclableMemoryStreamManager recyclableMemoryStreamManager, IStreamImageConverter <TImage> streamImageConverter, IObservableCollectionFactory observableCollectionFactory) { this.streamImageConverter = streamImageConverter ?? throw new ArgumentNullException(nameof(streamImageConverter)); this.recyclableMemoryStreamManager = recyclableMemoryStreamManager ?? throw new ArgumentNullException(nameof(recyclableMemoryStreamManager)); this.httpClient = httpClient ?? throw new ArgumentNullException(nameof(httpClient)); this.visiting = visiting ?? throw new ArgumentNullException(nameof(visiting)); this.observableCollectionFactory = observableCollectionFactory ?? throw new ArgumentNullException(nameof(observableCollectionFactory)); provider = visiting.Host; InitVisiting(); }
public MAUIVisitingViewModel(IComicVisiting <ImageSource> visiting, HttpClient httpClient, RecyclableMemoryStreamManager recyclableMemoryStreamManager, IStreamImageConverter <ImageSource> streamImageConverter, IObservableCollectionFactory observableCollectionFactory) : base(visiting, httpClient, recyclableMemoryStreamManager, streamImageConverter, observableCollectionFactory) { MAUIInit(); }
public StoreBoxVisitingViewModel(IComicVisiting <TImage> visiting, HttpClient httpClient, RecyclableMemoryStreamManager recyclableMemoryStreamManager, IStreamImageConverter <TImage> streamImageConverter, IObservableCollectionFactory observableCollectionFactory) : base(visiting, httpClient, recyclableMemoryStreamManager, streamImageConverter, observableCollectionFactory) { }
public DesktopVisitingViewModel(IComicVisiting <Bitmap> visiting, HttpClient httpClient, RecyclableMemoryStreamManager recyclableMemoryStreamManager, IStreamImageConverter <Bitmap> streamImageConverter, IObservableCollectionFactory observableCollectionFactory) : base(visiting, httpClient, recyclableMemoryStreamManager, streamImageConverter, observableCollectionFactory) { AvalonInit(); }
public static async Task <IComicVisitPage <TResource>[]> DownloadChapterAsync <TResource>(this IComicVisiting <TResource> visiting, int index, int concurrent = 1) { if (visiting is null) { throw new ArgumentNullException(nameof(visiting)); } if (index < 0) { throw new ArgumentOutOfRangeException(nameof(index)); } var streamMgr = visiting.Host.GetRequiredService <RecyclableMemoryStreamManager>(); var mgr = await visiting.GetChapterManagerAsync(index); if (mgr == null || mgr.ChapterWithPage?.Pages == null) { return(null); } var workingTask = Enumerable.Range(0, mgr.ChapterWithPage.Pages.Length) .Select(x => new Func <Task <IComicVisitPage <TResource> > >(() => mgr.GetVisitPageAsync(x))) .ToArray(); var orderMap = Enumerable.Range(0, mgr.ChapterWithPage.Pages.Length) .ToDictionary(x => mgr.ChapterWithPage.Pages[x]); var results = await TaskQuene.RunAsync(workingTask, concurrent); return(results.OrderBy(x => orderMap[x.Page]).ToArray()); }
public static async Task <IComicVisitPage <TResource> > GoToPageAsync <TResource>(this IComicVisiting <TResource> visiting, ComicPos pos) { if (visiting is null) { throw new ArgumentNullException(nameof(visiting)); } var mgr = await visiting.GetChapterManagerAsync(pos.ChapterIndex); var page = await mgr.GetVisitPageAsync(pos.PageIndex); return(page); }
public ChapterSlots(IComicVisiting <TResource> visiting) : base(visiting?.Entity?.Chapters?.Length ?? 0) { Visiting = visiting ?? throw new System.ArgumentNullException(nameof(visiting)); }