Esempio n. 1
0
        private void Hyperlink_Click_1(object sender, RoutedEventArgs e)
        {
            bool check_on_change = true;

            if (b1.IsEnabled)
            {
                MessageBox.Show("Сначала примите изменения!");
                check_on_change = false;
            }

            if (check_on_change)
            {
                double IMT         = Math.Round((PersonalCab.CurrentUser.Weight) / (Math.Pow((Convert.ToDouble(PersonalCab.CurrentUser.Height) / 100), 2)), 1);
                int    id_goal     = 0;
                int    id_activity = 0;
                int    id_diagnos  = 0;
                bool   input_check = true;
                if (goals.SelectedItem == null)
                {
                    input_check = false;
                    MessageBox.Show("Цель не выбрана!");
                }
                if (TypeActivity.SelectedItem == null)
                {
                    input_check = false;
                    MessageBox.Show("Тип активности не выбран!");
                }
                if (Diagnoses.SelectedItem == null)
                {
                    input_check = false;
                    MessageBox.Show("Диагнозы не выбран!");
                }

                if (input_check)
                {
                    bool check = true;
                    if (IMT >= 11.3 && IMT <= 18.4) // дефицит массы тела
                    {
                        if (goals.Text == "Похудеть")
                        {
                            MessageBox.Show("Вам нельзя худеть согласно ИМТ=" + IMT);
                            check = false;
                        }
                    }
                    if (IMT >= 18.5 && IMT <= 25.0) // норма
                    {
                    }
                    if (IMT >= 25.1 && IMT <= 30.0) // предожирение
                    {
                        if (goals.Text == "Набрать вес")
                        {
                            MessageBox.Show("Вам нельзя набирать вес согласно ИМТ=" + IMT);
                            check = false;
                        }
                    }
                    if (IMT >= 30.1 && IMT <= 34.9) // Ожирение 1-й степени
                    {
                        if (goals.Text == "Набрать вес")
                        {
                            MessageBox.Show("Вам нельзя набирать вес согласно ИМТ=" + IMT);
                            check = false;
                        }
                    }
                    if (IMT >= 35.0 && IMT <= 40.0) // Ожирение 2-й степени
                    {
                        if (goals.Text == "Набрать вес")
                        {
                            MessageBox.Show("Вам нельзя набирать вес согласно ИМТ=" + IMT);
                            check = false;
                        }
                    }
                    if (IMT >= 40.1 && IMT <= 52.0) // Ожирение 3-й степени
                    {
                        if (goals.Text == "Набрать вес")
                        {
                            MessageBox.Show("Вам нельзя набирать вес согласно ИМТ=" + IMT);
                            check = false;
                        }
                    }
                    if (IMT >= 52.1 || IMT <= 11.2)
                    {
                        MessageBox.Show("Ошибка в расчетах!!!", "Что-то пошло не так:( " + IMT);
                        check = false;
                    }
                    if (check)
                    {
                        // Меняем айдишник у пользователя в бд ЦЕЛЬ
                        connection.Open();
                        cmd = new SqlCommand("SELECT ID_goal FROM Цель WHERE Цель=@cel", connection);
                        cmd.Parameters.AddWithValue("@cel", goals.Text);
                        id_goal = int.Parse(Convert.ToString(cmd.ExecuteScalar()));

                        cmd = new SqlCommand("UPDATE users SET ID_goal=@id WHERE ID_user=@id_user", connection);
                        cmd.Parameters.AddWithValue("@id", id_goal);
                        cmd.Parameters.AddWithValue("@id_user", PersonalCab.CurrentUser.user_id);
                        cmd.ExecuteNonQuery();

                        // Активность

                        cmd = new SqlCommand("SELECT ID_activity FROM Активность WHERE [Тип активности]=@cel", connection);
                        cmd.Parameters.AddWithValue("@cel", TypeActivity.Text);
                        id_activity = int.Parse(Convert.ToString(cmd.ExecuteScalar()));

                        cmd = new SqlCommand("UPDATE users SET ID_activity=@id WHERE ID_user=@id_user", connection);
                        cmd.Parameters.AddWithValue("@id", id_activity);
                        cmd.Parameters.AddWithValue("@id_user", PersonalCab.CurrentUser.user_id);
                        cmd.ExecuteNonQuery();

                        // Диагноз

                        cmd = new SqlCommand("SELECT ID_diagnoses FROM Диагнозы WHERE [Название диагноза]=@cel", connection);
                        cmd.Parameters.AddWithValue("@cel", Diagnoses.Text);
                        id_diagnos = int.Parse(Convert.ToString(cmd.ExecuteScalar()));

                        cmd = new SqlCommand("UPDATE users SET ID_diagnoses=@id WHERE ID_user=@id_user", connection);
                        cmd.Parameters.AddWithValue("@id", id_diagnos);
                        cmd.Parameters.AddWithValue("@id_user", PersonalCab.CurrentUser.user_id);
                        cmd.ExecuteNonQuery();

                        connection.Close();

                        // Инициализируем айдишники в текущий класс пользователя
                        PersonalCab.CurrentUser.id_goal         = id_goal;
                        PersonalCab.CurrentUser.id_diagnoz      = id_diagnos;
                        PersonalCab.CurrentUser.id_typeactivity = id_activity;


                        // Создаем для пользователя новую диету
                        Diet save = PersonalCab.CurrentUser.currentDiet;
                        PersonalCab.CurrentUser.currentDiet = new Diet();


                        if (Diet.IsManyDiets)
                        {
                            ListDiets = Diet.GetCollectionDiets(PersonalCab.CurrentUser.currentDiet.ID_Diets);

                            PersonalCabViewModel.SetDiets(ListDiets); // установка значения в комбобокс
                            PersonalCabViewModel.SetValueDiets(ListDiets);
                            PersonalCabViewModel.OnElementss(true, System.Windows.Visibility.Visible);
                            PersonalCab.Diets = ListDiets;
                            MessageBox.Show("Диеты подобраны. Выберите диету");
                            this.Close();
                        }
                        else
                        {
                            if (Diet.IsDiet)
                            {
                                MessageBox.Show("Диета подобрана");
                                this.Close();
                            }
                            else
                            {
                                PersonalCab.CurrentUser.currentDiet = save;
                            }
                        }
                    }
                }
            }
        }