diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/CreateModal.cshtml.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/CreateModal.cshtml.cs index 4ab58fe3..50dfaa70 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/CreateModal.cshtml.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/CreateModal.cshtml.cs @@ -18,7 +18,7 @@ namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.Product public class CreateModalModel : ProductsPageModel { [BindProperty] - public CreateProductViewModel Product { get; set; } + public CreateEditProductViewModel Product { get; set; } public ICollection ProductGroups { get; set; } @@ -49,10 +49,10 @@ namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.Product { MaxResultCount = LimitedResultRequestDto.MaxMaxResultCount }))?.Items .Select(dto => new SelectListItem(dto.DisplayName, dto.Id.ToString())).ToList(); - Product = new CreateProductViewModel + Product = new CreateEditProductViewModel { StoreId = storeId, - ProductDetail = new CreateProductDetailViewModel + ProductDetail = new CreateEditProductDetailViewModel { StoreId = storeId } @@ -68,9 +68,9 @@ namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.Product { var detail = await _productDetailAppService.CreateAsync( ObjectMapper - .Map(Product.ProductDetail)); + .Map(Product.ProductDetail)); - var createDto = ObjectMapper.Map(Product); + var createDto = ObjectMapper.Map(Product); createDto.ProductDetailId = detail.Id; diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/EditModal.cshtml.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/EditModal.cshtml.cs index 92be8c3b..6edfb76f 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/EditModal.cshtml.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/EditModal.cshtml.cs @@ -24,7 +24,7 @@ namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.Product public Guid Id { get; set; } [BindProperty] - public EditProductViewModel Product { get; set; } + public CreateEditProductViewModel Product { get; set; } public ICollection ProductGroups { get; set; } @@ -62,7 +62,7 @@ namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.Product var detailDto = await _productDetailAppService.GetAsync(productDto.ProductDetailId); - Product = ObjectMapper.Map(productDto); + Product = ObjectMapper.Map(productDto); Product.CategoryIds = (await _productCategoryAppService.GetListAsync(new GetProductCategoryListDto { @@ -70,8 +70,9 @@ namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.Product MaxResultCount = LimitedResultRequestDto.MaxMaxResultCount })).Items.Select(x => x.CategoryId).ToList(); - Product.ProductDetail = new EditProductDetailViewModel + Product.ProductDetail = new CreateEditProductDetailViewModel { + StoreId = detailDto.StoreId, Description = detailDto.Description }; } @@ -84,9 +85,9 @@ namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.Product await _productDetailAppService.UpdateAsync(detail.Id, ObjectMapper - .Map(Product.ProductDetail)); + .Map(Product.ProductDetail)); - var updateProductDto = ObjectMapper.Map(Product); + var updateProductDto = ObjectMapper.Map(Product); updateProductDto.ProductDetailId = detail.Id; diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/CreateProductDetailViewModel.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/CreateEditProductDetailViewModel.cs similarity index 73% rename from modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/CreateProductDetailViewModel.cs rename to modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/CreateEditProductDetailViewModel.cs index 6bc00727..a5c6c661 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/CreateProductDetailViewModel.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/CreateEditProductDetailViewModel.cs @@ -9,10 +9,14 @@ using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.Product.ViewModels { - public class CreateProductDetailViewModel : EditProductDetailViewModel + public class CreateEditProductDetailViewModel { [HiddenInput] [Display(Name = "ProductDetailStoreId")] public Guid? StoreId { get; set; } + + [TextArea(Rows = 4)] + [Display(Name = "ProductDetailDescription")] + public string Description { get; set; } } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/CreateProductViewModel.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/CreateEditProductViewModel.cs similarity index 94% rename from modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/CreateProductViewModel.cs rename to modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/CreateEditProductViewModel.cs index d5b16773..89425aa1 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/CreateProductViewModel.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/CreateEditProductViewModel.cs @@ -8,7 +8,7 @@ using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.Product.ViewModels { - public class CreateProductViewModel : IValidatableObject + public class CreateEditProductViewModel : IValidatableObject { [HiddenInput] [Display(Name = "ProductStoreId")] @@ -35,7 +35,7 @@ namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.Product.ViewM [Display(Name = "ProductDisplayName")] public string DisplayName { get; set; } - public CreateProductDetailViewModel ProductDetail { get; set; } + public CreateEditProductDetailViewModel ProductDetail { get; set; } [Required] [Placeholder("ProductAttributeNamesPlaceholder")] diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/EditProductDetailViewModel.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/EditProductDetailViewModel.cs deleted file mode 100644 index fff7ca7c..00000000 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/EditProductDetailViewModel.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; - -namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.Product.ViewModels -{ - public class EditProductDetailViewModel - { - [TextArea(Rows = 4)] - [Display(Name = "ProductDetailDescription")] - public string Description { get; set; } - } -} \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/EditProductViewModel.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/EditProductViewModel.cs deleted file mode 100644 index 0b868665..00000000 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/EditProductViewModel.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using EasyAbp.Abp.TagHelperPlus.EasySelector; -using EasyAbp.EShop.Products.Products; -using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; - -namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.Product.ViewModels -{ - public class EditProductViewModel - { - [Required] - [SelectItems("ProductGroups")] - [Display(Name = "ProductProductGroupName")] - public string ProductGroupName { get; set; } - - // [SelectItems("Categories")] - [EasySelector( - getListedDataSourceUrl: ProductsConsts.GetCategorySummaryListedDataSourceUrl, - getSingleDataSourceUrl: ProductsConsts.GetCategorySummarySingleDataSourceUrl, - keyPropertyName: "id", - textPropertyName: "displayName")] - [Display(Name = "ProductCategory")] - public List CategoryIds { get; set; } - - [Display(Name = "ProductUniqueName")] - public string UniqueName { get; set; } - - [Required] - [Display(Name = "ProductDisplayName")] - public string DisplayName { get; set; } - - public EditProductDetailViewModel ProductDetail { get; set; } - - [Required] - [Placeholder("ProductAttributeNamesPlaceholder")] - [Display(Name = "ProductAttributeNames")] - public string ProductAttributeNames { get; set; } - - [Required] - [TextArea(Rows = 4)] - [Placeholder("ProductAttributeOptionNamesPlaceholder")] - [Display(Name = "ProductAttributeOptionNames")] - public string ProductAttributeOptionNames { get; set; } - - [Display(Name = "ProductInventoryStrategy")] - public InventoryStrategy InventoryStrategy { get; set; } - - [Display(Name = "ProductDisplayOrder")] - public int DisplayOrder { get; set; } - - [Display(Name = "ProductMediaResources")] - public string MediaResources { get; set; } - - [Display(Name = "ProductIsPublished")] - public bool IsPublished { get; set; } - } -} \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/ProductsWebAutoMapperProfile.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/ProductsWebAutoMapperProfile.cs index 6cecd9e2..3204de3e 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/ProductsWebAutoMapperProfile.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/ProductsWebAutoMapperProfile.cs @@ -19,7 +19,7 @@ namespace EasyAbp.EShop.Products.Web /* You can configure your AutoMapper mapping configuration here. * Alternatively, you can split your mapping configurations * into multiple profile classes for a better organization. */ - CreateMap() + CreateMap() .Ignore(model => model.CategoryIds) .Ignore(model => model.ProductDetail) .ForSourceMember(dto => dto.Sold, opt => opt.DoNotValidate()) @@ -33,7 +33,7 @@ namespace EasyAbp.EShop.Products.Web x.ProductAttributes .Select(a => a.ProductAttributeOptions.Select(o => o.DisplayName).JoinAsString(",")) .JoinAsString(Environment.NewLine))); - CreateMap() + CreateMap() .Ignore(dto => dto.ExtraProperties) .Ignore(dto => dto.ProductDetailId) .ForSourceMember(model => model.ProductDetail, opt => opt.DoNotValidate()) @@ -48,27 +48,8 @@ namespace EasyAbp.EShop.Products.Web .Split(",", StringSplitOptions.RemoveEmptyEntries).Select(o => new CreateUpdateProductAttributeOptionDto {DisplayName = o})) }))); - CreateMap() - .Ignore(dto => dto.StoreId) - .Ignore(dto => dto.ExtraProperties) - .Ignore(dto => dto.ProductDetailId) - .ForSourceMember(model => model.ProductDetail, opt => opt.DoNotValidate()) - .ForMember(dest => dest.ProductAttributes, - opt => opt.MapFrom(x => - x.ProductAttributeNames.Split(",", StringSplitOptions.RemoveEmptyEntries).Select((s, i) => - new CreateUpdateProductAttributeDto - { - DisplayName = s, - ProductAttributeOptions = new List( - x.ProductAttributeOptionNames.SplitToLines(StringSplitOptions.RemoveEmptyEntries)[i] - .Split(",", StringSplitOptions.RemoveEmptyEntries).Select(o => - new CreateUpdateProductAttributeOptionDto {DisplayName = o})) - }))); - CreateMap(); - CreateMap() - .Ignore(dto => dto.ExtraProperties); - CreateMap() - .Ignore(dto => dto.StoreId) + CreateMap(); + CreateMap() .Ignore(dto => dto.ExtraProperties); CreateMap(); CreateMap()