public async Task <string> Buy(PurchasesDTO purchase) { purchase.dt_purchased = DateTime.Now; PurchasesDTO purchaseResult = null; using (var client = new HttpClient()) { client.BaseAddress = apiUri; client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); StringContent content = new StringContent(JsonConvert.SerializeObject(purchase), Encoding.UTF8, "application/json"); var response = await client.PostAsync("api/Books/PostPurchase", content); if (response.IsSuccessStatusCode) { purchaseResult = JsonConvert.DeserializeObject <PurchasesDTO>(await response.Content.ReadAsStringAsync()); } } return(purchaseResult != null ? "Purchase succeed" : "Purchase failed"); }
public async Task <IActionResult> PostPurchase([FromBody] PurchasesDTO purchasesDTO) { var customer = await _context.StoreUsers.SingleOrDefaultAsync(c => c.Id == purchasesDTO.CustomerId); if (customer == null) { return(BadRequest("Invalid Customer Id")); } var items = _context.Items.Where(i => purchasesDTO.ItemsIds.Contains(i.Id)).ToList(); if (items.Count != purchasesDTO.ItemsIds.Count) { return(BadRequest("One or more movieIds are invalid")); } foreach (var item in items) { if (item.Quantity == 0) { return(BadRequest("Item is not ot available.")); } item.Quantity--; var purchase = new Purchase { StoreUser = customer, Item = item, DateOfPurchase = DateTime.Now }; _context.Add(purchase); } await _context.SaveChangesAsync(); return(Ok()); }
public async Task <IHttpActionResult> PostPurchase(PurchasesDTO purchase) { return(Json(await booksManager.BuyBook(purchase))); }
public async Task <PurchasesDTO> BuyBook(PurchasesDTO purchase) { return(await Add <purchases, PurchasesDTO>(purchase, (db, dto) => dto.id = db.id)); }