public async Task <ActionResult> GetOrderPropositionById(Guid id) { try { Guid loggedInUserId = _userIdFromClaimsExpander.ExpandIdFromClaims(HttpContext.User); IGetOrderPropositionResponse response = await _orderPropositionsProvider.GetOrderPropositionById(new GetOrderPropositionByIdRequest(id)); IGetOrderPropositionPositionsResponse getOrderPropositionPositionsResponse = await _orderPropositionsPositionsProvider.GetOrderPropositionPositionsByOrderPropositionId( new GetOrderPropositionPositionByOrderPropositionIdRequest(id)); switch (response.Result) { case OrderPropositionsProvideResultEnum.Success: return(Ok(new GetOrderPropositionResponse { Creator = _objectToApiModelConverter.ConvertUser(_userProvider.GetUserById(new ProvideUserRequest(response.OrderProposition.CreatorID)).Result.User), Restaurant = _objectToApiModelConverter.ConvertRestaurant(_restaurantProvider.GetRestaurant(new GetRestaurantRequest(response.OrderProposition.RestaurantId)).Result.Restaurant), OrderProposition = _objectToApiModelConverter.ConvertOrderProposition(response.OrderProposition), Positions = getOrderPropositionPositionsResponse.OrderPropositionPositions.Select(x => new ExtendedOrderPropositionPositionApiModel { MealId = x.MealId, Id = x.Id, CreationDate = x.CreationDate, Meal = _objectToApiModelConverter.ConvertMeal(_mealProvider.GetMealById(new GetMealByIdRequest(x.MealId)).Result.Meal), OrderPropositionId = x.OrderPropositionId, UserId = x.UserId, User = _objectToApiModelConverter.ConvertUser(_userProvider.GetUserById(new ProvideUserRequest(x.UserId)).Result.User) }).ToList() })); case OrderPropositionsProvideResultEnum.NotFound: return(StatusCode(404)); case OrderPropositionsProvideResultEnum.Exception: return(StatusCode(500)); case OrderPropositionsProvideResultEnum.Forbidden: return(StatusCode(403)); default: throw new ArgumentOutOfRangeException(); } ; } catch (Exception ex) { _logger.Log(ex); return(StatusCode(500)); } }
public async Task <ActionResult> GetOrderPropositionPositionsByOrderPropositionId(Guid id) { try { IGetOrderPropositionPositionByOrderPropositionIdRequest request = new GetOrderPropositionPositionByOrderPropositionIdRequest(id); IGetOrderPropositionPositionsResponse getOrderPropositionPositionsByOrderPropositionIdResponse = await _orderPropositionsPositionsProvider.GetOrderPropositionPositionsByOrderPropositionId(request); return(getOrderPropositionPositionsByOrderPropositionIdResponse .GetOrderPropositionPositionsResult switch { GetOrderPropositionPositionsResult.Success => (ActionResult)Ok( getOrderPropositionPositionsByOrderPropositionIdResponse.OrderPropositionPositions.Select(_objectToApiModelConverter.ConvertOrderPropositionPosition)), GetOrderPropositionPositionsResult.NotFound => NotFound(), GetOrderPropositionPositionsResult.Exception => StatusCode(500), GetOrderPropositionPositionsResult.Forbidden => Forbid(), _ => throw new ArgumentOutOfRangeException() }); }