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