public void Search(string searched) { searched = searched.ToLower(); List <Employees> results = new List <Employees>(); results = AllEmployees.Where((x) => { string initials = x.FirstName.ToLower().Substring(0, 2) + x.LastName.ToLower().Substring(0, 2); return(initials.Contains(searched)); }).ToList(); List <Employees> results2 = AllEmployees.Where((x) => { string fullName = x.FirstName.ToLower() + " " + x.LastName.ToLower(); string initials = x.FirstName.ToLower().Substring(0, 2) + x.LastName.ToLower().Substring(0, 2); //string region = x.Region==null?"Unknown region" return(!(initials.Contains(searched)) && (fullName.Contains(searched) || x.Country.ToLower() == searched || x.Region.ToLower() == searched)); }).ToList(); foreach (Employees e in results2) { results.Add(e); } EmployeeResults = new ObservableCollection <Employees>(results); }
public void ModifyEntity(Employee employee) { EmployeeDTO employeeDTO = AllEmployees.Where <EmployeeDTO>(x => x.ID == employee.ID).FirstOrDefault(); if (employeeDTO == null) { employeeDTO = new EmployeeDTO() { ID = employee.ID, FIO = employee.FIO, Company = new CompanyDTO { ID = employee.Company.ID, Name = employee.Company.Name } }; AllEmployees.Add(employeeDTO); } else { AllEmployees.Remove(employeeDTO); employeeDTO = new EmployeeDTO() { ID = employee.ID, FIO = employee.FIO, Company = new CompanyDTO { ID = employee.Company.ID, Name = employee.Company.Name } }; AllEmployees.Add(employeeDTO); } }
private void DeleteEmployee() { var selected = AllEmployees.Where(e => e.EmpIsSelected).ToList(); //// TODO: Если из бд не удалится по какой-то причине, надо об этом сообщить, чтобы из коллекции тоже не удалялось. //// Либо после удаления из бд инициировать перезагрузку коллекции. //DeleteEmployeeFromDatabase(selected); //DeleteEmployeeFromCollection(selected); }
private void Search() { string searchText = null; if (!string.IsNullOrEmpty(SearchText)) { searchText = SearchText.ToLower().Trim(); Employees = new ObservableCollection <Models.Employee>(AllEmployees.Where(x => ($"{x.FirstName} {x.LastName}".ToLower().Contains(searchText)) || (x.Salary.ToString().ToLower().Contains(searchText)))); } }
public static IList <T> Find <T>(Func <T, bool> filter) where T : class { if (typeof(T) == typeof(Department)) { return(AllDepartments.Where(department => filter(department as T)).ToList() as IList <T>); } if (typeof(T) == typeof(Employee)) { return(AllEmployees.Where(empl => filter(empl as T)).ToList() as IList <T>); } throw new NotSupportedException("Type not supported"); }
private void Filter() { Employees = (SelectedDepartment.Equals(TeamName.All) ? AllEmployees : new ObservableCollection <Models.Employee>(AllEmployees.Where(x => x.Team.Equals(SelectedDepartment)))); this.EmployeeGridTitle = SelectedDepartment == TeamName.All ? "All Employees" : $"{SelectedDepartment.ToString()} Team Employees"; }
public EmployeeEntity GetEmployee(int id) { return(AllEmployees.Where(s => s.EmployeeId == id).FirstOrDefault()); }
public async Task SearchForEmployeeAsync(string criteria) { // First determine if the user is searching by employee ID (int) or name (string) int employeeID; if (int.TryParse(criteria, out employeeID)) { // Searched by ID EmployeeCollection = await Task.Run(() => new BindableCollection <Employee>(AllEmployees.Where(x => x.Id.ToString().Contains(criteria)).ToList())); } else { // Searched by name // Check if the user cleared the field, and then just display everyone once more if (String.IsNullOrEmpty(criteria)) { EmployeeCollection = new BindableCollection <Employee>(AllEmployees); } // Otherwise attempt to find employees based on the search value else { EmployeeCollection = await Task.Run(() => new BindableCollection <Employee>(AllEmployees.Where(x => x.Fullname.ToLower().Contains(criteria.ToLower())).ToList())); } } }