示例#1
0
        public IActionResult Index()
        {
            var user = Database.GetDatabase(_env.ContentRootPath).Users.FirstOrDefault();
            var vm   = new DietIndexViewModel(user);

            //get user from database
            return(View(vm));
        }
示例#2
0
        public ActionResult Index(DateTime?dateTime = null)
        {
            var userId    = User.Identity.GetUserId();
            var ToDayDate = dateTime ?? DateTime.Now.Date;
            var viewModel = _unitOfWork.DailyMenus.GetDailyMenu(userId, ToDayDate);

            if (viewModel == null)
            {
                viewModel = new DailyMenu {
                    DailyMenuDate = ToDayDate, FoodModels = new List <FoodModel>(), UserId = userId
                };
                _unitOfWork.DailyMenus.AddDailyMenu(viewModel);
                _unitOfWork.Complete();
            }
            var viewModelToReturn = new DietIndexViewModel();

            viewModelToReturn.DailyMenu = viewModel;
            foreach (var item in viewModelToReturn.DailyMenu.FoodModels)
            {
                if (item.MealType == MealType.breakfast)
                {
                    viewModelToReturn.Breakfast.Calories      += item.Calories;
                    viewModelToReturn.Breakfast.Fat           += item.Fat;
                    viewModelToReturn.Breakfast.Carbohydrates += item.Carbohydrates;
                    viewModelToReturn.Breakfast.Protein       += item.Protein;
                }
                if (item.MealType == MealType.dinner)
                {
                    viewModelToReturn.Dinner.Calories      += item.Calories;
                    viewModelToReturn.Dinner.Fat           += item.Fat;
                    viewModelToReturn.Dinner.Carbohydrates += item.Carbohydrates;
                    viewModelToReturn.Dinner.Protein       += item.Protein;
                }
                if (item.MealType == MealType.lunch)
                {
                    viewModelToReturn.Lunch.Calories      += item.Calories;
                    viewModelToReturn.Lunch.Fat           += item.Fat;
                    viewModelToReturn.Lunch.Carbohydrates += item.Carbohydrates;
                    viewModelToReturn.Lunch.Protein       += item.Protein;
                }
                if (item.MealType == MealType.snacks)
                {
                    viewModelToReturn.Snack.Calories      += item.Calories;
                    viewModelToReturn.Snack.Fat           += item.Fat;
                    viewModelToReturn.Snack.Carbohydrates += item.Carbohydrates;
                    viewModelToReturn.Snack.Protein       += item.Protein;
                }

                viewModelToReturn.AllDayMenuSumary.Calories = viewModelToReturn.Snack.Calories + viewModelToReturn.Breakfast.Calories
                                                              + viewModelToReturn.Dinner.Calories + viewModelToReturn.Lunch.Calories;

                viewModelToReturn.AllDayMenuSumary.Fat = viewModelToReturn.Snack.Fat + viewModelToReturn.Breakfast.Fat
                                                         + viewModelToReturn.Dinner.Fat + viewModelToReturn.Lunch.Fat;

                viewModelToReturn.AllDayMenuSumary.Protein = viewModelToReturn.Snack.Protein + viewModelToReturn.Breakfast.Protein
                                                             + viewModelToReturn.Dinner.Protein + viewModelToReturn.Lunch.Protein;

                viewModelToReturn.AllDayMenuSumary.Carbohydrates = viewModelToReturn.Snack.Carbohydrates + viewModelToReturn.Breakfast.Carbohydrates
                                                                   + viewModelToReturn.Dinner.Carbohydrates + viewModelToReturn.Lunch.Carbohydrates;
            }
            var measurementModel = _unitOfWork.Measurements.GetAllMeasurements(userId).OrderByDescending(m => m.Date).FirstOrDefault();
            var limit            = 0;

            if (measurementModel != null)
            {
                limit = (int)measurementModel.CaloricRequirement;
                viewModelToReturn.CalorieLimit.Protein       = Decimal.Round((decimal)measurementModel.Weight * 2, 2);
                viewModelToReturn.CalorieLimit.Fat           = Decimal.Round((decimal)(limit * 0.25) / 9, 2);
                viewModelToReturn.CalorieLimit.Carbohydrates = Decimal.Round(((decimal)measurementModel.CaloricRequirement - (viewModelToReturn.CalorieLimit.Fat * 9 + viewModelToReturn.CalorieLimit.Protein * 4)) / 4, 2);
            }
            viewModelToReturn.CalorieLimit.Calories = limit;
            return(View(viewModelToReturn));
        }