/// <summary> /// Prepare paged product template list model /// </summary> /// <param name="searchModel">Product template search model</param> /// <returns>Product template list model</returns> public virtual async Task <ProductTemplateListModel> PrepareProductTemplateListModelAsync(ProductTemplateSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //get product templates var productTemplates = (await _productTemplateService.GetAllProductTemplatesAsync()).ToPagedList(searchModel); //prepare grid model var model = new ProductTemplateListModel().PrepareToGrid(searchModel, productTemplates, () => productTemplates.Select(template => template.ToModel <ProductTemplateModel>())); return(model); }
public virtual async Task <IActionResult> ProductTemplateDelete(int id) { if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageMaintenance)) { return(AccessDeniedView()); } if ((await _productTemplateService.GetAllProductTemplatesAsync()).Count == 1) { return(ErrorJson(await _localizationService.GetResourceAsync("Admin.System.Templates.NotDeleteOnlyOne"))); } //try to get a product template with the specified id var template = await _productTemplateService.GetProductTemplateByIdAsync(id) ?? throw new ArgumentException("No template found with the specified id"); await _productTemplateService.DeleteProductTemplateAsync(template); return(new NullJsonResult()); }
public async Task CanExportProductsToXlsx() { var replacePairs = new Dictionary <string, string> { { "ProductId", "Id" }, { "ProductType", "ProductTypeId" }, { "GiftCardType", "GiftCardTypeId" }, { "Vendor", "VendorId" }, { "ProductTemplate", "ProductTemplateId" }, { "DeliveryDate", "DeliveryDateId" }, { "TaxCategory", "TaxCategoryId" }, { "ManageInventoryMethod", "ManageInventoryMethodId" }, { "ProductAvailabilityRange", "ProductAvailabilityRangeId" }, { "LowStockActivity", "LowStockActivityId" }, { "BackorderMode", "BackorderModeId" }, { "BasepriceUnit", "BasepriceUnitId" }, { "BasepriceBaseUnit", "BasepriceBaseUnitId" }, { "SKU", "Sku" }, { "DownloadActivationType", "DownloadActivationTypeId" }, { "RecurringCyclePeriod", "RecurringCyclePeriodId" }, { "RentalPricePeriod", "RentalPricePeriodId" } }; var ignore = new List <string> { "Categories", "Manufacturers", "AdminComment", "ProductType", "BackorderMode", "DownloadActivationType", "GiftCardType", "LowStockActivity", "ManageInventoryMethod", "RecurringCyclePeriod", "RentalPricePeriod", "ProductCategories", "ProductManufacturers", "ProductPictures", "ProductReviews", "ProductSpecificationAttributes", "ProductTags", "ProductAttributeMappings", "ProductAttributeCombinations", "TierPrices", "AppliedDiscounts", "ProductWarehouseInventory", "ApprovedRatingSum", "NotApprovedRatingSum", "ApprovedTotalReviews", "NotApprovedTotalReviews", "SubjectToAcl", "LimitedToStores", "Deleted", "DownloadExpirationDays", "HasTierPrices", "HasDiscountsApplied", "AvailableStartDateTimeUtc", "AvailableEndDateTimeUtc", "DisplayOrder", "CreatedOnUtc", "UpdatedOnUtc", "ProductProductTagMappings", "DiscountProductMappings", "EntityCacheKey" }; ignore.AddRange(replacePairs.Values); var product = _productRepository.Table.ToList().First(); var excelData = await _exportManager.ExportProductsToXlsxAsync(new[] { product }); var worksheet = GetWorksheets(excelData); var manager = GetPropertyManager <Product>(worksheet); manager.SetSelectList("ProductType", await ProductType.SimpleProduct.ToSelectListAsync(useLocalization: false)); manager.SetSelectList("GiftCardType", await GiftCardType.Virtual.ToSelectListAsync(useLocalization: false)); manager.SetSelectList("DownloadActivationType", await DownloadActivationType.Manually.ToSelectListAsync(useLocalization: false)); manager.SetSelectList("ManageInventoryMethod", await ManageInventoryMethod.DontManageStock.ToSelectListAsync(useLocalization: false)); manager.SetSelectList("LowStockActivity", await LowStockActivity.Nothing.ToSelectListAsync(useLocalization: false)); manager.SetSelectList("BackorderMode", await BackorderMode.NoBackorders.ToSelectListAsync(useLocalization: false)); manager.SetSelectList("RecurringCyclePeriod", await RecurringProductCyclePeriod.Days.ToSelectListAsync(useLocalization: false)); manager.SetSelectList("RentalPricePeriod", await RentalPricePeriod.Days.ToSelectListAsync(useLocalization: false)); var vendors = await _vendorService.GetAllVendorsAsync(showHidden : true); manager.SetSelectList("Vendor", vendors.Select(v => v as BaseEntity).ToSelectList(p => (p as Vendor)?.Name ?? string.Empty)); var templates = await _productTemplateService.GetAllProductTemplatesAsync(); manager.SetSelectList("ProductTemplate", templates.Select(pt => pt as BaseEntity).ToSelectList(p => (p as ProductTemplate)?.Name ?? string.Empty)); var dates = await _dateRangeService.GetAllDeliveryDatesAsync(); manager.SetSelectList("DeliveryDate", dates.Select(dd => dd as BaseEntity).ToSelectList(p => (p as DeliveryDate)?.Name ?? string.Empty)); var availabilityRanges = await _dateRangeService.GetAllProductAvailabilityRangesAsync(); manager.SetSelectList("ProductAvailabilityRange", availabilityRanges.Select(range => range as BaseEntity).ToSelectList(p => (p as ProductAvailabilityRange)?.Name ?? string.Empty)); var categories = await _taxCategoryService.GetAllTaxCategoriesAsync(); manager.SetSelectList("TaxCategory", categories.Select(tc => tc as BaseEntity).ToSelectList(p => (p as TaxCategory)?.Name ?? string.Empty)); var measureWeights = await _measureService.GetAllMeasureWeightsAsync(); manager.SetSelectList("BasepriceUnit", measureWeights.Select(mw => mw as BaseEntity).ToSelectList(p => (p as MeasureWeight)?.Name ?? string.Empty)); manager.SetSelectList("BasepriceBaseUnit", measureWeights.Select(mw => mw as BaseEntity).ToSelectList(p => (p as MeasureWeight)?.Name ?? string.Empty)); manager.Remove("ProductTags"); manager.ReadFromXlsx(worksheet, 2); AreAllObjectPropertiesPresent(product, manager, ignore.ToArray()); PropertiesShouldEqual(product, manager, replacePairs); }