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)); }
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)); }
public WishlistAdGridModel GetAdAsAdWishlistGridModel(Guid id) { var entity = _repository.GetAdWithDetails(id); if (entity == null) { throw new Exception(LOCALIZATION_AD_NOT_FOUND); } return(AdMapper.MapToWishlistAdGridModel(entity)); }
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)); }
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); }
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)); }
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); }
private List <AdGridViewModel> LoadRelatedAdsForCategories(Guid currentCategoryId) { var relatedAds = RecursivelyLoadRelatedAdsForCategory(currentCategoryId); return(AdMapper.MapToAdGridModel(relatedAds)); }