Exemplo n.º 1
0
        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");
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
 public async Task <IHttpActionResult> PostPurchase(PurchasesDTO purchase)
 {
     return(Json(await booksManager.BuyBook(purchase)));
 }
Exemplo n.º 4
0
 public async Task <PurchasesDTO> BuyBook(PurchasesDTO purchase)
 {
     return(await Add <purchases, PurchasesDTO>(purchase, (db, dto) => dto.id = db.id));
 }