private void Button_Listener(object sender, RoutedEventArgs e)
        {
            Button button = (Button)sender;

            switch (button.Name)
            {
            case "FormClose":
                this.Close();
                break;

            case "btnChange":
                string sel_group = group.SelectedItem.ToString().Trim();
                string group_id  = SQLiteAdapter.GetValue($"groups WHERE groupe = '{sel_group}'", "id")[0][0];

                string new_value = "surname = '" + surname.Text.Trim() + "', " +
                                   "name = '" + name.Text.Trim() + "', " +
                                   "patronymic = '" + patronymic.Text.Trim() + "', " +
                                   "groupe = '" + group_id.Trim() + "', " +
                                   "free_study = '" + formStudy.SelectedItem.ToString().Trim() + "', " +
                                   "email = '" + email.Text.Trim() + "', " +
                                   "phone = '" + phone.Text.Trim() + "'";
                SQLiteAdapter.ChangeValueById("students", student.id, new_value);
                Helper.RefreshOCollection();
                this.Close();
                break;

            default:
                break;
            }
        }
        private void Button_Listener(object sender, RoutedEventArgs e)
        {
            Button button = (Button)sender;

            switch (button.Name)
            {
            case "FormClose":
                this.Close();
                break;

            case "AddStudent":
                string sel_group = group.SelectedItem.ToString().Trim();
                string group_id  = SQLiteAdapter.GetValue($"groups WHERE groupe = '{sel_group}'", "id")[0][0];

                SQLiteAdapter.SetValue("students",
                                       surname.Text.Trim(),
                                       name.Text.Trim(),
                                       patronymic.Text.Trim(),
                                       group_id.Trim(),
                                       formStudy.SelectedItem.ToString().Trim(),
                                       email.Text.Trim(),
                                       phone.Text.Trim()
                                       );
                Helper.RefreshOCollection();
                this.Close();
                break;

            default:
                break;
            }
        }
        public Direction_Edit(Direction direction)
        {
            InitializeComponent();

            this.direction = direction;

            controls = new List <Control>()
            {
                name, code, id_cathedra
            };

            foreach (List <string> value in SQLiteAdapter.GetValue("cathedras WHERE cathedras.id NOT IN(SELECT directions.id_cathedra FROM directions)", "cathedra"))
            {
                if (!id_cathedra.Items.Contains(value[0]))
                {
                    id_cathedra.Items.Add(value[0]);
                }
            }
            id_cathedra.Items.Add(direction.id_cathedra);

            code.Text = direction.code;
            name.Text = direction.name;
            id_cathedra.SelectedItem = direction.id_cathedra;

            // EventHandler's
            name.TextChanged             += Controls_Listener;
            code.TextChanged             += Controls_Listener;
            id_cathedra.SelectionChanged += Controls_Listener;
        }
        private void Button_Listener(object sender, RoutedEventArgs e)
        {
            Button button = (Button)sender;

            switch (button.Name)
            {
            case "FormClose":
                this.Close();
                break;

            case "btnChange":
                // Get id decan name from Employees table for adding to Cathedras table
                string cathedra_id_tmp = id_cathedra.SelectedItem.ToString().Trim();
                string cathedra_id     = SQLiteAdapter.GetValue($"cathedras WHERE cathedra = '{cathedra_id_tmp}'", "id")[0][0];

                string new_value = "code = '" + code.Text.Trim() + "', " +
                                   "name = '" + name.Text.Trim() + "', " +
                                   "id_cathedra = '" + cathedra_id.Trim() + "'";
                SQLiteAdapter.ChangeValueById("directions", direction.id, new_value);

                Helper.RefreshOCollection();
                this.Close();
                break;

            default:
                break;
            }
        }
Пример #5
0
        public Groups_Add()
        {
            InitializeComponent();

            controls = new List <Control>()
            {
                groupe, direction, form_study, enroll, end
            };

            form_study.ItemsSource = new List <string>()
            {
                "Очная", "Заочная"
            };

            foreach (List <string> groups in SQLiteAdapter.GetValue("directions", "name"))
            {
                if (!direction.Items.Contains(groups[0]))
                {
                    direction.Items.Add(groups[0]);
                }
            }

            typePract.ItemsSource = practise_Types;

            // EventHandler's
            groupe.TextChanged          += Controls_Listener;
            direction.SelectionChanged  += Controls_Listener;
            form_study.SelectionChanged += Controls_Listener;
            enroll.TextChanged          += Controls_Listener;
            end.TextChanged             += Controls_Listener;
        }
        public Cathedras_Edit(Cathedra cathedra)
        {
            InitializeComponent();
            this.cathedra = cathedra;

            controls = new List <Control>()
            {
                number, name, phone, decan
            };

            foreach (List <string> value in SQLiteAdapter.GetValue("employees WHERE employees.id NOT IN(SELECT cathedras.id_decan FROM cathedras)", "employees.surname, employees.name, employees.patronymic"))
            {
                string decan_name = value[0].Trim() + " " + value[1].Trim() + " " + value[2].Trim();
                if (!decan.Items.Contains(decan_name))
                {
                    decan.Items.Add(decan_name);
                }
            }
            decan.Items.Add(cathedra.surname.Trim() + " " + cathedra.name.Trim() + " " + cathedra.patronymic.Trim());

            number.Text        = cathedra.number;
            name.Text          = cathedra.cathedra;
            phone.Text         = cathedra.phone;
            decan.SelectedItem = cathedra.surname.Trim() + " " + cathedra.name.Trim() + " " + cathedra.patronymic.Trim();

            // EventHandler's
            number.TextChanged     += Controls_Listener;
            name.TextChanged       += Controls_Listener;
            phone.TextChanged      += Controls_Listener;
            decan.SelectionChanged += Controls_Listener;
        }
Пример #7
0
        public static List <T> GetTableByClass <T>(string table_name = null, string select = "*") where T : new()
        {
            if (table_name == null)
            {
                table_name = GetTNameByClass <T>();                   // Get table name in database by class
            }
            Type                  properties = typeof(T);
            PropertyInfo          property;
            List <T>              values = new List <T>();
            List <List <string> > tmp    = SQLiteAdapter.GetValue(table_name, select);

            foreach (List <string> column in tmp)
            {
                T ClassName = new T();

                for (int i = 0; i < properties.GetProperties().Count(); i++)
                {
                    property = properties.GetProperties().ElementAt(i);
                    if (column.Count > i)
                    {
                        property.SetValue(ClassName, column[i]);
                    }
                    else
                    {
                        break;
                    }
                }

                values.Add(ClassName);
            }

            return(values);
        }
Пример #8
0
        private List <string> Selected_Groups(List <string> selected_dir, List <List <string> > selected_course)
        {
            List <string> groups = new List <string>();

            for (int i = 0; i < selected_course.Count; i++)
            {
                for (int j = 0; j < selected_course[i].Count; j++)
                {
                    //Конвертируем курс в группу
                    int course = Convert.ToInt32(selected_course[i].ElementAt(j).Split()[0]);
                    int month  = DateTime.Today.Month - 9; // Текущий месяц - месяц поступления
                    if (month >= 0)
                    {
                        course--;
                    }
                    int enroll = DateTime.Today.Year - course; // Год поступления

                    List <List <string> > groups_arr = SQLiteAdapter.GetValue($"groups INNER JOIN directions ON directions.id=groups.direction WHERE code ='{selected_dir[i]}' AND enroll_year='{enroll}'", "groups.groupe");
                    foreach (List <string> group_tmp in groups_arr)
                    {
                        groups.Add(group_tmp[0]);
                    }
                }
            }

            return(groups);
        }
        public Student_Add()
        {
            InitializeComponent();

            controls = new List <Control>()
            {
                surname, name, patronymic, group, formStudy, email, phone
            };

            formStudy.ItemsSource = new List <string>()
            {
                "Бюджет", "Внебюджет"
            };

            foreach (List <string> groups in SQLiteAdapter.GetValue("groups", "groupe"))
            {
                if (!group.Items.Contains(groups[0]))
                {
                    group.Items.Add(groups[0]);
                }
            }

            // EventHandler's
            surname.TextChanged        += Controls_Listener;
            name.TextChanged           += Controls_Listener;
            patronymic.TextChanged     += Controls_Listener;
            group.SelectionChanged     += Controls_Listener;
            formStudy.SelectionChanged += Controls_Listener;
            email.TextChanged          += Controls_Listener;
            phone.TextChanged          += Controls_Listener;
        }
Пример #10
0
        private void Form_pract_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            combobox_type.IsEnabled = true;

            combobox_type.Items.Clear();
            List <List <string> > type_practs = SQLiteAdapter.GetValue($"pract_types INNER JOIN groups ON groups.id=pract_types.id_groupe WHERE groups.groupe='{combobox_groupe.SelectedItem}'", "pract_types.type_name");

            foreach (List <string> tmp in type_practs)
            {
                combobox_type.Items.Add(tmp[0]);
            }
        }
Пример #11
0
        public Groups_Edit(Group group)
        {
            InitializeComponent();

            this.group = group;

            controls = new List <Control>()
            {
                groupe, direction, form_study, enroll, end
            };

            form_study.ItemsSource = new List <string>()
            {
                "Очная", "Заочная"
            };
            foreach (List <string> groups in SQLiteAdapter.GetValue("directions", "name"))
            {
                if (!direction.Items.Contains(groups[0]))
                {
                    direction.Items.Add(groups[0]);
                }
            }

            groupe.Text             = group.groupe;
            direction.SelectedItem  = group.direction;
            form_study.SelectedItem = group.form_study;
            enroll.Text             = group.enroll_year;
            end.Text = group.end_year;

            List <List <string> > LGroups = SQLiteAdapter.GetValue($"pract_types INNER JOIN groups ON groups.id=pract_types.id_groupe WHERE groupe='{group.groupe}'", "pract_types.type_name");

            if (LGroups.Count > 0)
            {
                foreach (List <string> tmp in LGroups)
                {
                    practise_Types.Add(new Practise_Type {
                        type_name = tmp[0]
                    });
                    //if(!typePract.Items.Contains(tmp[0])) typePract.Items.Add(tmp[0]);
                }
            }
            typePract.ItemsSource = practise_Types;

            // EventHandler's
            groupe.TextChanged          += Controls_Listener;
            direction.SelectionChanged  += Controls_Listener;
            form_study.SelectionChanged += Controls_Listener;
            enroll.TextChanged          += Controls_Listener;
            end.TextChanged             += Controls_Listener;
        }
Пример #12
0
        private void Button_Listener(object sender, RoutedEventArgs e)
        {
            Button button = (Button)sender;

            switch (button.Name)
            {
            case "FormClose":
                this.Close();
                break;

            case "btnAdd":
                string sel_direction = direction.SelectedItem.ToString().Trim();
                string direction_id  = SQLiteAdapter.GetValue($"directions WHERE name = '{sel_direction}'", "id")[0][0];

                SQLiteAdapter.SetValue("groups",
                                       groupe.Text.Trim(),
                                       direction_id.Trim(),
                                       form_study.SelectedItem.ToString().Trim(),
                                       enroll.Text.Trim(),
                                       end.Text.Trim()
                                       );
                Helper.RefreshOCollection();

                string group_id = SQLiteAdapter.GetValue($"groups WHERE groupe='{groupe.Text.Trim()}' " +
                                                         $"AND direction='{direction_id.Trim()}' " +
                                                         $"AND form_study='{form_study.SelectedItem.ToString().Trim()}' " +
                                                         $"AND enroll_year='{enroll.Text.Trim()}'" +
                                                         $"AND end_year='{end.Text.Trim()}'", "id")[0][0];

                for (int i = 0; i < practise_Types.Count; i++)
                {
                    if (practise_Types[i].type_name.ToString().Trim().Length > 0)
                    {
                        SQLiteAdapter.SetValue("pract_types", group_id, practise_Types[i].type_name.ToString().Trim());
                    }
                }
                this.Close();
                break;

            default:
                break;
            }
        }
        private void Button_Listener(object sender, RoutedEventArgs e)
        {
            Button button = (Button)sender;

            switch (button.Name)
            {
            case "FormClose":
                this.Close();
                break;

            case "btnChange":
                string[] decan_name = decan.SelectedItem.ToString().Trim().Split();
                string   decan_id   = SQLiteAdapter.GetValue($"employees WHERE surname = '{decan_name[0]}' AND name = '{decan_name[1]}' AND patronymic = '{decan_name[2]}'", "id")[0][0];

                string new_value = "number = '" + number.Text.Trim() + "', " +
                                   "cathedra = '" + name.Text.Trim() + "', " +
                                   "phone = '" + phone.Text.Trim() + "', " +
                                   "id_decan = '" + decan_id + "'";
                SQLiteAdapter.ChangeValueById("cathedras", cathedra.id, new_value);

                Helper.RefreshOCollection();

                /*Helper.OCathedras[Helper.OCathedras.IndexOf(cathedra)] = new Cathedra
                 * {
                 *  id = cathedra.id,
                 *  number = number.Text.Trim(),
                 *  name = name.Text.Trim(),
                 *  phone = phone.Text.Trim(),
                 *  id_decan = decan.SelectedItem.ToString().Trim()
                 * }; */// Replace OCathedras with new values


                this.Close();
                break;

            default:
                break;
            }
        }
Пример #14
0
        private void Button_Listener(object sender, RoutedEventArgs e)
        {
            Button button = (Button)sender;

            switch (button.Name)
            {
            case "FormClose":
                this.Close();
                break;

            case "btnChange":
                string sel_direction = direction.SelectedItem.ToString().Trim();
                string direction_id  = SQLiteAdapter.GetValue($"directions WHERE name = '{sel_direction}'", "id")[0][0];

                string new_value = "groupe = '" + groupe.Text.Trim() + "', " +
                                   "direction = '" + direction_id.Trim() + "', " +
                                   "form_study = '" + form_study.SelectedItem.ToString().Trim() + "', " +
                                   "enroll_year = '" + enroll.Text.Trim() + "', " +
                                   "end_year = '" + end.Text.Trim() + "'";
                SQLiteAdapter.ChangeValueById("groups", group.id, new_value);
                Helper.RefreshOCollection();

                SQLiteAdapter.DeleteRowById("pract_types", $"[id_groupe]='{group.id}'");

                for (int i = 0; i < practise_Types.Count; i++)
                {
                    if (practise_Types[i].type_name.ToString().Trim().Length > 0)
                    {
                        SQLiteAdapter.SetValue("pract_types", group.id, practise_Types[i].type_name.ToString().Trim());
                    }
                }
                this.Close();
                break;

            default:
                break;
            }
        }
        private void Button_Listener(object sender, RoutedEventArgs e)
        {
            Button button = (Button)sender;

            switch (button.Name)
            {
            case "FormClose":
                this.Close();
                break;

            case "btnAdd":
                // Get id decan name from Employees table for adding to Cathedras table
                string[] decan_name = decan.SelectedItem.ToString().Trim().Split();
                string   decan_id   = SQLiteAdapter.GetValue($"employees WHERE surname = '{decan_name[0]}' AND name = '{decan_name[1]}' AND patronymic = '{decan_name[2]}'", "id")[0][0];

                SQLiteAdapter.SetValue("cathedras",
                                       number.Text.Trim(),
                                       name.Text.Trim(),
                                       phone.Text.Trim(),
                                       decan_id
                                       );
                // TODO: добавить проверку на добавление в БД
                Helper.RefreshOCollection();

                /*Helper.OCathedras.Add(new Cathedra {
                 *      id = (Helper.OCathedras.Count()+1).ToString(),
                 *      number = number.Text.Trim(),
                 *      name = name.Text.Trim(),
                 *      phone = phone.Text.Trim(),
                 *      id_decan = decan_id });*/
                this.Close();
                break;

            default:
                break;
            }
        }
Пример #16
0
        private List <string> Practise_Types()
        {
            // Получаем типы практики для выбранных групп
            string query_group = "";

            foreach (string group in groups)
            {
                query_group = query_group + $"'{group}', ";
            }
            query_group = query_group.TrimEnd(new char[] { ',', ' ' });

            // Получение списка типов практики по выбранным группам
            List <List <string> > type_practs = SQLiteAdapter.GetValue($"pract_types INNER JOIN groups ON groups.id=pract_types.id_groupe WHERE groups.groupe IN ({query_group})", "groups.groupe, pract_types.type_name");
            List <string>         practs      = new List <string>(); // Список типов практки

            /* TODO: переделать ( у всех групп должны быть совпадения по типам практики)*/

            if (type_practs.Count <= 0)
            {
                MessageBox.Show("Список типов практик у выбранных групп пуст!", "Ошибка!", MessageBoxButton.OK);
                return(null);
            }

            // Поиск групп с одинаковыми именами => обьединение
            for (int j = 0; j < type_practs.Count; j++)
            {
                for (int i = 0; i < type_practs.Count; i++)
                {
                    if (type_practs[j][0].Equals(type_practs[i][0])) // Проверка на одинаковое имя
                    {
                        foreach (string tmp in type_practs[i])
                        {
                            if (!type_practs[j].Contains(tmp))
                            {
                                type_practs[j].Add(tmp);                                // Копируем все данные из совпадающей группы в одну
                            }
                        }
                        if (i > j)
                        {
                            type_practs.RemoveAt(i); // Удаляем скопированную группу
                            i--;                     // Корректировка смещения из за удаленного элемента
                        }
                    }
                }
            }


            type_practs.ForEach(i => i.RemoveAt(0)); // Удаляем наименования групп

            for (int i = 1; i < type_practs.Count; i++)
            {
                /* Проверяем совпадают ли типы практики у двух групп, если нет, то удаляем этот тип практики, так как нам нужны только те которые 100% у всех повторяются,
                 * а следовательно если у одного нет, то по условию не пройдет и у других
                 */
                type_practs[0] = type_practs[0].Select(k => k.ToString()).Intersect(type_practs[i]).ToList();
            }
            practs = type_practs[0];

/*                for (int j = 1; j < type_practs[i].Count; j++) // 0-ый элемент - имя группы
 *              {
 *
 *                  if (type_practs[i][1].Equals(type_practs[i][j])) type_practs[i].RemoveAt(j); // Удаляем дубликаты типов практики в группах
 *              }
 *              if (type_practs[0][1].Equals(type_practs[i][1]))
 *              {
 *                  if (!practs.Contains(type_practs[i][1])) practs.Add(type_practs[i][1]);
 *              }
 *              else
 *              {
 *                  practs.Clear();
 *                  break;
 *              }*/


            /*for (int j = 1; j < type_practs.Count; j++)
             * {
             *  if (type_practs[0][0].Equals(type_practs[j][1]))
             *  {
             *      if (!practs.Contains(type_practs[j][1])) practs.Add(type_practs[j][1]);
             *  }
             *
             *  if(j == type_practs.Count - 1)
             *      type_practs.RemoveAt(0);
             * }*/

            if (practs.Count <= 0)
            {
                MessageBox.Show("Общих типов практики для выбранных курсов не найденно!\nВернитесь на первую страницу и выберите другие курсы", "Ошибка!", MessageBoxButton.OK);
                return(null);
            }

            return(practs);
        }
        public Contracts_Edit(Classes.Contracts sel_items)
        {
            InitializeComponent();

            this.sel_items = sel_items;

            contract_num.Text       = sel_items.id;
            contract_org.Text       = sel_items.contract_org;
            contract_empl.Text      = sel_items.contract_empl;
            type_pract.Text         = sel_items.type_pract;
            form_pract.ItemsSource  = Helper.Practise_Forms;
            form_pract.SelectedItem = sel_items.form_pract;
            date.SelectedDate       = Convert.ToDateTime(sel_items.date);

            dir = $"{Directory.GetCurrentDirectory()}\\documents\\contracts\\Договор №{contract_num.Text}\\";

            List <List <string> > elements = SQLiteAdapter.GetValue("contracts INNER JOIN attach ON attach.id_contract = contracts.id " +
                                                                    "INNER JOIN students ON students.id = attach.id_student " +
                                                                    "INNER JOIN groups ON groups.id = students.groupe " +
                                                                    "INNER JOIN directions ON directions.id = groups.direction " +
                                                                    $"WHERE contracts.id = '{sel_items.id}'",
                                                                    "groups.groupe, students.surname, students.name, students.patronymic");

            // TreeView fill
            this.TreeView = new ObservableCollection <Parent>();

            for (int i = 0; i < elements.Count; i++)
            {
                if (elements[i].Count > 2)                                                  // Если присутствуют отдельные строки ФИО
                {
                    elements[i][3] = $"{elements[i][1]} {elements[i][2]} {elements[i][3]}"; // Объединяем ФИО в одну строку
                    elements[i].RemoveAt(1);                                                // Удаляем Имя
                    elements[i].RemoveAt(1);                                                // Удаляем Отчестово, тоже id из за смещения на единицу после предыдущего удаления
                }
            }

            for (int j = 0; j < elements.Count; j++)
            {
                Group             groups     = Helper.OGroups.Where(k => k.groupe.Equals(elements[j][0])).Single();
                Classes.Direction directions = Helper.ODirections.Where(k => k.name.Equals(groups.direction)).Single();
                if (!this.selected_dir.Contains(directions.code))
                {
                    this.selected_dir.Add(directions.code);
                }

                for (int i = 0; i < elements.Count; i++)
                {
                    if (elements[j][0].Equals(elements[i][0])) // Проверка на одинаковое имя
                    {
                        foreach (string tmp in elements[i])
                        {
                            if (!elements[j].Contains(tmp))
                            {
                                elements[j].Add(tmp);                             // Копируем все данные из совпадающей группы в одну
                            }
                        }
                        if (i > j)
                        {
                            elements.RemoveAt(i); // Удаляем скопированную группу
                            i--;                  // Корректировка смещения из за удаленного элемента
                        }
                    }
                }
            }

            List <List <string> > elements_new = new List <List <string> >();
            for (int i = 0; i < elements.Count; i++)
            {
                elements_new.Add(new List <string>());
                for (int j = 0; j < elements[i].Count; j++)
                {
                    elements_new[i].Add(elements[i][j].ToString());
                }
            }

            for (int i = 0; i < elements_new.Count; i++)
            {
                List <Student> student = Helper.OStudents.Where(k => k.groupe.Equals(elements_new[i][0])).ToList();
                foreach (Student tmp in student)
                {
                    if (!elements_new[i].Contains($"{tmp.surname} {tmp.name} {tmp.patronymic}"))
                    {
                        elements_new[i].Add($"{tmp.surname} {tmp.name} {tmp.patronymic}");
                    }
                }
            }

            foreach (List <string> element in elements_new)
            {
                List <Child> Member = new List <Child>();

                for (int i = 1; i < element.Count; i++) // Начинаем с 1, чтобы не добавлять группы
                {
                    if (!Member.Exists(k => k.Name.Equals(element[i])))
                    {
                        Member.Add(new Child()
                        {
                            Name = element[i]
                        });
                    }
                }

                if (Member.Count != 0)
                {
                    this.TreeView.Add(new Parent()
                    {
                        Name    = element[0], // Название группы
                        Members = Member
                    });
                }
            }

            foreach (Parent parent in this.TreeView)
            {
                foreach (Child child in parent.Members)
                {
                    child.SetValue(ItemHelper.ParentProperty, parent);

                    // Отмечаем элементы полученые из БД
                    foreach (List <string> tmp in elements)
                    {
                        if (tmp.Contains(child.Name))
                        {
                            ItemHelper.SetIsChecked(child, true);
                        }
                    }
                }
            }
        }
Пример #18
0
        public ContractsFirst()
        {
            InitializeComponent();

            controls = new List <Control>()
            {
                date, contract_num, contract_org
            };

            date.SelectedDate     = DateTime.Today;
            date.DisplayDateStart = DateTime.Today;

            foreach (Practise tmp in Helper.OPractise.ToList())
            {
                if (!contract_org.Items.Contains(tmp.name))
                {
                    contract_org.Items.Add(tmp.name);
                }
            }

            // TreeView fill
            this.TreeView = new ObservableCollection <Parent>();
            List <List <string> > directions = SQLiteAdapter.GetValue("directions", "code");

            foreach (List <string> tmp in directions)
            {
                List <Child> Member = new List <Child>();

                List <List <string> > study_years = SQLiteAdapter.GetValue("groups INNER JOIN directions ON directions.id=groups.direction WHERE code ='" + tmp[0] + "'", "groups.enroll_year, groups.end_year");
                foreach (List <string> tmpYears in study_years)
                {
                    int enroll = Convert.ToInt32(tmpYears[0]); // Год поступления
                    int end    = Convert.ToInt32(tmpYears[1]); // Год окончания

                    //Вычислить курс
                    // Месяц и Год текущий - Месяц и Год поступления
                    int course = DateTime.Today.Year - enroll;
                    int month  = DateTime.Today.Month - 9;
                    if (month >= 0)
                    {
                        course++;
                    }

                    if (!Member.Exists(i => i.Name.Equals(course + " курс")))
                    {
                        Member.Add(new Child()
                        {
                            Name = course + " курс"
                        });
                    }
                }

                if (Member.Count != 0)
                {
                    this.TreeView.Add(new Parent()
                    {
                        Name    = tmp[0],
                        Members = Member
                    });
                }
            }

            foreach (Parent parent in this.TreeView)
            {
                foreach (Child child in parent.Members)
                {
                    child.SetValue(ItemHelper.ParentProperty, parent);
                }
            }

            // EventHandler's
            date.SelectedDateChanged      += Controls_Listener;
            contract_num.TextChanged      += Controls_Listener;
            contract_org.SelectionChanged += Controls_Listener;
            contract_num.PreviewTextInput += new TextCompositionEventHandler(textBox_PreviewTextInput);
        }