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