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);
        }
Exemple #2
0
 public Task <List <Complex> > List(ComplexSearchParams searchParams)
 {
     return(_complexRepository.List(searchParams));
 }