From 7654419fbff70304296a86e073e2d8edcf9ef01f Mon Sep 17 00:00:00 2001 From: Super <47396430@qq.com> Date: Tue, 7 Apr 2020 17:55:09 +0800 Subject: [PATCH] Close #9: Complete gift card template ExtraProperties input feature --- .../Dtos/CreateUpdateGiftCardTemplateDto.cs | 4 ++- .../GiftCardManagementWebAutoMapperProfile.cs | 11 ++++++- .../GiftCardTemplate/CreateModal.cshtml.cs | 8 +++-- .../GiftCardTemplate/EditModal.cshtml.cs | 10 +++++-- .../CreateUpdateGiftCardTemplateViewModel.cs | 30 +++++++++++++++++++ 5 files changed, 56 insertions(+), 7 deletions(-) create mode 100644 src/EasyAbp.GiftCardManagement.Web/Pages/GiftCardManagement/GiftCardTemplates/GiftCardTemplate/ViewModels/CreateUpdateGiftCardTemplateViewModel.cs diff --git a/src/EasyAbp.GiftCardManagement.Application.Contracts/EasyAbp/GiftCardManagement/GiftCardTemplates/Dtos/CreateUpdateGiftCardTemplateDto.cs b/src/EasyAbp.GiftCardManagement.Application.Contracts/EasyAbp/GiftCardManagement/GiftCardTemplates/Dtos/CreateUpdateGiftCardTemplateDto.cs index 228d8c0..086c101 100644 --- a/src/EasyAbp.GiftCardManagement.Application.Contracts/EasyAbp/GiftCardManagement/GiftCardTemplates/Dtos/CreateUpdateGiftCardTemplateDto.cs +++ b/src/EasyAbp.GiftCardManagement.Application.Contracts/EasyAbp/GiftCardManagement/GiftCardTemplates/Dtos/CreateUpdateGiftCardTemplateDto.cs @@ -23,6 +23,8 @@ public class CreateUpdateGiftCardTemplateDto [DisplayName("GiftCardTemplateAnonymousConsumptionAllowed")] public bool AnonymousConsumptionAllowed { get; set; } - + + [DisplayName("GiftCardTemplateExtraProperties")] + public Dictionary ExtraProperties { get; set; } } } \ No newline at end of file diff --git a/src/EasyAbp.GiftCardManagement.Web/GiftCardManagementWebAutoMapperProfile.cs b/src/EasyAbp.GiftCardManagement.Web/GiftCardManagementWebAutoMapperProfile.cs index 3f2a516..ce034d8 100644 --- a/src/EasyAbp.GiftCardManagement.Web/GiftCardManagementWebAutoMapperProfile.cs +++ b/src/EasyAbp.GiftCardManagement.Web/GiftCardManagementWebAutoMapperProfile.cs @@ -1,7 +1,10 @@ +using System.Collections.Generic; using EasyAbp.GiftCardManagement.GiftCardTemplates.Dtos; using EasyAbp.GiftCardManagement.GiftCards.Dtos; using AutoMapper; using EasyAbp.GiftCardManagement.Web.Pages.GiftCardManagement.GiftCards.GiftCard.ViewModels; +using EasyAbp.GiftCardManagement.Web.Pages.GiftCardManagement.GiftCardTemplates.GiftCardTemplate.ViewModels; +using Newtonsoft.Json; using Volo.Abp.AutoMapper; namespace EasyAbp.GiftCardManagement.Web @@ -13,7 +16,13 @@ public GiftCardManagementWebAutoMapperProfile() /* 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().ForMember( + model => model.ExtraProperties, + opt => opt.MapFrom(src => JsonConvert.SerializeObject(src.ExtraProperties))); + CreateMap(MemberList.Source) + .ForMember(dto => dto.ExtraProperties, + opt => opt.MapFrom(src => + JsonConvert.DeserializeObject>(src.ExtraProperties))); CreateMap().Ignore(model => model.Password); CreateMap().Ignore(dto => dto.Password); CreateMap(MemberList.Source); diff --git a/src/EasyAbp.GiftCardManagement.Web/Pages/GiftCardManagement/GiftCardTemplates/GiftCardTemplate/CreateModal.cshtml.cs b/src/EasyAbp.GiftCardManagement.Web/Pages/GiftCardManagement/GiftCardTemplates/GiftCardTemplate/CreateModal.cshtml.cs index b732514..6c6b192 100644 --- a/src/EasyAbp.GiftCardManagement.Web/Pages/GiftCardManagement/GiftCardTemplates/GiftCardTemplate/CreateModal.cshtml.cs +++ b/src/EasyAbp.GiftCardManagement.Web/Pages/GiftCardManagement/GiftCardTemplates/GiftCardTemplate/CreateModal.cshtml.cs @@ -1,6 +1,7 @@ using System.Threading.Tasks; using EasyAbp.GiftCardManagement.GiftCardTemplates; using EasyAbp.GiftCardManagement.GiftCardTemplates.Dtos; +using EasyAbp.GiftCardManagement.Web.Pages.GiftCardManagement.GiftCardTemplates.GiftCardTemplate.ViewModels; using Microsoft.AspNetCore.Mvc; namespace EasyAbp.GiftCardManagement.Web.Pages.GiftCardManagement.GiftCardTemplates.GiftCardTemplate @@ -8,7 +9,7 @@ namespace EasyAbp.GiftCardManagement.Web.Pages.GiftCardManagement.GiftCardTempla public class CreateModalModel : GiftCardManagementPageModel { [BindProperty] - public CreateUpdateGiftCardTemplateDto GiftCardTemplate { get; set; } + public CreateUpdateGiftCardTemplateViewModel GiftCardTemplate { get; set; } private readonly IGiftCardTemplateAppService _service; @@ -19,7 +20,10 @@ public CreateModalModel(IGiftCardTemplateAppService service) public async Task OnPostAsync() { - await _service.CreateAsync(GiftCardTemplate); + await _service.CreateAsync( + ObjectMapper.Map( + GiftCardTemplate)); + return NoContent(); } } diff --git a/src/EasyAbp.GiftCardManagement.Web/Pages/GiftCardManagement/GiftCardTemplates/GiftCardTemplate/EditModal.cshtml.cs b/src/EasyAbp.GiftCardManagement.Web/Pages/GiftCardManagement/GiftCardTemplates/GiftCardTemplate/EditModal.cshtml.cs index f753369..b7846a7 100644 --- a/src/EasyAbp.GiftCardManagement.Web/Pages/GiftCardManagement/GiftCardTemplates/GiftCardTemplate/EditModal.cshtml.cs +++ b/src/EasyAbp.GiftCardManagement.Web/Pages/GiftCardManagement/GiftCardTemplates/GiftCardTemplate/EditModal.cshtml.cs @@ -2,6 +2,7 @@ using System.Threading.Tasks; using EasyAbp.GiftCardManagement.GiftCardTemplates; using EasyAbp.GiftCardManagement.GiftCardTemplates.Dtos; +using EasyAbp.GiftCardManagement.Web.Pages.GiftCardManagement.GiftCardTemplates.GiftCardTemplate.ViewModels; using Microsoft.AspNetCore.Mvc; namespace EasyAbp.GiftCardManagement.Web.Pages.GiftCardManagement.GiftCardTemplates.GiftCardTemplate @@ -13,7 +14,7 @@ public class EditModalModel : GiftCardManagementPageModel public Guid Id { get; set; } [BindProperty] - public CreateUpdateGiftCardTemplateDto GiftCardTemplate { get; set; } + public CreateUpdateGiftCardTemplateViewModel GiftCardTemplate { get; set; } private readonly IGiftCardTemplateAppService _service; @@ -25,12 +26,15 @@ public EditModalModel(IGiftCardTemplateAppService service) public async Task OnGetAsync() { var dto = await _service.GetAsync(Id); - GiftCardTemplate = ObjectMapper.Map(dto); + GiftCardTemplate = ObjectMapper.Map(dto); } public async Task OnPostAsync() { - await _service.UpdateAsync(Id, GiftCardTemplate); + await _service.UpdateAsync(Id, + ObjectMapper.Map( + GiftCardTemplate)); + return NoContent(); } } diff --git a/src/EasyAbp.GiftCardManagement.Web/Pages/GiftCardManagement/GiftCardTemplates/GiftCardTemplate/ViewModels/CreateUpdateGiftCardTemplateViewModel.cs b/src/EasyAbp.GiftCardManagement.Web/Pages/GiftCardManagement/GiftCardTemplates/GiftCardTemplate/ViewModels/CreateUpdateGiftCardTemplateViewModel.cs new file mode 100644 index 0000000..21b065b --- /dev/null +++ b/src/EasyAbp.GiftCardManagement.Web/Pages/GiftCardManagement/GiftCardTemplates/GiftCardTemplate/ViewModels/CreateUpdateGiftCardTemplateViewModel.cs @@ -0,0 +1,30 @@ +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; + +namespace EasyAbp.GiftCardManagement.Web.Pages.GiftCardManagement.GiftCardTemplates.GiftCardTemplate.ViewModels +{ + public class CreateUpdateGiftCardTemplateViewModel + { + [Required] + [DisplayName("GiftCardTemplateName")] + public string Name { get; set; } + + [Required] + [DisplayName("GiftCardTemplateDisplayName")] + public string DisplayName { get; set; } + + [DisplayName("GiftCardTemplateDescription")] + public string Description { get; set; } + + [TextArea(Rows = 4)] + [DisplayName("GiftCardTemplateExtraProperties")] + public string ExtraProperties { get; set; } + + [DisplayName("GiftCardTemplateTenantAllowed")] + public bool TenantAllowed { get; set; } + + [DisplayName("GiftCardTemplateAnonymousConsumptionAllowed")] + public bool AnonymousConsumptionAllowed { get; set; } + } +} \ No newline at end of file