public async Task <ActionResult> GetOrder(Guid id)
        {
            try
            {
                IGetOrderByIdRequest getOrderByIdRequest = new GetOrderByIdRequest(id);
                IGetOrderResponse    getOrderResponse    = await _orderProvider.GetOrderById(getOrderByIdRequest);

                IGetOrderPositionsResponse getOrderPositionsResponse = await _orderPositionsProvider.GetOrderPositionsByOrderId(new GetOrderPositionsByOrderIdRequest(id));

                return(getOrderResponse.Result switch
                {
                    OrderProvideResultEnum.Success => (ActionResult)Ok(new GetOrderResponseModel
                    {
                        Order = _objectToApiModelConverter.ConvertOrder(getOrderResponse.Order),
                        Restaurant = _objectToApiModelConverter.ConvertRestaurant(_restaurantProvider.GetRestaurant(new GetRestaurantRequest(getOrderResponse.Order.RestaurantId)).Result.Restaurant),
                        OrderPositions = getOrderPositionsResponse.OrderPositions.Select(x =>
                                                                                         new ExtendedOrderPositionApiModel
                        {
                            Id = x.Id,
                            CreationDate = x.CreationDate,
                            MealId = x.MealId,
                            Meal = _objectToApiModelConverter.ConvertMeal(_mealProvider.GetMealById(new GetMealByIdRequest(x.MealId))?.Result?.Meal),
                            UserId = x.UserId,
                            OrderId = x.OrderId,
                            User = _objectToApiModelConverter.ConvertUser(_userProvider.GetUserById(new ProvideUserRequest(x.UserId))?.Result?.User)
                        }).ToList(),
                        OrderBoy = _objectToApiModelConverter.ConvertUser(_userProvider.GetUserById(new ProvideUserRequest(getOrderResponse.Order.OrderBoyId)).Result.User)
                    }),
                    OrderProvideResultEnum.NotFound => NotFound(),
                    OrderProvideResultEnum.Exception => StatusCode(500),
                    OrderProvideResultEnum.Forbidden => Forbid(),
                    _ => throw new ArgumentOutOfRangeException()
                });
            }
示例#2
0
        public async Task <ActionResult> GetOrderPositions()
        {
            try
            {
                IGetOrderPositionsByUserIdRequest getOrderPositionsByUserIdRequest = new GetOrderPositionsByUserIdRequest(_userIdFromClaimsExpander.ExpandIdFromClaims(HttpContext.User));
                IGetOrderPositionsResponse        getOrderPositionsResponse        = await _orderPositionsProvider.GetOrderPositionsByUserId(getOrderPositionsByUserIdRequest);

                return(PrepareResponseAfterGetOrderPositions(getOrderPositionsResponse));
            }
            catch (Exception ex)
            {
                _logger.Log(ex);
                return(StatusCode(500));
            }
        }
示例#3
0
        public async Task <ActionResult> GetOrderPosition(Guid id)
        {
            try
            {
                IGetOrderPositionsByOrderIdRequest getOrderPositionsByOrderIdRequest = new GetOrderPositionsByOrderIdRequest(id);
                IGetOrderPositionsResponse         getOrderPositionsResponse         = await _orderPositionsProvider.GetOrderPositionsByOrderId(getOrderPositionsByOrderIdRequest);

                return(PrepareResponseAfterGetOrderPositions(getOrderPositionsResponse));
            }
            catch (Exception ex)
            {
                _logger.Log(ex);
                return(StatusCode(500));
            }
        }
示例#4
0
 private ActionResult PrepareResponseAfterGetOrderPositions(IGetOrderPositionsResponse getOrderPositionsResponse)
 {
     return(getOrderPositionsResponse.OrderPositionProvideResult switch
     {
         OrderPositionProvideResult.Success => (ActionResult)Ok(new
                                                                GetExtendedOrderPositionsResponseModel
         {
             OrderPositions = getOrderPositionsResponse.OrderPositions.Select(x =>
                                                                              new ExtendedOrderPositionApiModel
             {
                 CreationDate = x.CreationDate,
                 UserId = x.UserId,
                 Id = x.Id,
                 Meal = _objectToApiModelConverter.ConvertMeal(_mealProvider.GetMealById(new GetMealByIdRequest(x.MealId)).Result.Meal),
                 MealId = x.MealId,
                 OrderId = x.OrderId,
                 User = _objectToApiModelConverter.ConvertUser(_userProvider.GetUserById(new ProvideUserRequest(x.UserId)).Result.User)
             }).ToList()    //_objectToApiModelConverter.ConvertOrderPosition).ToList()
         }),
         OrderPositionProvideResult.NotFound => NotFound(),
         OrderPositionProvideResult.Exception => StatusCode(500),
         OrderPositionProvideResult.Forbidden => Forbid(),
         _ => throw new ArgumentOutOfRangeException()
     });