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