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 GetsAppPurchaseData(string username) { var searchedUser = this.Data.Users .FirstOrDefault(u => u.UserName == username); if (searchedUser == null) { return this.NotFound(); } var userName = searchedUser.UserName; var purchases = searchedUser.Purchases.Select(p => new PurchaseViewModel { PurchasePrice = p.Price, BookTitle = p.Book.Title, BookPrice = p.Book.Price, DateOfPurchase = p.DateOfPurchase, IsRecalled = p.IsRecalled }); var purchaseResult = new { UserName = username, Purchases = purchases }; return this.Ok(purchaseResult); }