public ActionResult ShowBook(string id) { var model = new MultipleModel.BooksVM(); model.Book = db.Books.Where(b => b.Id == new Guid(id)).SingleOrDefault(); return(PartialView("_ShowBook", model)); }
public ActionResult Books() { var model = new MultipleModel.BooksVM(); model.Books = db.Books.Where(b => b.Delete == false).OrderByDescending(b => b.CreatedAt).Take(12).ToList(); return(View(model)); }
public ActionResult ReserveBook(string id) { var errorList = new List <string>(); var request = new MultipleModel.BooksVM(); var identity = (System.Security.Claims.ClaimsIdentity)User.Identity; var getUserId = identity.Claims.Where(c => c.Type == System.Security.Claims.ClaimTypes.NameIdentifier).Select(c => c.Value).SingleOrDefault(); var getUser = db.Users.Where(u => u.Id == new Guid(getUserId) && u.Deleted == false).SingleOrDefault(); var getBook = db.Books.Where(b => b.Id == new Guid(id) && b.Delete == false).SingleOrDefault(); if (getUser != null) { if (getBook != null) { if (!(db.Reservations.Where(c => c.UserId == getUser.Id && c.BookId == getBook.Id && c.Delete == false).Any())) { var checkUserReservation = db.Reservations.Where(r => r.UserId == getUser.Id && r.Delete == false).ToList(); if (checkUserReservation.Count <= 3) { var newReservation = db.Reservations.Create(); newReservation.User = getUser; newReservation.Book = getBook; newReservation.CreatedAt = DateTime.UtcNow; db.Reservations.Add(newReservation); db.SaveChanges(); ModelState.Clear(); request.Error = false; string message = "You have successfully made a reservation"; errorList.Add(message); request.Message = errorList; } else if (checkUserReservation.Count > 3) { request.Error = true; string message = "You have already exceeded the maximumum number of reservation"; errorList.Add(message); request.Message = errorList; } } else if (db.Reservations.Where(c => c.UserId == getUser.Id && c.BookId == getBook.Id && c.Delete == false).Any()) { request.Error = true; string message = "You have already made a reservation for this book"; errorList.Add(message); request.Message = errorList; } } else if (getBook == null) { request.Error = true; string message = "The selected book is not existing!!"; errorList.Add(message); request.Message = errorList; } } else if (getUser == null) { request.Error = true; string message = "Invalid user!! Kindly sign in again"; errorList.Add(message); request.Message = errorList; } request.Book = db.Books.Where(b => b.Id == getBook.Id && b.Delete == false).SingleOrDefault(); return(PartialView("_RateBook", request)); }
public ActionResult RateBook(string id, int rate) { var errorList = new List <string>(); var request = new MultipleModel.BooksVM(); var identity = (System.Security.Claims.ClaimsIdentity)User.Identity; var getUserId = identity.Claims.Where(c => c.Type == System.Security.Claims.ClaimTypes.NameIdentifier).Select(c => c.Value).SingleOrDefault(); var getUser = db.Users.Where(u => u.Id == new Guid(getUserId) && u.Deleted == false).SingleOrDefault(); var getBook = db.Books.Where(b => b.Id == new Guid(id) && b.Delete == false).SingleOrDefault(); if (rate == 1 || rate == 2 || rate == 3) { if (getUser != null) { if (getBook != null) { if (!(db.Ratings.Where(c => c.UserId == getUser.Id && c.BookId == getBook.Id).Any())) { var newRate = db.Ratings.Create(); newRate.Rate = rate; newRate.BookId = getBook.Id; newRate.UserId = getUser.Id; newRate.CreatedAt = DateTime.UtcNow; db.Ratings.Add(newRate); db.SaveChanges(); ModelState.Clear(); request.Error = false; string message = "You have successfully rated this book"; errorList.Add(message); request.Message = errorList; } else if (db.Ratings.Where(c => c.UserId == getUser.Id && c.BookId == getBook.Id).Any()) { request.Error = true; string message = "You have already rated this book"; errorList.Add(message); request.Message = errorList; } } else if (getBook == null) { request.Error = true; string message = "The selected book is not existing!!"; errorList.Add(message); request.Message = errorList; } } else if (getUser == null) { request.Error = true; string message = "Invalid user!! Kindly sign in again"; errorList.Add(message); request.Message = errorList; } } else if (rate > 3) { request.Error = true; string message = "Error"; errorList.Add(message); request.Message = errorList; } request.Book = db.Books.Where(b => b.Id == getBook.Id && b.Delete == false).SingleOrDefault(); return(PartialView("_RateBook", request)); }