/// <summary> /// Удаление Покатушки /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DeleteRandonnee_Click(object sender, RoutedEventArgs e) { randonnee = (Randonnee)ListViewRandonnee.SelectedItem; if (randonnee != null) { if (randonnee.Connection != null) { foreach (var v in randonnee.Connection) { v.Connection.Remove(randonnee); } } listRandonnee.Remove(randonnee); CreateConnection(); ListViewRandonnee.ItemsSource = null; ListViewRandonnee.ItemsSource = listRandonnee; } }
/// <summary> /// Добавить связь для Члена клуба /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void AddConectionMember_Click(object sender, RoutedEventArgs e) { if (MembersFromRandonnees.SelectedItem != null) { AddConnection addConnection = new AddConnection(); item = (TreeViewItem)MembersFromRandonnees.SelectedItem; foreach (var v in listBiker) { if (item.Header.ToString() == v.FIO.ToString()) { biker = v; } } ; List <Randonnee> randonnees = new List <Randonnee>(); foreach (var it in listRandonnee) { randonnees.Add(it); } DeleteAllConnectionsInList(randonnees); addConnection.StartForMembers(randonnees); addConnection.ShowDialog(); stroka = addConnection.ReternData(); if (stroka != "") { item1 = new TreeViewItem { Header = stroka }; foreach (var v in listRandonnee) { if (item1.Header.ToString() == v.Name.ToString()) { randonnee = v; } } biker.Connection.Add(randonnee); randonnee.Connection.Add(biker); CreateConnection(); } } }
/// <summary> /// Нахождение двух связанных элементов по Покатушке /// </summary> private void FindConnectiveObjectsForRandonnees() { item = (TreeViewItem)RandonneesFromMembers.SelectedItem; item1 = (TreeViewItem)item.Parent; foreach (var r in listRandonnee) { if (item1.Header.ToString() == r.Name.ToString()) { foreach (var c in r.Connection) { if (c.FIO.ToString() == item.Header.ToString()) { biker = c; randonnee = r; } } } } }
/// <summary> /// Нахождения двух связанных элементов по Члену клуба /// </summary> private void FindConnectiveObjectsForMembers() { item = (TreeViewItem)MembersFromRandonnees.SelectedItem; item1 = (TreeViewItem)item.Parent; foreach (var b in listBiker) { if (item1.Header.ToString() == b.FIO.ToString()) { foreach (var c in b.Connection) { if (c.Name.ToString() == item.Header.ToString()) { biker = b; randonnee = c; } } } } }
//Таблица Покатушки /// <summary> /// Добавление новой Покатушки /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void AddRandonnee_Click(object sender, RoutedEventArgs e) { try { AddRandnnees w = new AddRandnnees(); w.ShowDialog(); randonnee = w.Start(); if (randonnee != null) { listRandonnee.Add(randonnee); ListViewRandonnee.ItemsSource = null; ListViewRandonnee.ItemsSource = listRandonnee; item = new TreeViewItem { Header = randonnee.Name.ToString() }; RandonneesFromMembers.Items.Add(item); Save(nameFile); } } catch (InvalidOperationException) { MessageBox.Show("Не удалось создать новый элемент!", "Ошибка!"); } }
delegate void Proc(); //процедурный тип для сокращения кода в некоторых местах //Главное меню /// <summary> /// Нажата кнопка главного меню "Открыть файл" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OpenFile_Click(object sender, RoutedEventArgs e) { openFileDialog = new OpenFileDialog { InitialDirectory = NameWayFile, DefaultExt = "txt" }; if (openFileDialog.ShowDialog() == true) { if (openFileDialog.DefaultExt == "txt") { listBiker = new List <Biker>(); listRandonnee = new List <Randonnee>(); try { using (var reader = new StreamReader(openFileDialog.FileName)) { stroka = reader.ReadLine(); while (stroka != null && stroka.EndsWith("мес.") == true && listBiker.Count < 100) { biker = new Biker(); m = stroka.IndexOf("||"); biker.FIO = stroka.Substring(0, m); stroka = stroka.Substring(m + 2); m = stroka.IndexOf("||"); biker.Bike = stroka.Substring(0, m); biker.Experience = stroka.Substring(m + 2); listBiker.Add(biker); stroka = reader.ReadLine(); } while (stroka != null) { randonnee = new Randonnee(); m = stroka.IndexOf("||"); randonnee.Name = stroka.Substring(0, m); stroka = stroka.Substring(m + 2); m = stroka.IndexOf("||"); randonnee.Date = stroka.Substring(0, m); stroka = stroka.Substring(m + 2); m = stroka.IndexOf("||"); randonnee.Duration = stroka.Substring(0, m); stroka = stroka.Substring(m + 2); m = stroka.IndexOf("||"); randonnee.Distance = stroka.Substring(0, m); m = int.Parse(stroka.Substring(m + 2)); if (m != 0) { string[] mas = new string[m]; for (; m > 0; mas[--m] = reader.ReadLine()) { ; } foreach (var b in listBiker) { foreach (var v in mas) { if (b.FIO.ToString() == v.ToString()) { randonnee.Connection.Add(b); b.Connection.Add(randonnee); } } } } listRandonnee.Add(randonnee); stroka = reader.ReadLine(); } } ListViewMembers.ItemsSource = listBiker; ListViewRandonnee.ItemsSource = listRandonnee; CreateConnection(); MainMenu.Visibility = Visibility.Hidden; Tables.Visibility = Visibility.Visible; } catch (ArgumentOutOfRangeException) { MessageBox.Show("Файл поврежден!", "Ошибка!"); } catch (NullReferenceException) { MessageBox.Show("Файл поврежден!", "Ошибка!"); } catch (IOException) { MessageBox.Show("Ошибка файла!", "Ошибка!"); } } else { MessageBox.Show($"Неверный файл", "Ошибка!"); } } }