public async Task <PagedCollection <PropertyInfoModel> > ListProperties(string user, PropertyFilterSpecification filter, int pageNumber, int itemsPerPage, SortOptions sortOptions)
        {
            var rootItems = await _propertyRepository.ListWithFilterAsync(new PropertyFilter(filter));

            rootItems = GetSortedProperties(rootItems, sortOptions);

            var items = _mapper.Map <IEnumerable <EstateUnit>, IEnumerable <PropertyInfoModel> >(rootItems);

            var paginatedItems = PagedCollection <PropertyInfoModel> .Create(items, pageNumber, itemsPerPage);

            foreach (var estateUnit in paginatedItems)
            {
                estateUnit.IsMarkedAsFavourite = _favouritesRepository.IsFavouriteForUser(estateUnit.Id, user);
            }

            return(paginatedItems);
        }