public async Task <Diet> CreateDiet(DietDataJson dietData) { Diet diet = new Diet(); var user = await accountRepository.GetCurrentUser(); await AddDimendions(dietData.Arms, dietData.Chest, dietData.Waist, dietData.Thig, dietData.Buttocks, user); double caloricDemand = CountCaloricDemand(dietData.Weight, dietData.Height, dietData.Age, user.isMale) * dietData.DailyActivity; if (dietData.DietTarget == 2) { caloricDemand += 300; diet.Kcal = Convert.ToInt32(caloricDemand); diet.Protein = Convert.ToInt32(caloricDemand * 0.3); diet.Fat = Convert.ToInt32(caloricDemand * 0.2); diet.Carbohydrates = Convert.ToInt32(caloricDemand * 0.5); diet.IsActive = true; diet.ApplicationUserId = user.Id; diet.ApplicationUser = user; diet.Date = DateTime.Now; diet.Mass = true; diet.WeightReduction = false; diet.WeightMaintenance = false; diet.Weight = (int)dietData.Weight; } else if (dietData.DietTarget == 1) { caloricDemand -= 300; diet.Kcal = Convert.ToInt32(caloricDemand); diet.Protein = Convert.ToInt32(caloricDemand * 0.3); diet.Fat = Convert.ToInt32(caloricDemand * 0.2); diet.Carbohydrates = Convert.ToInt32(caloricDemand * 0.5); diet.IsActive = true; diet.ApplicationUserId = user.Id; diet.ApplicationUser = user; diet.Date = DateTime.Now; diet.Mass = false; diet.WeightReduction = true; diet.WeightMaintenance = false; diet.Weight = (int)dietData.Weight; } if (dietData.DietTarget == 0) { diet.Kcal = Convert.ToInt32(caloricDemand); diet.Protein = Convert.ToInt32(caloricDemand * 0.3); diet.Fat = Convert.ToInt32(caloricDemand * 0.2); diet.Carbohydrates = Convert.ToInt32(caloricDemand * 0.5); diet.IsActive = true; diet.ApplicationUserId = user.Id; diet.ApplicationUser = user; diet.Date = DateTime.Now; diet.Mass = false; diet.WeightReduction = false; diet.WeightMaintenance = true; diet.Weight = (int)dietData.Weight; await CreateMeal(4, caloricDemand, diet); } else { await CreateMeal(5, caloricDemand, diet); } await dietRepository.AddDiet(diet); user.Diets.Add(diet); await dietRepository.Save(); return(diet); }