Пример #1
0
        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);
            }
        }
Пример #2
0
 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)} ккал");
 }
Пример #3
0
        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();
        }
Пример #4
0
 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);
 }
Пример #5
0
        /// <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);
        }
Пример #6
0
 internal static string getGenderName(Acc acc)
 {
     if (acc.Gender == Acc.Genders.MAN)
     {
         return("Мужской");
     }
     else if (acc.Gender == Acc.Genders.WOMAN)
     {
         return("Женский");
     }
     else
     {
         return(null);
     }
 }
Пример #7
0
 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);
     }
 }
Пример #8
0
        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);
        }