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() }); }
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)); } }