Exemple #1
0
        private void InitializeTestData(out Game game,
                                        out CardViewModel cardViewModel,
                                        out List <OrderDetailViewModel> orderDetailView,
                                        out List <OrderDetail> orderDetails)
        {
            var gameBuilder        = new GameBuilder();
            var orderDetailBuilder = new OrderDetailBuilder();

            game = gameBuilder.WithId(new Guid("2245390a-6aaa-4191-35f5-08d7223464b8"))
                   .WithKey("c21")
                   .WithName("Cry Souls")
                   .WithDescription("Cry Souls desc")
                   .WithUnitsInStock(10)
                   .WithPrice(10)
                   .WithPublisher("Unknown")
                   .Build();

            cardViewModel = new CardViewModel
            {
                CardNumber     = 123123123123123,
                CartHolderName = "card",
                MonthExpiry    = 1,
                SecurityCode   = 1,
                YearExpiry     = 2000
            };

            orderDetailView = new List <OrderDetailViewModel>
            {
                new OrderDetailViewModel
                {
                    Discount  = 1,
                    GameKey   = "key",
                    GameName  = "gameName",
                    Platforms = new List <string>(),
                    Price     = 1,
                    Quantity  = 1
                }
            };

            orderDetails = new List <OrderDetail>
            {
                orderDetailBuilder.WithGameKey("csgo").Build()
            };
        }
        private void InitializeTestData(out User user, out Order order, out OrderDetail orderDetail)
        {
            var orderBuilder       = new OrderBuilder();
            var orderDetailBuilder = new OrderDetailBuilder();

            user = new User
            {
                Email = "*****@*****.**",
                Name  = "name"
            };

            order = orderBuilder.WithCustomerId(new Guid("5245390a-6aaa-4191-35f5-08d5223464b8")).Build();
            var orderDetails = orderDetailBuilder.WithGameKey("csgo").Build();

            order.OrderDetails = new List <OrderDetail>
            {
                orderDetails
            };

            orderDetail = orderDetails;
        }
        public OrderDetailsCart SaveOrderHeaderAddOrderDetail(OrderDetailsCart detailCart, Claim claim)
        {
            detailCart.ListCart = _httpContextAccessor.HttpContext.Session.Get <List <MenuItemsAndQuantity> >(SD.ssShoppingCart).ToList();
            detailCart.OrderHeader.PaymentStatus = SD.PaymentStatusPending;
            detailCart.OrderHeader.OrderDate     = DateTime.Now;
            detailCart.OrderHeader.UserId        = claim.Value;
            detailCart.OrderHeader.Status        = SD.StatusSubmitted;

            _unitOfWork.OrderHeaderRepository.Create(detailCart.OrderHeader);
            _unitOfWork.SaveChanges();

            detailCart.OrderHeader.OrderTotalOriginal = 0;

            foreach (var item in detailCart.ListCart)
            {
                item.Item = _unitOfWork.MenuItemRepository.ReadOne(item.Item.Id);
                _unitOfWork.MenuItemRepository.ReadOne(item.Item.Id).Quantity -= item.Quantity;
                if (_unitOfWork.MenuItemRepository.ReadOne(item.Item.Id).Quantity == 0)
                {
                    _unitOfWork.MenuItemRepository.ReadOne(item.Item.Id).IsPublish = false;
                }

                OrderDetails orderDetails = new OrderDetailBuilder()
                                            .AddName(item.Item.Name)
                                            .AddQuantity(item.Quantity)
                                            .MoreDescription(item.Item.Description)
                                            .CalPrice(item.Item.Price * item.Quantity)
                                            .LinkOrderID(detailCart.OrderHeader.Id)
                                            .LinkMenuItemID(item.Item.Id)
                                            .Build();

                detailCart.OrderHeader.OrderTotalOriginal += orderDetails.Count * item.Item.Price;
                _unitOfWork.OrderDetailRepository.Create(orderDetails);
            }
            _unitOfWork.SaveChanges();
            return(detailCart);
        }