public async Task <ActionResult <DailyMealInstanceModel> > GetMealsForDate(DateTime?date) { try { var result = (await _repository.GetMealsForDate(User.Claims.GetUserId(), date ?? DateTime.Now)).ToList(); var meals = result.Select( p => new MealInstanceModel { MealInstanceId = p.MealInstanceId, GoalId = p.Goal.GoalId, Amount = p.Amount, Date = p.Date, Product = new MealProductModel { ProductId = p.Product.ProductId, Name = p.Product.Name }, MealType = new MealTypeModel { Id = p.MealType.MealTypeId, Name = p.MealType.Name } }); var goal = result.First().Goal; var norm = _calculator.CalculateDailyCaloriesNorm( goal.WeightGoal, goal.Height, User.Claims.GetDateOfBirth(), goal.StartDate, User.Claims.GetIsMale() ); var response = new DailyMealInstanceModel { DateTime = (date ?? DateTime.Now), Consumed = await _repository.GetMealTotalsForDate(User.Claims.GetUserId(), date ?? DateTime.Now), DailyNorm = norm, Meals = meals }; return(response); } catch (DbException ex) { if (ex.Code == 50100) { return(Forbid()); } return(BadRequest(ex.Message)); } catch (Exception) { return(StatusCode(500)); } }
public DailyInfoViewModel(DailyMealInstanceModel selectedDailyMealInstance) { DailyLimit = selectedDailyMealInstance.DailyNorm; Consumed = selectedDailyMealInstance.Consumed; Date = selectedDailyMealInstance.DateTime; }