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; } }
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; }
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); }
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; }
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]); } }
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; }
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; } }
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; } }
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); } } } } }
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); }