public async Task <IActionResult> GetArchive(string WebcomicName) { _clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return(true); }; using (var _http = new HttpClient(_clientHandler)) { var response = await _http.GetAsync(_webcomicsUri); if (response.IsSuccessStatusCode) { var ComicBooks = JsonConvert.DeserializeObject <List <ComicBookModel> >(await response.Content.ReadAsStringAsync()); if (ComicBooks.FirstOrDefault(c => c.Title == WebcomicName) != null) { ComicBookModel webcomic = ComicBooks.FirstOrDefault(c => c.Title == WebcomicName); if (webcomic.ComicPages != null) { webcomic.ComicPages = webcomic.ComicPages.OrderBy(p => p.PageNumber).ToList(); } return(View("ComicArchiveView", new ComicArchiveViewModel(webcomic))); } return(await(new MainController()).Archive()); //If the webcomic doesn't exist, kick them back to the archive of webcomics. //Should be impossible via any in-application links. } } return(View("Error", new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier })); }
public ActionResult Detail(int id) { var comicBooks = ComicBookModel.GetComicBooks(); var comic = comicBooks.FirstOrDefault(p => p.ComicBookId == id); return(View(comic)); }
public async Task <IActionResult> AddComic(AuthorHomeViewModel viewModel) { if (ModelState.IsValid) { var authorName = HttpContext.User.Identity.Name; ViewBag.name = authorName; var firstName = authorName.Split(" ")[0]; ComicBookModel model = new ComicBookModel(); model.Title = viewModel.Title; model.Author = firstName; model.Genre = viewModel.Genre; model.EditionNumber = viewModel.EditionNumber; model.ComicPages = new List <ComicPageModel>(); model.Description = viewModel.Description; _clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return(true); }; using (var _http = new HttpClient(_clientHandler)) { await _http.PostAsJsonAsync(_webcomicsUri, model); var response = await _http.GetAsync(_webcomicsUri + firstName); viewModel.ComicBooks = JsonConvert.DeserializeObject <List <ComicBookModel> >(await response.Content.ReadAsStringAsync()); return(View("AuthorHomeView", viewModel)); } } else { return(View("Error", new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier })); } }
public IActionResult GetPostWebcomic() { ComicBookModel webcomic = new ComicBookModel() { Author = User.Identity.Name }; return(View("PostWebcomicView", new ComicBookViewModel(webcomic))); }
public async Task <IActionResult> GetUpdatePage(string WebcomicName, int PageNumber) { _clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return(true); }; using (var _http = new HttpClient(_clientHandler)) { var response = await _http.GetAsync(_webcomicsUri); if (response.IsSuccessStatusCode) { var ComicBooks = JsonConvert.DeserializeObject <List <ComicBookModel> >(await response.Content.ReadAsStringAsync()); if (ComicBooks.FirstOrDefault(c => c.Title == WebcomicName) != null) { ComicBookModel webcomic = ComicBooks.FirstOrDefault(c => c.Title == WebcomicName); if (User.Identity.Name != webcomic.Author) { //Impossible via in-application links; user is hacking. Back to main page, //for lack of a more severe punishment. return(View("MainArchiveView", new MainArchiveViewModel(ComicBooks))); } if (webcomic.ComicPages == null || webcomic.ComicPages.Count == 0) { //return View("ComicArchiveView", new ComicArchiveViewModel(webcomic)); //There is no page to update; back to the archive with you //Change to AuthorHome once that's up and running. return(await(new AuthorController()).AuthorHome()); } webcomic.ComicPages = webcomic.ComicPages.OrderBy(p => p.PageNumber).ToList(); if (webcomic.ComicPages.FirstOrDefault(p => p.PageNumber == PageNumber) != null) { ComicPageModel page = webcomic.ComicPages.FirstOrDefault(p => p.PageNumber == PageNumber); page.ComicBook = webcomic; ComicPageViewModel pageview = new ComicPageViewModel(page); return(View("UpdatePageView", pageview)); } return(View("ComicArchiveView", new ComicArchiveViewModel(webcomic))); //There is no page to update; back to the archive with you } return(View("Error", new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier })); } } return(await(new MainController()).Archive()); //If the webcomic doesn't exist, you get kicked back to the main archive. //Should be impossible via in-app links. }
// GET: Home public ActionResult Index() { var comicBooks = ComicBookModel.GetComicBooks(); return(View(comicBooks)); }