Пример #1
0
        public async Task <IActionResult> Index(PendingBookViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var user = await GetCurrentUserAsync();

                PendingBook pBook = new PendingBook();
                pBook.Title       = viewModel.title;
                pBook.AuthorFName = viewModel.authorFName;
                pBook.AuthorLName = viewModel.authorLName;
                pBook.ISBN        = viewModel.isbn;
                pBook.Edition     = viewModel.edition;
                pBook.Publisher   = viewModel.publisher;
                pBook.Description = viewModel.description;
                pBook.UserID      = user.Id;
                pBook.Image       = viewModel.image;

                ctx.PendingBooks.Add(pBook);
                ctx.SaveChanges();

                return(View("Confirm"));
            }
            else
            {
                return(View(viewModel));
            }
        }
Пример #2
0
        public async Task <IActionResult> ViewBook(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var         viewModel = new PendingBookViewModel();
            PendingBook book      = ctx.PendingBooks.Where(a => a.ID == id).FirstOrDefault();

            // Add in search with google books api for first/best result
            HttpClient client  = new HttpClient();
            string     api_url = "https://www.googleapis.com/books/v1/volumes?q=isbn:" + book.ISBN + "&key=AIzaSyAFr1FsZceoWiIHKFdSnMPeixy_ePvMG6U";

            client.BaseAddress = new Uri(api_url);

            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            HttpResponseMessage response = await client.GetAsync(api_url);

            if (response.IsSuccessStatusCode)
            {
                var formatters = new List <MediaTypeFormatter>()
                {
                    new JsonMediaTypeFormatter()
                };
                GoogleBooksAPIResponse responseObject = await response.Content.ReadAsAsync <GoogleBooksAPIResponse>(formatters);

                if (responseObject.totalItems > 0)
                {
                    viewModel.googleBook = responseObject.getBooks()[0];
                }
            }

            // make sure we found the book
            if (book != null)
            {
                viewModel.id          = book.ID;
                viewModel.title       = book.Title;
                viewModel.authorLName = book.AuthorLName;
                viewModel.authorFName = book.AuthorFName;
                viewModel.isbn        = book.ISBN;
                viewModel.edition     = book.Edition;
                viewModel.publisher   = book.Publisher;
                viewModel.description = book.Description;
                viewModel.image       = book.Image;
            }
            return(View(viewModel));
        }
Пример #3
0
        public IActionResult Deny(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var         viewModel = new PendingBookViewModel();
            PendingBook book      = ctx.PendingBooks.Where(a => a.ID == id).FirstOrDefault();

            // make sure we found the book
            if (book != null)
            {
                viewModel.id          = book.ID;
                viewModel.title       = book.Title;
                viewModel.authorLName = book.AuthorLName;
                viewModel.authorFName = book.AuthorFName;
                viewModel.isbn        = book.ISBN;
                viewModel.edition     = book.Edition;
                viewModel.publisher   = book.Publisher;
                viewModel.description = book.Description;
            }
            return(View(viewModel));
        }