Esempio n. 1
0
 private void AdjustTime(MealDetails meal)
 {
     if (meal.DefinitionId.HasValue)
     {
         var definition = nutritionRepository.GetMealDefinitions(CurrentUserId).FirstOrDefault(d => d.Id == meal.DefinitionId.Value);
         if (definition != null)
         {
             var time     = definition.Time;
             var datetime = new DateTime(meal.Time.Year, meal.Time.Month, meal.Time.Day, time.Hours, time.Minutes, time.Seconds);
             meal.Time = DateTimeUtils.CreateLocal(meal.Time, definition.Time);
         }
     }
 }
Esempio n. 2
0
        public IActionResult AddRow([FromBody] AddMealRowRequest request)
        {
            var dayStart = DateTimeUtils.ToLocal(request.Date).Date;
            var dayEnd   = dayStart.AddDays(1).AddMilliseconds(-1);
            var mealRow  = new MealRow
            {
                FoodId    = request.FoodId,
                Quantity  = request.Quantity,
                PortionId = request.PortionId
            };
            MealDetails meal;

            if (request.MealId.HasValue)
            {
                meal = nutritionRepository.GetMeal(request.MealId.Value);
            }
            else if (request.MealDefinitionId.HasValue)
            {
                meal = nutritionRepository.SearchMeals(CurrentUserId, dayStart, dayEnd).FirstOrDefault(m => m.DefinitionId == request.MealDefinitionId);
            }
            else
            {
                return(BadRequest());
            }
            if (meal == null)
            {
                if (request.MealId.HasValue)
                {
                    return(NotFound());
                }
                else if (request.MealDefinitionId.HasValue)
                {
                    var def = nutritionRepository.GetMealDefinitions(CurrentUserId).Single(d => d.Id == request.MealDefinitionId.Value);
                    if (def == null)
                    {
                        return(BadRequest());
                    }

                    meal = new MealDetails
                    {
                        UserId       = CurrentUserId,
                        DefinitionId = def.Id,
                        Created      = DateTimeOffset.Now,
                        Time         = DateTimeUtils.CreateLocal(dayStart, def.Time),
                        Rows         = new MealRow[] { }
                    };
                }
            }
            if (meal.UserId != CurrentUserId)
            {
                return(Unauthorized());
            }
            mealRow.MealId = meal.Id;
            meal.Rows      = meal.Rows.Union(new[] { mealRow }).ToArray();
            CalculateNutrients(meal);
            if (meal.Id == Guid.Empty)
            {
                nutritionRepository.CreateMeal(meal);
            }
            else
            {
                nutritionRepository.CreateMealRow(mealRow, meal.Rows.Length - 1);
            }

            var result = AutoMapper.Mapper.Map <MealRowModel>(mealRow);

            return(Ok(result));
        }