コード例 #1
0
        public ActionResult CreateOrder(CreateOrderViewModel model)
        {
            _reservationService.ReservationChecker();
            var reservation = _reservationRepository.Get(model.ReservationId);

            var parametrs = new OrderParametersDTO();

            parametrs.Name          = model.Name;
            parametrs.ReservationId = model.ReservationId;
            parametrs.Address       = model.Address;
            parametrs.City          = model.City;
            parametrs.Email         = model.Email;
            parametrs.Quantity      = reservation.ReservedItem.ReservedQuantity;

            var order = _orderService.CreateOrder(parametrs);

            return(RedirectToAction("Phone", new { id = order.Id }));
        }
コード例 #2
0
ファイル: OrderService.cs プロジェクト: PanasyukVladimir/pr3
        public Order CreateOrder(OrderParametersDTO parametersDTO)
        {
            var res = _resRepo.Get(parametersDTO.ReservationId);

            if (res.OrderId != null)
            {
                throw new InvalidOperationException("Phone has been already issued to this reservation, unable to create another one");
            }

            var phone = _phoneRepository.GetPhone(res.ReservedItem.PhoneId);

            var newOrder = new Order()
            {
                ReservationId = res.Id,
                OrderDate     = DateTime.Now,
                Name          = parametersDTO.Name,
                Address       = parametersDTO.Address,
                Email         = parametersDTO.Email,
                City          = parametersDTO.City,
                Status        = OrderStatusEnum.Active,
                OrderItems    = new List <OrderItem>()
            };

            var priceParametrs = new PriceStrategyParametersDTO();

            priceParametrs.PhoneId  = phone.Id;
            priceParametrs.Quantity = parametersDTO.Quantity;

            newOrder.OrderItems = _priceStr.CalculatePrice(priceParametrs);

            res.OrderId = newOrder.Id;
            _resRepo.Update(res);

            _orderRepository.Create(newOrder);
            return(newOrder);
        }