private void SearchButton_Click(object sender, EventArgs e) { search = new SearchClientParam( passportTextBox.Text, drivingLicenseTextBox.Text, fioTextBox.Text, phoneTextBox.Text, int.TryParse(dealsCountTextBox.Text, out int count) ? new int?(count) : null ); UpdateView(); }
// метод для поиска клиентов по указанным фильтрам (параметрам поиска) public IEnumerable <Models.Library.Client> GetClients(SearchClientParam search) { // отбираем только клиентов var queryable = Users.Where(u => u.UserType == Models.Library.Role.Client); // проверяем заполненность фильтра if (!string.IsNullOrWhiteSpace(search.FIO)) { // применяем его, проверяя вхождение строки поиска в значение поля queryable = queryable.Where(u => u.FIO.Contains(search.FIO)); } // далее - аналогично if (!string.IsNullOrWhiteSpace(search.Passport)) { queryable = queryable.Where(u => u.Passport.Contains(search.Passport)); } if (!string.IsNullOrWhiteSpace(search.Phone)) { queryable = queryable.Where(u => u.PhoneNumber.Contains(search.Phone)); } if (!string.IsNullOrWhiteSpace(search.DrivingLicense)) { queryable = queryable.Where(u => u.DrivingLicense.Contains(search.DrivingLicense)); } var seq = queryable // получаем данные из БД преобразовывая в массив .ToArray() // преобразуем в модельные объекты .Select(u => GetClientFromUser(u)); // если есть фильтр по количество сделок if (search.DealsCount.HasValue) { // то применяем LINQ и фильтруем значения return(seq.Where(c => c.DealsCount == search.DealsCount.Value)); } return(seq); }
public Clients() { InitializeComponent(); search = SearchClientParam.Empty; UpdateView(); }