Пример #1
0
        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));
        }
Пример #3
0
        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
                }));
            }
        }
Пример #4
0
        public IActionResult GetPostWebcomic()
        {
            ComicBookModel webcomic = new ComicBookModel()
            {
                Author = User.Identity.Name
            };

            return(View("PostWebcomicView", new ComicBookViewModel(webcomic)));
        }
Пример #5
0
        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));
        }