示例#1
0
        public Task <List <Flat> > List(FlatSearchParams searchParams)
        {
            var taskResult = Task.Run(() =>
            {
                using (var context = new DbContext())
                {
                    var qry = (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
                               select new
                    {
                        MapSocietyToFacility = msf,
                        Facility = f,
                        Floor = flr,
                        Flat = fls
                    });

                    if (searchParams.FloorId.HasValue)
                    {
                        qry = qry
                              .Where(f => f.Floor.Id == searchParams.FloorId.Value);
                    }

                    if (searchParams.SocietyId.HasValue)
                    {
                        qry = qry
                              .Where(f => f.MapSocietyToFacility.SocietyId == searchParams.SocietyId.Value);
                    }

                    if (searchParams.IsApproved.HasValue)
                    {
                        qry = qry
                              .Where(f => f.Flat.IsApproved == searchParams.IsApproved.Value);
                    }

                    if (searchParams.IsRejected.HasValue)
                    {
                        qry = qry
                              .Where(f => f.Flat.IsApproved == searchParams.IsRejected.Value);
                    }

                    return(qry
                           .Select(f => f.Flat)
                           .Include(f => f.Floor)
                           .Include(f => f.FlatType)
                           .Include(f => f.FlatParkings)
                           .Include(f => f.FlatOwners)
                           .Include(f => f.FlatOwners.Select(s => s.Flat))
                           .Include(f => f.FlatOwners.Select(s => s.FlatOwner))
                           .Include(f => f.FlatOwners.Select(s => s.FlatOwner.Gender))
                           .Include(m => m.Approvals)
                           .Include(m => m.Comments)
                           .ToList());
                }
            });

            return(taskResult);
        }
示例#2
0
        public Task <List <FlatReportResult> > Report(FlatSearchParams searchParams)
        {
            var taskResult = Task.Run(() =>
            {
                using (var context = new DbContext())
                {
                    var societyIdParameter = new SqlParameter("@SocietyId", searchParams.SocietyId);

                    var floorIdParameter = new SqlParameter("@FloorId", DBNull.Value);
                    if (searchParams.FloorId.HasValue)
                    {
                        floorIdParameter.Value = searchParams.FloorId.Value;
                    }

                    var facilityIdParameter = new SqlParameter("@FacilityId", DBNull.Value);
                    if (searchParams.FacilityId.HasValue)
                    {
                        facilityIdParameter.Value = searchParams.FacilityId.Value;
                    }

                    var flatNameParameter = new SqlParameter("@FlatName", DBNull.Value);
                    if (!string.IsNullOrEmpty(searchParams.FlatName))
                    {
                        flatNameParameter.Value = searchParams.FlatName;
                    }

                    var ownerParameter = new SqlParameter("@Owner", DBNull.Value);
                    if (!string.IsNullOrEmpty(searchParams.Owner))
                    {
                        ownerParameter.Value = searchParams.Owner;
                    }

                    var tenantParameter = new SqlParameter("@Tenant", DBNull.Value);
                    if (!string.IsNullOrEmpty(searchParams.Tenant))
                    {
                        tenantParameter.Value = searchParams.Tenant;
                    }

                    var usernameParameter = new SqlParameter("@Username", DBNull.Value);
                    if (!string.IsNullOrEmpty(searchParams.Username))
                    {
                        usernameParameter.Value = searchParams.Username;
                    }

                    var result = context.Database
                                 .SqlQuery <FlatReportResult>("GetFlatwiseOwnerTenant @SocietyId,@FloorId,@FacilityId,@FlatName,@Owner,@Tenant,@Username",
                                                              societyIdParameter, floorIdParameter, facilityIdParameter, flatNameParameter, ownerParameter, tenantParameter, usernameParameter)
                                 .ToList();

                    foreach (var item in result)
                    {
                        if (!string.IsNullOrEmpty(item.Tenants))
                        {
                            var ap          = XDocument.Parse(item.Tenants);
                            item.TenantList = new List <TenantResult>();

                            foreach (var element in ap.Descendants("TRow"))
                            {
                                var tenant  = new TenantResult();
                                tenant.Name = element.Element("Name").Value;
                                tenant.Id   = Convert.ToInt64(element.Element("Id").Value);

                                item.TenantList.Add(tenant);
                            }
                        }
                    }
                    return(result);
                }
            });

            return(taskResult);
        }
示例#3
0
 public Task <List <FlatReportResult> > Report(FlatSearchParams searchParams)
 {
     return(_flatRepository.Report(searchParams));
 }
示例#4
0
 public Task <List <Flat> > List(FlatSearchParams searchParams)
 {
     return(_flatRepository.List(searchParams));
 }