public override async Task Execute(object parameter) { var model = parameter as MangaSearchViewModel; if (model == null) { return; } var manga = await Mangas.Create(model.Uri).ConfigureAwait(true); if (manga == null) { return; } manga.Cover = model.Cover; await manga.Refresh().ConfigureAwait(true); if (await manga.IsValid().ConfigureAwait(true)) { var explorer = ExplorerViewModel.Instance; var searchTab = new MangaModel(manga); explorer.Tabs.Add(searchTab); explorer.SelectedTab = searchTab; } }
private void DoDownloadAll(object sender, EventArgs e) { if (App.AppData.Manga == null) { return; } SetLoadingStatus(true); MangaModel manga = App.AppData.Manga; List <List <string> > cachePaths = new List <List <string> >(manga.Pages.Count); foreach (PageModel page in manga.Pages) { List <string> tempList = new List <string>(); cachePaths.Add(tempList); int count = 0; foreach (ImageModel image in page.Images) { tempList.Add(GetCachePath(manga, page, count)); count++; } } App.AppData.LoadAllPagesAsync(manga.Pages, cachePaths); PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled; }
public override Task Execute(IEnumerable <IManga> mangas) { var manga = mangas.Single(); var explorer = ExplorerViewModel.Instance; var searchTab = explorer.Tabs.OfType <MangaModel>().SingleOrDefault(t => t.Id == manga.Id); if (searchTab == null) { searchTab = this.LibraryModel.SelectedMangaModels.SingleOrDefault(m => m.Id == manga.Id); if (searchTab != null) { searchTab.UpdateProperties(manga); } else { searchTab = new MangaModel(manga); } explorer.Tabs.Add(searchTab); } else { searchTab.UpdateProperties(manga); } explorer.SelectedTab = searchTab; return(Task.CompletedTask); }
//function to update manga from database public void Update(MangaModel mangamodel) { var editManga = MangaMapper.toAggregate(mangamodel); var oldEntry = db.Mangas.FirstOrDefault(x => x.Id.Equals(mangamodel.Id)); db.Entry(oldEntry).CurrentValues.SetValues(editManga); db.SaveChanges(); }
//adds new manga to the database public async Task <int> Add(MangaModel mangamodel) { var newManga = MangaMapper.toAggregate(mangamodel); await db.Mangas.AddAsync(newManga); await db.SaveChangesAsync(); return(newManga.Id); }
public void AuthorInput() { //Arrange var manga1 = new MangaModel(); var authorinput = manga1.Author = "Kubo Tite"; //Act var result = "Kubo Tite"; //Assert Assert.Equal(authorinput, result); }
private void DoPrevious(object sender, EventArgs e) { if (App.AppData.Manga == null) { return; } SetLoadingStatus(true); MangaModel manga = App.AppData.Manga; if ((_currentViewingPage - 1) >= 0) { LoadPage(_currentViewingPage - 1, false); } }
void LoadPage(int page, bool forceRefresh) { if (App.AppData.Manga != null) { MangaModel manga = App.AppData.Manga; List <string> cachePaths = new List <string>(); for (int i = 0; i < manga.Pages[page].Images.Count; i++) { string cachePath = GetCachePath(manga, manga.Pages[page], i); cachePaths.Add(cachePath); } App.AppData.LoadPageAsync(manga.Pages[page], cachePaths, forceRefresh); PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled; } }
private void DoNext(object sender, EventArgs e) { if (App.AppData.Manga == null) { return; } SetLoadingStatus(true); MangaModel manga = App.AppData.Manga; if (_currentViewingPage + 1 < manga.Pages.Count) { LoadPage(_currentViewingPage + 1, false); } }
public void JumpToPage(int i) { if (App.AppData.Manga == null || Loading) { return; } SetLoadingStatus(true); MangaModel manga = App.AppData.Manga; if (i >= 0 && i < manga.Pages.Count) { LoadPage(i, false); } }
private static void Init() { var proxy = new MangaProxy(); proxy.Id = -1; proxy.Uri = new Uri("https://mintmanga.com/berserk"); proxy.ServerName = "Berserk"; proxy.IsNameChanged = true; proxy.LocalName = "Берсерк"; proxy.Name = proxy.LocalName; proxy.Folder = "C:\\Manga\\Берсерк"; proxy.CompressionMode = Compression.CompressionMode.Volume; proxy.NeedCompress = null; proxy.Status = "Томов: 40 , выпуск продолжается\r\nПеревод: продолжается\r\nПросмотров: 34891310\r\nЖанры: трагедия, приключения, фэнтези, героическое фэнтези, сэйнэн, боевик …\r\nАвтор: Миура Кэнтаро\r\nГод выпуска: 1989\r\nИздательства: Hakusensha, Comix-ART\r\nЖурналы: Animal House, Young Animal\r\nПереводчики: The Berserk World, Majin Scanlation, Okami"; proxy.Description = "Гатс, известный как Чёрный Мечник, ищет убежища от демонов, охотящихся за ним, и отмщения человеку, сделавшему из него жертву на своём алтаре. С помощью только своей титанической силы, умения и меча, Гатс должен биться против жестокого рока, пока битва с ненавистью мало-помалу лишает его человечности.\r\nБерсерк — это тёмная и погружающая в раздумья история о неистовых сражениях и безжалостном роке.\r\nby South Wind"; MangaModel = new MangaModel(proxy); }
public override async Task Execute(object parameter) { if (isLoading) { return; } var model = parameter as MangaSearchViewModel; if (model == null) { return; } try { this.isLoading = true; this.OnCanExecuteChanged(); this.Name = "Loading..."; var manga = await Mangas.Create(model.Uri).ConfigureAwait(true); if (manga == null) { return; } await manga.Refresh().ConfigureAwait(true); if (await manga.IsValid().ConfigureAwait(true)) { var explorer = ExplorerViewModel.Instance; var searchTab = new MangaModel(manga); explorer.Tabs.Add(searchTab); explorer.SelectedTab = searchTab; var covers = await manga.Parser.GetPreviews(manga).ConfigureAwait(true); searchTab.Cover = covers.FirstOrDefault(); } } finally { this.isLoading = false; this.OnCanExecuteChanged(); this.Name = "Preview"; } }
//function to return new Manga object public static Mangas toAggregate(MangaModel mangamodel) { var result = new Mangas() { Id = mangamodel.Id, Title = mangamodel.Title, Author = mangamodel.Author, Chapters = mangamodel.Chapters, Genre = mangamodel.Genre, Releasedate = mangamodel.Releasedate, Status = mangamodel.Status, Description = mangamodel.Description, Rating = mangamodel.Rating, MangaImagePath = mangamodel.fileName, }; return(result); }
//function to return new MangaModel object public static MangaModel toViewModel(Mangas mangamodel) { var result = new MangaModel() { Id = mangamodel.Id, Title = mangamodel.Title, Author = mangamodel.Author, Chapters = mangamodel.Chapters, Genre = mangamodel.Genre, Releasedate = mangamodel.Releasedate, Status = mangamodel.Status, Description = mangamodel.Description, Rating = mangamodel.Rating, fileName = mangamodel.MangaImagePath }; return(result); }
public async Task <IActionResult> Create(MangaModel model) { if (model.MangaImage != null) { string folder = "images/Uploaded_covers/"; string imagePath = Path.Combine(webHostEnvironment.WebRootPath, folder); var fileName = Guid.NewGuid().ToString() + model.MangaImage.FileName; model.fileName = fileName; await model.MangaImage.CopyToAsync(new FileStream(imagePath + fileName, FileMode.Create)); await db.Add(model); return(RedirectToAction("Index", "Home")); } ; return(RedirectToAction(nameof(Create))); }
public async Task <IActionResult> Index() { var mangaModel = new MangaModel(); try { var response = await client.GetAsync($"{urlApi}/Mangas"); var responseData = JsonConvert.DeserializeObject <IEnumerable <DTOMangas> >(await response.Content.ReadAsStringAsync()); if (responseData.Count() == 0) { return(View(mangaModel)); } var listDtoManga = new List <DTOMangas>(); foreach (var item in responseData) { var base64 = Convert.ToBase64String(item.CAPA); var img = String.Format("data:image/gif;base64,{0}", base64); var dtoManga = new DTOMangas() { ID_MANGA = item.ID_MANGA, ID_SITUACAO = item.ID_SITUACAO, TITULO = item.TITULO, SINOPSE = item.SINOPSE, CAPABASE64 = img }; listDtoManga.Add(dtoManga); } mangaModel.DtoManga = listDtoManga; return(View(mangaModel)); } catch (Exception) { return(View(mangaModel)); } }
public override async Task Execute(object parameter) { model = (MangaModel)parameter; await base.Execute(parameter).ConfigureAwait(true); }
public MangaSaveCommand(MangaModel model, LibraryViewModel library) : base(library) { this.model = model; this.Name = model.Saved ? "Save" : "Subscribe"; }
private string GetCachePath(MangaModel mangaModel, PageModel pageModel, int count) { return(mangaModel.SeriesId + "_" + mangaModel.MangaId + "_" + pageModel.Page + "_" + count + ".img"); }
void OnGetPageAsyncCompleted(object sender, PageModel pageModel) { if (pageModel != null && pageModel.Images.Count >= 1) { if (App.AppData.Manga != null) { MangaModel manga = App.AppData.Manga; string content = string.Empty; if (pageModel.Images.Count == 1) { string cachePath = GetCachePath(manga, pageModel, 0); content = "<html><head><meta name=\"Viewport\" content=\"width=800; height=800; user-scaleable=yes;\"/></head><body><img src=\"" + cachePath + "\"/></body></html>"; } else { StringBuilder bodyBuilder = new StringBuilder(); StringBuilder styleBuilder = new StringBuilder(); for (int i = 0; i < pageModel.Images.Count; i++) { ImageModel imageModel = pageModel.Images[i]; styleBuilder.Append("#p" + i + "{position:absolute;z-index:" + imageModel.ZIndex + ";width:" + imageModel.Width + "px;height:" + imageModel.Height + "px;top:" + imageModel.Top + "px;left:" + imageModel.Left + "px}\n"); bodyBuilder.Append("<div id=\"p" + i + "\"><img src=\"" + GetCachePath(manga, pageModel, i) + "\"/></div>"); } content = "<html><head><meta name=\"Viewport\" content=\"width=800; height=800; user-scaleable=yes;\"/><style type=\"text/css\">" + styleBuilder.ToString() + "</style></head><body><div>" + bodyBuilder.ToString() + "</div></body></html>"; } IsolatedStorageFileStream stream = null; try { byte[] buffer = Encoding.UTF8.GetBytes(content); IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication(); stream = store.CreateFile("index.html"); stream.Write(buffer, 0, buffer.Length); } catch (Exception) { MessageBox.Show("Couldn't show content"); } finally { if (stream != null) { stream.Close(); } } _currentViewingPage = pageModel.Page - 1; bool oldNextAllowed = NextAllowed; NextAllowed = (_currentViewingPage < manga.Pages.Count - 1); if (oldNextAllowed != NextAllowed) { NotifyPropertyChanged("NextAllowed"); } bool oldPreviousAllowed = PreviousAllowed; PreviousAllowed = (_currentViewingPage > 0); if (oldPreviousAllowed != PreviousAllowed) { NotifyPropertyChanged("PreviousAllowed"); } } else { // Couldn't display content } DisplayContent = "index.html"; NotifyPropertyChanged("DisplayContent"); } else { MessageBox.Show("Failed to retrieve images. Please try refresh again."); } PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Enabled; SetLoadingStatus(false); }
public override void Execute(object parameter) { model = (MangaModel)parameter; base.Execute(parameter); }
public MangaSaveCommand(MangaModel model, LibraryViewModel library) : base(library) { this.model = model; this.Name = "Принять"; }