コード例 #1
0
        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!");
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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!"));
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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("/"));
        }