Пример #1
0
        public void PlaceOrder(OrderHistoryDto order)
        {
            // Save to Orders
            _orderRepository.PlaceOrder(Mapper.Map <OrderHistoryDto, Orders>(order));

            // Deduct from inventory
            _pantryStockRepository.UpdatePantryStocks(order.DrinkId, order.OfficeId);
        }
Пример #2
0
        private async Task <OrderHistoryDto> PopulateOrderItemsAsync(OrderHistoryDto orderHistoryDto)
        {
            var orderItemsPath = string.Format("{0}{1}/{2}", HttpClientProvider.HttpClient.BaseAddress,
                                               OrderItemsHistoryByOrderHistoryId_Url, _appUserId);

            if (orderHistoryDto.OrderItems.Count == 0)
            {
                orderHistoryDto.OrderItems = (await _apiClient.ListAsync <OrderItemHistoryDto>(orderItemsPath)).ToList();
            }
            return(orderHistoryDto);
        }
Пример #3
0
        public async Task <IActionResult> ConfirmOrder()
        {
            var orderItems = _orderItemBasket.OrderItems;
            var order      = await CreateOrderAsync(orderItems);

            var path = string.Format("{0}{1}", HttpClientProvider.HttpClient.BaseAddress, Orders_Base_Address);

            var pathOrderHistory = string.Format("{0}{1}", HttpClientProvider.HttpClient.BaseAddress, Order_History_Base_Address);



            var appUserId   = order.AppUserId;
            var pathAppUser = string.Format("{0}/{1}", AppUsers_Base_Address, appUserId);

            var appUser = await _apiClient.GetAsync <AppUserDto>(pathAppUser);

            var orderPostResult = await _apiClient.PostAsync(path, _mapper.Map <OrderDto>(order));

            var orderhistoryToHistory = await _itemsHistoryComparer.GetOrderHistoryToRecordAsync(appUser, orderItems);

            var newOrderHistory = new OrderHistoryDto();

            if (orderhistoryToHistory.Count > 0 && appUser.OrderHistoryCount < 5)
            {
                appUser.OrderHistoryCount += 1;
                newOrderHistory            = _mapper.Map <OrderHistoryDto>(order);
                newOrderHistory.OrderItems = _mapper.Map <IEnumerable <OrderItemHistoryDto> >(orderhistoryToHistory).ToList();
                var orderhistoryPostResult = await _apiClient.PostAsync(pathOrderHistory, newOrderHistory);

                await _apiClient.PutAsync(pathAppUser, appUser);
            }



            //if (appUser.OrderHistoryCount < 5)
            //{
            //    appUser.OrderHistoryCount += 1;
            //    await _apiClient.PutAsync(pathAppUser, appUser);
            //}


            var confirmedOrder = _mapper.Map <OrderViewModel>(orderPostResult);

            return(View(confirmedOrder));
        }
Пример #4
0
        public static OrderHistoryDto MapOrderToHistoryDto(this Order order)
        {
            var orderHistory = new OrderHistoryDto()
            {
                Id = order.Id,
                //Client = order.Client,
                FinalPrice = order.FinalPrice,
                Items      = order.Items.Select(i => new OrderItemHistoryDto()
                {
                    Flavor1  = i.Flavor1.MapFlavorToDto(),
                    Flavor2  = i.Flavor2.MapFlavorToDto(),
                    Price    = i.Price,
                    Quantity = i.Quantity
                }).ToList()
            };

            return(orderHistory);
        }
        public async Task <ActionResult <OrderHistoryDto> > PostOrderHistory(OrderHistoryDto orderHistory)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    await _orderHistoryRepository.AddAsync(_mapper.Map <OrderHistory>(orderHistory));

                    await _unitOfWorkOrderhistory.CommitAsync(_cancellationToken);

                    return(CreatedAtAction("GetOrderHistory", new { id = orderHistory.OrderHistoryId }, orderHistory));
                }
                catch (Exception ex)
                {
                    var errorMsg = ex.Message;
                    throw;
                }
            }

            return(BadRequest());
        }
Пример #6
0
 public void PlaceOrder([FromBody] OrderHistoryDto order)
 {
     order.DateOrdered = DateTime.UtcNow;
     _orderApiService.PlaceOrder(order);
 }