/// <summary> /// Индексатор /// </summary> /// <param name="iUser"></param> /// <returns></returns> public Client this[uint passport] { get { var a = new Client(); for (int i = 0; i < Clients.Count; i++) { if (Clients[i].Passport == passport && Clients[i].Passport != 0) { a = Clients[i]; } else if (Clients[i].Passport == 0) { Client f = Clients[i]; object fo = f; Client_Company co = (Client_Company)fo; if (((Client_Company)fo).Inn == passport) { a = Clients[i]; } } } return(a); } }
/// <summary> /// Сохраняет нового клиента и закрывает текущее окно /// </summary> /// <param name="Cb_Status">ComboBox выбора статуса</param> /// <param name="NumPassport">TextBox паспорта или ИНН</param> /// <param name="LstName">TextBox Фамилии</param> /// <param name="FstName">TextBox Имени</param> /// <param name="BrthDay">DatePicker Дня рождения</param> /// <param name="Bt_Rating">TextBox Кпедитного рейтинга</param> internal void SaveNewClient(ComboBox Cb_Status, TextBox NumPassport, TextBox LstName, TextBox FstName, DatePicker BrthDay, TextBox Bt_Rating) { try { bool flag = true; if (NumPassport.Text != "") { //Если клиент Компания if (((AddClient_Helper)Cb_Status.SelectedValue).Status == "COMPANY") { ///проверка ИНН на совпадение foreach (var cl in MainWindow.ML.clientData.Clients) { if (cl.Passport == 0) { object clc = cl; if (NumPassport.Text != "") { try { if (Convert.ToUInt32(NumPassport.Text) == ((Client_Company)clc).Inn) { MessageBox.Show("Клиент с таким ИНН уже существует!"); NumPassport.Text = ""; flag = false; break; } } catch { MessageBox.Show("Номер ИНН должен сосоять только из чисел"); flag = false; } } else { MessageBox.Show("Вы не заполнили все поля"); flag = false; } } } if (flag == true) { try { var client = new Client_Company(LstName.Text, Convert.ToDateTime(BrthDay.Text), Convert.ToUInt32(NumPassport.Text), "0", adress, "COMPANY"); client.Rating = Convert.ToInt32(Bt_Rating.Text); MainWindow.ML.clientData.Clients.Add(client); MainWindow.ML.LogiAll.Logis.Add(new Logi((client.Inn.ToString() + " ДОБАВЛЕН в " + (DateTime.Now).ToString()))); MainWindow.ML.LogiAll.Save(); Bt_Rating.BorderBrush = Brushes.Gray; } catch { MessageBox.Show("Рейтинг должен состоять из целых чисел"); Bt_Rating.BorderBrush = Brushes.Red; flag = false; } } } //если клиент физическое лицо else { try { // Проверка Паспорта на совпадение foreach (var cl in MainWindow.ML.clientData.Clients) { if (NumPassport.Text != "") { if (Convert.ToUInt32(NumPassport.Text) == cl.Passport) { MessageBox.Show("Клиент с таким номером паспорта уже существует!"); flag = false; NumPassport.Text = ""; break; } } else { MessageBox.Show("Вы не заполнили все поля"); flag = false; } } } catch { MessageBox.Show("Номер Паспорта должен сосоять только из чисел"); flag = false; } if (flag == true) { try { client = new Client(FstName.Text, LstName.Text, Convert.ToDateTime(BrthDay.Text), Convert.ToUInt32(NumPassport.Text), "", adress, work); client.Status = ((AddClient_Helper)Cb_Status.SelectedValue).Status; MainWindow.ML.clientData.Clients.Add(client); client.Rating = Convert.ToInt32(Bt_Rating.Text); MainWindow.ML.LogiAll.Logis.Add(new Logi((client.Passport.ToString() + " ДОБАВЛЕН в " + (DateTime.Now).ToString()))); MainWindow.ML.LogiAll.Save(); Bt_Rating.BorderBrush = Brushes.Gray; } catch { } } } } else { MessageBox.Show("Вы не заполнили все поля"); flag = false; } if (flag == true) { ///перебирает открытые окна и закрывает текущее foreach (Window window in App.Current.Windows) { if (window is AddClient) { Ev_Mes += Mes; // добавляем метод в событие window.Close(); Ev_Mes?.Invoke("Добавлен новый клиент"); } } } } catch (MyExeption e) { BrthDay.BorderBrush = Brushes.Red; NumPassport.BorderBrush = Brushes.Red; Bt_Rating.BorderBrush = Brushes.Red; MessageBox.Show("Проверьте коректность вводимых данных. " + e.Message); } }