Esempio n. 1
0
        public ActionResult List_GetProperties([DataSourceRequest]DataSourceRequest datarequest, string postCode, int? beds)
        {
            var request = new PropertyListRequestDto()
            {
                Beds = beds,
                PostCode = postCode
            };

            var response = _tenantService.GetAvailablePropertiesForList(request);

            foreach (var item in response.Items)
            {
                if (item.PropertyImageId.HasValue && item.PropertyImageId.Value != Guid.Empty)
                {
                    item.ImagePath = $"{ConfigurationManager.AppSettings["CDNPath"]}{item.PropertyId}/{item.PropertyImageId.Value}.jpg";
                }
                else
                {
                    item.ImagePath = $"{ConfigurationManager.AppSettings["CDNPath"]}/6B1E5AD9-8731-4858-AF3B-07C7B593E905.jpg";
                }
            }

            var result = new DataSourceResult()
            {
                Data = response != null ? response.Items : null,
                Total = response != null ? response.Count : 0
            };

            return Json(result);
        }
Esempio n. 2
0
        public PropertyListResponseDto GetAvailablePropertiesForList(PropertyListRequestDto request)
        {
            var items = _propertyRepository.GetAvailablePropertiesForListItems(request);
            var count = _propertyRepository.GetAvailablePropertiesForListCount(request);

            var result = new PropertyListResponseDto()
            {
                Items = items,
                Count = count
            };

            return result;
        }
Esempio n. 3
0
        public List<PropertyListItemDto> GetAvailablePropertiesForListItems(PropertyListRequestDto request)
        {
            var query = GetAvailablePropertiesQuery(request);

            var dtos = query.Select(s => new PropertyListItemDto()
            {
                PropertyId = s.PropertyId,
                Beds = s.Beds,
                Postcode = s.Address.Postcode,
                PropertyImageId = s.Images
                                .Where(w => w.PropertyId == s.PropertyId)
                                .Where(w => w.Primary)
                                .Select(w => w.PropertyImageId)
                                .FirstOrDefault()
            }).ToList();

            return dtos;
        }
Esempio n. 4
0
 public int GetAvailablePropertiesForListCount(PropertyListRequestDto request)
 {
     return GetAvailablePropertiesQuery(request).Count();
 }
Esempio n. 5
0
        private IQueryable<Property> GetAvailablePropertiesQuery(PropertyListRequestDto request)
        {
            var query = _entities.Properties
                .Include(i => i.Address)
                .Include(i => i.Tenants)
                .Include(i => i.Images)
                .Include(i => i.SignRequests)
                .Where(p => p.Tenants.Count == 0);

            if (!string.IsNullOrWhiteSpace(request.PostCode))
            {
                query = query.Where(q => q.Address.Postcode.Contains(request.PostCode));
            }

            if (request.Beds != null)
            {
                query = query.Where(q => q.Beds == request.Beds);
            }

            return query;
        }
Esempio n. 6
0
        public PropertyListResponseDto GetAvailablePropertiesForList(PropertyListRequestDto request)
        {
            var result = _propertyManager.GetAvailablePropertiesForList(request);

            return result;
        }