public Task <List <FlatOwnerFamily> > List(FlatOwnerFamilySearchParams searchParams)
        {
            var taskResult = Task.Run(() =>
            {
                using (var context = new DbContext())
                {
                    var ctx = (from msf in context.MapsSocietiesToFacilities
                               join f in context.Facilities on msf.FacilityId equals f.Id
                               join flr in context.Floors on f.Id equals flr.FacilityId
                               join fls in context.Flats on flr.Id equals fls.FloorId
                               join mffo in context.MapsFlatToFlatOwner on fls.Id equals mffo.FlatId
                               join fo in context.FlatOwners on mffo.FlatOwnerId equals fo.Id
                               join fof in context.FlatOwnerFamilies on fo.Id equals fof.FlatOwnerId
                               where msf.SocietyId == searchParams.SocietyId
                               select fof);


                    if (searchParams.FlatOwnerId.HasValue)
                    {
                        ctx = ctx.Where(c => c.FlatOwnerId == searchParams.FlatOwnerId.Value);
                    }

                    return(ctx
                           .Include(g => g.Gender)
                           .Include(r => r.Relationship)
                           .Include(f => f.FlatOwner)
                           .Include(f => f.FlatOwner.Gender)
                           .Include(s => s.Approvals)
                           .Include(s => s.Comments)
                           .ToList());
                }
            });

            return(taskResult);
        }
示例#2
0
 public Task <List <FlatOwnerFamily> > List(FlatOwnerFamilySearchParams searchParams)
 {
     return(_flatOwnerFamilyRepository.List(searchParams));
 }