Как с помощью класса определить данные о авторизированном пользователи, чтобы после вывести на след. странице оптимальное число потребления ккал о нем

вспомогательный класс:

public class AppContext
{
    private static AppContext _instance;

    public float Рост { get; set; }
    public float Вес { get; set; }
    public int ID_УРАктивности { get; set; }
    public int ID_УРСтремления { get; set; }

    public static AppContext Instance
    {
        get
        {
            if (_instance == null)
            {
                _instance = new AppContext();
            }
            return _instance;
        }
    }

    public static Регистрация GetCurrentUser()
    {
        AppContext appContext = AppContext.Instance;

        Регистрация currentUser = new Регистрация
        {
            Рост = appContext.Рост,
            Вес = appContext.Вес,
            ID_УРАктивности = appContext.ID_УРАктивности,
            ID_УРСтремления = appContext.ID_УРСтремления
        };

        return currentUser;
    }
}

Вывод значения в TextBlock

private void ostalos_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
    Регистрация currentUser = AppContext.GetCurrentUser();

    float height = (float)currentUser.Рост;
    float weight = (float)currentUser.Вес;
    int activityLevelId = currentUser.ID_УРАктивности;
    int goalLevelId = currentUser.ID_УРСтремления;

    double optimalCalories = CalculateOptimalCalories(height, weight, activityLevelId, goalLevelId);

    ostalos.Text = "Оптимальный вариант потребления калорий в день: " + optimalCalories.ToString();
}

private double CalculateOptimalCalories(float height, float weight, int activityLevelId, int goalLevelId)
{
    double basalMetabolicRate = (height * 6.25) + (weight * 10) - (5 * 20) + 5;
    double activityFactor = GetActivityFactor(activityLevelId);
    double goalFactor = GetGoalFactor(goalLevelId);

    double optimalCalories = (basalMetabolicRate * activityFactor) * goalFactor;

    return optimalCalories;
}

private double GetActivityFactor(int activityLevelId)
{
    switch (activityLevelId)
    {
        case 1: // низкий
            return 1.2;
        case 2: // средний 
            return 1.55;
        case 3: // высокий 
            return 1.725;
        default:
            return 1.2;
    }
} 

private double GetGoalFactor(int goalLevelId)
{
    switch (goalLevelId)
    {
        case 1: // похудеть
            return 0.8;
        case 2: // поддерживать вес
            return 1.0;
        case 3: // пополнеть
            return 1.2;
        default:
            return 1.0;
    }
}

диаграмма бд: 1

проблема в том, что выходит отрицательное число, а именно -141, хотя должно быть в идеале 1340 я не понимаю что я сделал не так, т.к. формула написана правильно для нахождения суточной нормы потребления калорий. возраст конечно не добавил, но поставил свой. очень буду благодарен за помощь


Ответы (0 шт):