Ejemplo n.º 1
0
        public List <AdGridViewModel> GetPageForAdGrid(PageModel pageModel, out int count, out int maxPrice)
        {
            List <Ad> sourceEntities;

            switch (pageModel.ColumnName.ToLower())
            {
            case "name":
                sourceEntities = _repository.GetAdGrid(pageModel.SearchString, pageModel.CountryId);
                break;

            default:
                sourceEntities = _repository.GetAdGrid(pageModel.CountryId);
                break;
            }

            if (sourceEntities == null)
            {
                throw new Exception(LOCALIZATION_AD_NOT_FOUND);
            }
            sourceEntities = _repository.OrderAdsByColumn(sourceEntities, pageModel.SortColumn);
            maxPrice       = (int)_repository.GetMaximumPriceForAd();
            count          = sourceEntities.Count;

            var entities = _repository.GetAdPage(sourceEntities, pageModel.PageIndex, pageModel.PageSize);

            if (entities == null)
            {
                throw new Exception(LOCALIZATION_AD_NOT_FOUND);
            }

            var list = AdMapper.MapToAdGridModel(entities);

            foreach (var ad in list)
            {
                ad.IsInWishlist = _wishlistRepository.Exists(ad.ID, pageModel.CurrentUser);
            }

            return(list);
        }