public static IEnumerable <RealEstate> GetList(RealEstateFilter filter = null) { using (AgencyDbEntities context = new AgencyDbEntities()) { if (filter == null) { return(context.RealEstate.ToList()); } IQueryable <RealEstate> realtyQuery = context.RealEstate; if (filter.RealEstateType.HasValue) { realtyQuery = realtyQuery.Where(x => x.Discriminator == filter.RealEstateType.ToString()); } if (!string.IsNullOrWhiteSpace(filter.Address)) { return(realtyQuery.ToArray().Where(x => LevenshteinHelper.LevenshteinDistance($"{x.City} {x.Street} {x.HouseNumber} {x.FlatNumber}", filter.Address) <= LevenshteinHelper.ApplicationLevenshteinDistance || LevenshteinHelper.LevenshteinDistance(x.City + " " + x.Street, filter.Address) <= LevenshteinHelper.ApplicationLevenshteinDistance || LevenshteinHelper.LevenshteinDistance(x.HouseNumber + " " + x.FlatNumber, filter.Address) <= LevenshteinHelper.ApplicationLevenshteinMinDistance)); } return(realtyQuery.ToList()); } }
public static IEnumerable <Realtor> GetList(string name = null) { using (AgencyDbEntities context = new AgencyDbEntities()) { if (!string.IsNullOrEmpty(name)) { return(context.Realtor.ToArray() .Where(x => LevenshteinHelper.LevenshteinDistance (x.LastName + " " + x.FirstName + " " + x.Patronymic, name) <= LevenshteinHelper.ApplicationLevenshteinDistance || (x.LastName + " " + x.FirstName + " " + x.Patronymic).Contains(name)) .ToList()); } return(context.Realtor.ToList()); } }