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); }
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; }
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; }
public int GetAvailablePropertiesForListCount(PropertyListRequestDto request) { return GetAvailablePropertiesQuery(request).Count(); }
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; }
public PropertyListResponseDto GetAvailablePropertiesForList(PropertyListRequestDto request) { var result = _propertyManager.GetAvailablePropertiesForList(request); return result; }