Beispiel #1
0
        public MacroDTO CalculateMacroFromDay(DateTime date, string userId)
        {
            var macro = new MacroDTO();
            var meals = GetAllMealsFromSpecificDay(date.ToUniversalTime(), userId);
            var data  = _dataService.GetUserInfo(userId);


            var fatFactor = 0.25;

            macro.CaloriesDemand      = Math.Round((10 * data.Weight + 6.25 * data.Height - 5 * data.Age + (data.IsMan ? 5 : -161)) * data.TrainingFactor + data.CalorieIntake);
            macro.ProteinDemand       = Math.Round(2 * data.Weight);
            macro.FatDemand           = Math.Round(macro.CaloriesDemand * fatFactor / 9);
            macro.CarbohydratesDemand = Math.Round((macro.CaloriesDemand - macro.ProteinDemand * 4 - macro.FatDemand * 9) / 4);

            foreach (var meal in meals)
            {
                foreach (Ingriedient ingriedient in meal.Ingriedients)
                {
                    macro.CarbohydratesAte += (ingriedient.Quantity / 100.0 * ingriedient.Product.Carbs);
                    macro.FatAte           += (ingriedient.Quantity / 100.0 * ingriedient.Product.Fat);
                    macro.ProteinAte       += (ingriedient.Quantity / 100.0 * ingriedient.Product.Protein);
                    macro.CaloriesAte      += (ingriedient.Quantity / 100.0 * ingriedient.Product.Calories);
                }
            }

            macro.CarbohydratesAte = Math.Round(macro.CarbohydratesAte);
            macro.FatAte           = Math.Round(macro.FatAte);
            macro.ProteinAte       = Math.Round(macro.ProteinAte);
            macro.CaloriesAte      = Math.Round(macro.CaloriesAte);
            return(macro);
        }
        public UserInfo Get()
        {
            var userId = User.Claims.Where(claim => claim.Type == ClaimTypes.NameIdentifier).FirstOrDefault().Value;

            return(_dayDataService.GetUserInfo(userId));
        }