Esempio n. 1
0
        public async Task <IActionResult> GetPropertiesForUser([FromQuery] PropertyListFilter filter)
        {
            var propertiesDto = await _propertyService.GetPropertiesForUser(filter);

            var propertiesVM = new List <PropertyListViewModel>();

            foreach (var propertyDto in propertiesDto)
            {
                var propertyVm = _mapper.Map <PropertyListViewModel>(propertyDto);
                propertiesVM.Add(propertyVm);
            }
            return(Ok(propertiesVM));
        }
Esempio n. 2
0
        private async Task <List <Property> > GetFilteredProperties(PropertyListFilter filter, string userId)
        {
            var properties = await _unitOfWork.Repository <Property>().GetAllAsync(p => p.UserId == userId);

            if (filter.Status != null && filter.Category != null)
            {
                properties = properties.Where(p => p.Status == filter.Status && p.Category == filter.Category);
            }

            if (filter.Status == null && filter.Category != null)
            {
                properties = properties.Where(p => p.Category == filter.Category);
            }

            if (filter.Status != null && filter.Category == null)
            {
                properties = properties.Where(p => p.Status == filter.Status);
            }
            return(await properties.Skip(filter.Skip).Take(filter.Take).ToListAsync());
        }
Esempio n. 3
0
        public async Task <IEnumerable <PropertyListDto> > GetPropertiesForUser(PropertyListFilter filter)
        {
            var user = await _authentication.GetCurrentUserAsync();

            var properties = await GetFilteredProperties(filter, user.Id);

            var propertiesDto = new List <PropertyListDto>();

            foreach (var property in properties)
            {
                var propertyDto = _mapper.Map <PropertyListDto>(property);
                var photo       = await _unitOfWork.Repository <PropertyPhoto>().GetAsync(p => p.PropertyId == property.Id);

                if (photo != null)
                {
                    propertyDto.Image = photo.Path;
                }
                propertiesDto.Add(propertyDto);
            }

            return(propertiesDto);
        }