public static double?CalculateCaloryLimit(Acc acc) { double?baseManLimit = 9.99 * acc.Weight + 6.25 * acc.Height - 4.92 * acc.Age + 5; double?baseWomanLimit = 9.99 * acc.Weight + 6.25 * acc.Height - 4.92 * acc.Age - 161; double coef = 1; if (acc.Target == Acc.Targets.WEIGHTGAINING) { coef = 1.2; } else if (acc.Target == Acc.Targets.WEIGHTLOSING) { coef = 0.8; } if (acc.Gender == Acc.Genders.MAN) { return(baseManLimit * coef); } else if (acc.Gender == Acc.Genders.WOMAN) { return(baseWomanLimit * coef); } else { return(null); } }
public static string CreateUserInformation(Acc acc) { return($"{acc.Name}\n" + $"{acc.Height} см, {acc.Weight} кг, {acc.Age} лет\n" + $"пол: {Utils.getGenderName(acc)}, цель: {Utils.getTargetName(acc)}\n" + $"Лимит калорий: {CalculateCaloryLimit(acc)} ккал"); }
public ViewModel() { //создаем джейсон с продуктами при первом запуске if (!Utils.CheckOrCreateJson()) { SendRequestToRefresh(); } //десериализуем данные из джейсонов AllDishesNames = _allDishesNames = Utils.DeserealizeJson(Dish.allDishesList, Dish.returnCleanString, ref _allDishesList); TodayMeal = _todayMeal = Utils.DeserealizeJson(Dish.todayDishesPath, Dish.returnStringWithInfo, ref _todayDishesList); _account = Utils.DeserealizeJson(Acc.AccPath); //создаем аккаунт при первом запуске if (!File.Exists(Acc.AccPath) || File.ReadAllText(Acc.AccPath).Length == 0) { CreateAcc(); } //информация о пользователе UserInfo = _userInfo = Calculator.CreateUserInformation(_account); //выводим корректную начальную сумму калорий, белков, жиров и углеводов RefreshInfo(); }
private void CreateAcc() { while (!Utils.CheckInputData(_account)) { MessageBox.Show("Нужно корректно заполнить поля. Буковки в поле 'Имя', циферки в поля 'Рост', 'Вес' и 'Возраст'", "Кто ты?", MessageBoxButton.OK, MessageBoxImage.Information); View.UserParams userParams = new View.UserParams(); userParams.ShowDialog(); _account = ViewModelUsersParameters.Acc; } Utils.SerializeToJson("acc", _account); }
/// <summary> /// Проверка валидности введенных данных для аккаунта /// </summary> internal static bool CheckInputData(Acc acc) { if (acc == null) { return(false); } bool isCorrect = !string.IsNullOrEmpty(acc.Name) && acc.Height.HasValue && acc.Weight.HasValue && acc.Age.HasValue && acc.Gender != Acc.Genders.UNKNOWN && acc.Target != Acc.Targets.UNKNOWN; return (isCorrect); }
internal static string getGenderName(Acc acc) { if (acc.Gender == Acc.Genders.MAN) { return("Мужской"); } else if (acc.Gender == Acc.Genders.WOMAN) { return("Женский"); } else { return(null); } }
internal static string getTargetName(Acc acc) { if (acc.Target == Acc.Targets.WEIGHTLOSING) { return("Похудение"); } else if (acc.Target == Acc.Targets.WEIGHTSAVING) { return("Сохранение веса"); } else if (acc.Target == Acc.Targets.WEIGHTGAINING) { return("Массонабор"); } else { return(null); } }
internal static string GetMessage(Acc acc, double?sum) { double?limit = Calculator.CalculateCaloryLimit(acc); string message = string.Empty; if (acc.Gender == Acc.Genders.MAN) { if (acc.Target == Acc.Targets.WEIGHTLOSING) { if (limit * 0.9 > sum) { message = "Можно поесть еще, жирнее ты, возможно, не станешь...но это не точно"; } else if (limit * 0.9 <= sum && limit >= sum) { message = "Вот! Вот так норм, больше сегодня не ешь! Попей водички и иди спать"; } else if (limit < sum && limit * 1.2 > sum) { message = "Таким количеством еды, которое ты сожрал сегодня, можно прокормить несколько собак или небольшого коня, например"; } else if (limit * 1.2 <= sum) { message = "Вот это жирдяй! Килограмм пятьсот, не меньше!"; } } else if (acc.Target == Acc.Targets.WEIGHTSAVING) { if (limit * 0.9 > sum) { message = "Надо поесть! Иначе будешь дрыщом"; } else if (limit * 0.9 <= sum && limit * 1.2 >= sum) { message = "Вот! Вот так норм, больше сегодня не ешь! Попей водички и иди спать"; } else if (limit * 1.2 < sum) { message = "Вот это жирдяй! Килограмм пятьсот, не меньше!"; } } else if (acc.Target == Acc.Targets.WEIGHTGAINING) { if (limit > sum) { message = "Надо поесть еще, здоровяк!"; } else if (limit <= sum) { message = "Уже нормально, но еще немного белка сделают тебя еще мощнее"; } } } else if (acc.Gender == Acc.Genders.WOMAN) { if (acc.Target == Acc.Targets.WEIGHTLOSING) { if (limit * 0.9 > sum) { message = "Можно поесть еще, жирнее ты, возможно, не станешь...но это не точно"; } else if (limit * 0.9 <= sum && limit >= sum) { message = "Вот! Вот так норм, больше сегодня не ешь! Попей водички и иди спать"; } else if (limit < sum && limit * 1.2 > sum) { message = "Таким количеством еды, которое ты сожралa сегодня, можно прокормить несколько собак или небольшого коня, например"; } else if (limit * 1.2 <= sum) { message = "Кто здесь самая толстая девочка?! Да-да, ты!"; } } else if (acc.Target == Acc.Targets.WEIGHTSAVING) { if (limit * 0.9 > sum) { message = "Надо поесть! Иначе будешь дистрофичкой"; } else if (limit * 0.9 <= sum && limit * 1.2 >= sum) { message = "Вот! Вот так норм, больше сегодня не ешь! Попей водички и иди спать"; } else if (limit * 1.2 < sum) { message = "Кто здесь самая толстая девочка?! Да-да, ты!"; } } else if (acc.Target == Acc.Targets.WEIGHTGAINING) { if (limit > sum) { message = "Надо поесть еще! Будешь большой и сильной"; } else if (limit <= sum) { message = "Уже нормально, но еще немного белка сделают тебя еще мощнее"; } } } return(message); }