Ejemplo n.º 1
0
        public bool Add(AdCreateModel entity)
        {
            #region Pictures Manipulation
            List <AdDetailPicture> pictures = new List <AdDetailPicture>();
            if (entity.FilesAsListOfByteArray != null && entity.FilesAsListOfByteArray.Count > 0)
            {
                foreach (var file in entity.FilesAsListOfByteArray)
                {
                    pictures.Add(new AdDetailPicture
                    {
                        File       = file,
                        CreatedBy  = entity.CreatedBy,
                        CreatedAt  = entity.CreatedAt,
                        ModifiedAt = entity.ModifiedAt,
                        ModifiedBy = entity.ModifiedBy,
                    });
                }

                entity.MainPictureThumbnail = MagiskImageWrapper.MakeThumbnailImage(System.Convert.FromBase64String(entity.MainPictureFile));
            }
            #endregion

            var ad = AdMapper.MapAdFromAdCreateModel(entity, pictures);

            return(_repository.Add(ad));
        }
Ejemplo n.º 2
0
        public List <AdProductsModel> GetAdGridModel(Guid countryId)
        {
            var entities = _repository.GetAdGrid(countryId);

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

            return(AdMapper.MapToAdProductsModel(entities));
        }
Ejemplo n.º 3
0
        public WishlistAdGridModel GetAdAsAdWishlistGridModel(Guid id)
        {
            var entity = _repository.GetAdWithDetails(id);

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

            return(AdMapper.MapToWishlistAdGridModel(entity));
        }
Ejemplo n.º 4
0
        public AdProductsModel GetAdAsViewModel(Guid id)
        {
            CurrentAdId = id;
            var entity = _repository.GetAdWithDetails(id);

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

            return(AdMapper.MapToAdProductsModel(entity));
        }
Ejemplo n.º 5
0
        public List <AdGridViewModel> GetPageForAdGridByFilter(PageModel pageModel, FilterModel filterModel, out int count, out int maxPrice)
        {
            //business rule : retrieve subcategories for current category and apply to filtering
            List <Guid> categoryIds = new List <Guid>();

            if (filterModel.CategoryId != null && filterModel.CategoryId != Guid.Empty)
            {
                categoryIds = _categoryRepository.GetSubcategoriesIdForCategory((Guid)filterModel.CategoryId, pageModel.CountryId);
            }

            FilterRepositoryModel repositoryModel = FilterModelMapper.MapToFilterRepositoryModel(filterModel, categoryIds, pageModel.CountryId);
            List <Ad>             sourceEntities;

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

            default:
                sourceEntities = _repository.GetAdGridByFilters(repositoryModel);
                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);
        }
Ejemplo n.º 6
0
        public bool Update(AdEditModel entity)
        {
            Ad ad = _repository.GetAdWithDetails(entity.ID);

            if (ad == null)
            {
                throw new Exception(LOCALIZATION_GENERAL_NOT_FOUND + entity.ID);
            }

            if (entity.AdDetail != null && entity.AdDetail.AdDetailPictures != null)
            {
                foreach (var adDetailMap in entity.AdDetail.AdDetailPictures)
                {
                    ad.AdDetail.AdDetailPictures.Remove(adDetailMap);
                }
            }

            entity.MainPictureThumbnail = MagiskImageWrapper.MakeThumbnailImage(System.Convert.FromBase64String(entity.MainPictureFile));
            ad = AdMapper.MapAdFromAdEditModel(entity, ad);

            return(_repository.Update(ad));
        }
Ejemplo n.º 7
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);
        }
Ejemplo n.º 8
0
        private List <AdGridViewModel> LoadRelatedAdsForCategories(Guid currentCategoryId)
        {
            var relatedAds = RecursivelyLoadRelatedAdsForCategory(currentCategoryId);

            return(AdMapper.MapToAdGridModel(relatedAds));
        }