public Task <List <Complex> > List(ComplexSearchParams searchParams) { var taskResult = Task.Run(() => { using (var context = new DbContext()) { var ctx = context .ComplexList .Include(c => c.City) .Include(c => c.State) .Include(c => c.Facilities) //.Include(c => c.Facilities.Select(f => f.Societies.Select(s => s.Society))) .Include(c => c.Societies) .Include(c => c.SocietyAssets); if (searchParams.City.HasValue) { ctx = ctx.Where(c => c.CityId == searchParams.City.Value); } if (searchParams.State.HasValue) { ctx = ctx.Where(c => c.StateId == searchParams.State.Value); } if (searchParams.AmenityType.HasValue) { ctx = ctx.Where(c => c.Facilities.Any(f => f.Type == searchParams.AmenityType.Value)); } if (!string.IsNullOrEmpty(searchParams.ComplexName)) { ctx = ctx.Where(c => c.Name.Contains(searchParams.ComplexName)); } if (!string.IsNullOrEmpty(searchParams.SocietyName)) { ctx = ctx.Where(c => c.Societies.Any(f => f.Name.Contains(searchParams.SocietyName))); } return(ctx .ToList()); } }); return(taskResult); }
public Task <List <Complex> > List(ComplexSearchParams searchParams) { return(_complexRepository.List(searchParams)); }