Как с помощью класса определить данные о авторизированном пользователи, чтобы после вывести на след. странице оптимальное число потребления ккал о нем
вспомогательный класс:
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;
}
}
проблема в том, что выходит отрицательное число, а именно -141, хотя должно быть в идеале 1340 я не понимаю что я сделал не так, т.к. формула написана правильно для нахождения суточной нормы потребления калорий. возраст конечно не добавил, но поставил свой. очень буду благодарен за помощь
