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)); } }
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)); }
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)); }