private ActionResult PrepareResponseAfterGetMealById(IGetMealByIdResponse response)
 {
     return(response.MealProvideResult switch
     {
         MealProvideResultEnum.Success => (ActionResult)Ok(_objectToApiModelConverter.ConvertMeal(response.Meal)),
         MealProvideResultEnum.NotFound => StatusCode(404),
         MealProvideResultEnum.Exception => StatusCode(500),
         MealProvideResultEnum.Forbidden => StatusCode(403),
         _ => throw new ArgumentOutOfRangeException()
     });
        public async Task <ActionResult> GetMeal(Guid?id)
        {
            try
            {
                IGetMealByIdRequest  request  = new GetMealByIdRequest(id.GetValueOrDefault(Guid.Empty));
                IGetMealByIdResponse response = await _mealsProvider.GetMealById(request);

                return(PrepareResponseAfterGetMealById(response));
            }
            catch (Exception ex)
            {
                _logger.Log(ex);
                return(StatusCode(500));
            }
        }