public PurchaseViewModel(Purchase purchase) { this.Id = purchase.Id; this.Price = purchase.Price; this.DateOfPurchase = purchase.DateOfPurchase; this.IsRecalled = purchase.IsRecalled; this.ApplicationUser = purchase.ApplicationUser.UserName; this.Book = purchase.Book.Title; }
public static PurchaseViewModel CreateViewModel(Purchase purchase) { return new PurchaseViewModel { Id = purchase.Id, BookTitle = purchase.Book.Title, Price = purchase.Price, SoldAt = purchase.DateOfPurchase.ToShortDateString(), IsRecalled = purchase.isRecalled }; }
public static PurchaseViewModel Create(Purchase purchase) { var purchaseView = new PurchaseViewModel { Id = purchase.Id, BookTitle = purchase.Book.Title, Price = purchase.Price, DateOfPurchase = purchase.DateOfPurchase, IsRecalled = purchase.IsRecalled }; return purchaseView; }
public static PurchaseViewModel ConvertToPurchaseViewModel(Purchase purchase) { PurchaseViewModel purchaseViewModel = new PurchaseViewModel { Username = purchase.User.UserName, BookTitle = purchase.Book.Title, Price = purchase.Price, DateOfPurchase = purchase.DateOfPurchase, IsRecalled = purchase.IsRecalled }; return purchaseViewModel; }
public IHttpActionResult CreatePurchase(int id) { var book = this.Data.Books.Find(id); var currentUserId = this.User.Identity.GetUserId(); var user = this.Data.Users .First(u => u.Id == currentUserId); if (book == null) { return this.BadRequest("invalid book id"); } var purchase = new Purchase() { Book = book, User = user, Price = book.Price, DateOfPurchase = DateTime.Now, IsRecalled = false }; if (book.Copies == 0) { return this.BadRequest("no book's copies"); } book.Copies = book.Copies - 1; this.Data.Purchases.Add(purchase); this.Data.SaveChanges(); var purchaseResult = new { Price = purchase.Price, PurchaseDate = purchase.DateOfPurchase, IsRecalled = purchase.IsRecalled, PurchasePrice = purchase.Price, BookTitle = purchase.Book.Title }; return this.Ok(purchaseResult); }
public IHttpActionResult BuyBook(int id) { var existingBook = this.BookShopData.Books.Find(id); if (existingBook == null) { return this.BadRequest("No book with the specified id exists."); } if (existingBook.Copies == 0) { return this.BadRequest("Insufficient book copies."); } var newPurchase = new Purchase { BookId = existingBook.Id, UserId = this.User.Identity.GetUserId(), Price = existingBook.Price, DateOfPurchase = DateTime.Now, isRecalled = false }; existingBook.Copies--; existingBook.Purchases.Add(newPurchase); this.BookShopData.Books.Update(existingBook); this.BookShopData.SaveChanges(); var purchaseViewModel = PurchaseViewModel.CreateViewModel(newPurchase); return this.Ok(purchaseViewModel); }
public IHttpActionResult PurchaseBook(int id) { var book = context.Books.FirstOrDefault(b => b.Id == id); if (book == null) { return this.NotFound(); } if (book.Copies <= 0) { return this.BadRequest("No available books left!"); } book.Copies--; var purchase = new Purchase() { Price = book.Price, DateOfPurchase = DateTime.Now, BookId = book.Id, ApplicationUser = context.Users.FirstOrDefault(u => u.UserName == this.User.Identity.Name), IsRecalled = false }; context.Purchases.Add(purchase); context.SaveChanges(); var data = new PurchaseViewModel(purchase); return this.Ok(data); }
public IHttpActionResult BuyBook(int id, [FromBody]BuyBookBindingModel model) { var loggedUserId = this.User.Identity.GetUserId(); if (loggedUserId == null) { return this.Unauthorized(); } if (!this.ModelState.IsValid) { return this.BadRequest(this.ModelState); } var book = db.Books.Find(id); var user = db.Users.Find(loggedUserId); var purchase = new Purchase() { Price = model.Price, DateOfPurchase = DateTime.Now, IsRecalled = false, ApplicationUser = user, Book = book }; db.Purchases.Add(purchase); book.Copies--; db.SaveChanges(); return this.Ok(new PurchaseViewModel(purchase)); }
public IHttpActionResult BuyBook(int id) { string loggedUserId = this.userIdProvider.GetUserId(); var loggedUser = this.data.Users.Find(loggedUserId); if (loggedUser == null) { return this.BadRequest("Invalid session token."); } var existingBook = this.data.Books.Find(id); if (existingBook == null) { return this.BadRequest("Book does not exist - invalid id!"); } if (existingBook.Copies == 0) { return this.BadRequest("Unable to make purchase - insufficient book copies quantity."); } Purchase purchase = new Purchase() { Book = existingBook, BookId = existingBook.Id, DateOfPurchase = DateTime.Now, Price = existingBook.Price, User = loggedUser, UserId = loggedUserId, IsRecalled = false }; existingBook.Copies--; this.data.Purchases.Add(purchase); this.data.Save(); PurchaseViewModel purchaseViewModel = PurchaseViewModel.ConvertToPurchaseViewModel(purchase); return this.Ok(purchaseViewModel); }
public IHttpActionResult BuyBook(int id) { var book = this.BookShopData.Books.FirstOrDefault(b => b.Id == id); if (book == null) { return this.NotFound(); } if (--book.Copies <= 0) { return this.BadRequest("There is not enough book copies."); } var loggedUserId = this.User.Identity.GetUserId(); if (loggedUserId == null) { return this.BadRequest("Invalid session token."); } var user = this.BookShopData.Users.Find(loggedUserId); var purchase = new Purchase { Book = book, User = user, Price = book.Price, DateOfPurchase = DateTime.Now, IsRecalled = false }; this.BookShopData.Purchases.Add(purchase); this.BookShopData.SaveChanges(); return this.Ok(PurchaseViewModel.Create(purchase)); }
public PurchaseViewModel(Purchase purchase) { User = purchase.ApplicationUser.UserName; BookTitle = purchase.Book.Title; Price = purchase.Book.Price; }