public async Task SubmitOrder(int userId, List <CartProductDTO> cart, SentOrderViewModel sentOrder) { var succeed = await _queries.SubmitOrder(userId, cart, sentOrder); if (!succeed) { throw new Exception("Couldn't submit order!"); } }
public async Task SubmitOrder_CartIsEmpty_ReturnsFalse() { var userId = 1; var cart = new List <CartProductDTO>(); var sentOrder = new SentOrderViewModel(); var result = await _accountQueries.SubmitOrder(userId, cart, sentOrder); Assert.IsFalse(result); }
public async Task SubmitOrder_CorrectInputs_ShouldSuccess() { var userId = 1; var cart = new List <CartProductDTO>(); var sentOrder = new SentOrderViewModel(); await _service.SubmitOrder(userId, cart, sentOrder); Assert.That(true); }
public async Task SubmitOrder_UserDoesntExists_ShouldThrowException() { var userId = 2; var cart = new List <CartProductDTO>(); var sentOrder = new SentOrderViewModel(); var ex = Assert.ThrowsAsync <Exception>(async() => await _service.SubmitOrder(userId, cart, sentOrder)); Assert.That(ex.Message, Is.EqualTo("Couldn't submit order!")); }
public async Task SubmitOrder_CorrectEntries_ReturnsTrue() { var userId = 1; var cart = new List <CartProductDTO>() { new CartProductDTO() { ProductID = "1", Quantity = 5 } }; var sentOrder = new SentOrderViewModel() { AddressID = (await _context.UserAdresses.FirstOrDefaultAsync(c => c.UserId == 1)).Id }; var result = await _accountQueries.SubmitOrder(userId, cart, sentOrder); Assert.IsTrue(result); }
public async Task SubmitOrder_UserDoesntExists_ReturnsFalse() { var userId = 99999999; var cart = new List <CartProductDTO>() { new CartProductDTO() { ProductID = "1", Quantity = 5 } }; var sentOrder = new SentOrderViewModel() { AddressID = 1 }; var result = await _accountQueries.SubmitOrder(userId, cart, sentOrder); Assert.IsFalse(result); }
public async Task <bool> SubmitOrder(int userId, List <CartProductDTO> cart, SentOrderViewModel sentOrder) { var result = await _context.UserAdresses .FirstOrDefaultAsync( c => c.Id == sentOrder.AddressID && c.UserId == userId ); if (result == null || cart == null || cart.Count <= 0) { return(false); } var orderEntry = new Orders() { UserId = userId, UserAddressId = sentOrder.AddressID, Date = DateTime.Now, Status = 0 }; await _context.Orders.AddAsync(orderEntry); await _context.SaveChangesAsync(); foreach (var item in cart) { var entryItem = new OrderItems() { OrderId = orderEntry.Id, ProductId = int.Parse(item.ProductID), Quantity = item.Quantity }; await _context.OrderItems.AddAsync(entryItem); } await _context.SaveChangesAsync(); return(true); }
public async Task <ActionResult> SubmitOrder([FromForm] SentOrderViewModel collection) { if (ModelState.IsValid) { var sessionUser = HttpContext.Session.GetString("user"); var sessionCart = HttpContext.Session.GetString("cart"); if (sessionUser != null && sessionCart != null) { try { var uservm = JsonConvert.DeserializeObject <UserDTO>(sessionUser); var cartvm = JsonConvert.DeserializeObject <List <CartProductDTO> >(sessionCart); await _accountService.SubmitOrder(int.Parse(uservm.ID), cartvm, collection); //if succeded clear cart HttpContext.Session.SetString("cart", JsonConvert.SerializeObject(new List <CartProductDTO>())); } catch (Exception) { } } } return(Redirect("/")); }