From 75bee9b5122f29badcf8bd6bd601bab08ea5936e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=B8=A4=E6=97=AD=5BIrelia=5D?= <366601522@qq.com> Date: Mon, 10 Jul 2023 22:22:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E8=A1=A8=20=E4=B8=AA=E6=80=A7?= =?UTF-8?q?=E5=8C=96=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AppBase/IZbxBase.cs | 9 + .../CreateUpdateExportCustomUserSettingDto.cs | 33 + .../Dtos/ExportCustomUserSettingDto.cs | 37 + .../ExportCustomUserSettingGetListInput.cs | 35 + .../IExportCustomUserSettingAppService.cs | 26 + .../WininPermissionDefinitionProvider.cs | 5 + .../Permissions/WininPermissions.cs | 10 + .../AppBase/ZbxBase.cs | 69 +- .../ExportCustomUserSettingAppService.cs | 55 + .../WininApplicationAutoMapperProfile.cs | 4 + .../Localization/Winin/ar.json | 81 +- .../ExportCustomUserSetting.cs | 1 - .../IExportCustomUserSettingRepository.cs | 11 + ...stomUserSettingEfCoreQuerableExtensions.cs | 22 + .../ExportCustomUserSettingRepository.cs | 20 + .../EntityFrameworkCore/WininDbContext.cs | 17 +- .../WininEntityFrameworkCoreModule.cs | 2 + ..._Added_ExportCustomUserSetting.Designer.cs | 2087 +++++++++++++++++ ...710132440_Added_ExportCustomUserSetting.cs | 48 + .../Migrations/WininDbContextModelSnapshot.cs | 66 +- .../Menus/WininMenuContributor.cs | 6 + .../Menus/WininMenus.cs | 1 + .../CreateModal.cshtml | 18 + .../CreateModal.cshtml.cs | 27 + .../ExportCustomUserSetting/EditModal.cshtml | 19 + .../EditModal.cshtml.cs | 38 + .../ExportCustomUserSetting/Index.cshtml | 55 + .../ExportCustomUserSetting/Index.cshtml.cs | 40 + ...ateEditExportCustomUserSettingViewModel.cs | 23 + .../ExportCustomUserSetting/index.css | 0 .../ExportCustomUserSetting/index.js | 100 + .../WininWebAutoMapperProfile.cs | 4 + .../ExportCustomUserSettingAppServiceTests.cs | 28 + .../ExportCustomUserSettingDomainTests.cs | 24 + .../ExportCustomUserSettingRepositoryTests.cs | 32 + .../ExportCustomUserSetting/IndexTests.cs | 23 + 36 files changed, 3009 insertions(+), 67 deletions(-) create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/Dtos/CreateUpdateExportCustomUserSettingDto.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/Dtos/ExportCustomUserSettingDto.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/Dtos/ExportCustomUserSettingGetListInput.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/IExportCustomUserSettingAppService.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingAppService.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBaseBusiness/ExportCustomUserSetting/IExportCustomUserSettingRepository.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingEfCoreQuerableExtensions.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingRepository.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/20230710132440_Added_ExportCustomUserSetting.Designer.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/20230710132440_Added_ExportCustomUserSetting.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/CreateModal.cshtml create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/CreateModal.cshtml.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/EditModal.cshtml create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/EditModal.cshtml.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/Index.cshtml create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/Index.cshtml.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/ViewModels/CreateEditExportCustomUserSettingViewModel.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/index.css create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/index.js create mode 100644 Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.Application.Tests/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingAppServiceTests.cs create mode 100644 Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.Domain.Tests/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingDomainTests.cs create mode 100644 Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.EntityFrameworkCore.Tests/EntityFrameworkCore/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingRepositoryTests.cs create mode 100644 Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.Web.Tests/Pages/AppBaseBusiness/ExportCustomUserSetting/IndexTests.cs diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBase/IZbxBase.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBase/IZbxBase.cs index 0d64ae3..9a5450f 100644 --- a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBase/IZbxBase.cs +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBase/IZbxBase.cs @@ -13,4 +13,13 @@ public interface IZbxBase> GetPageListByFilterAsync(SfsRequestInputBase sfsRequestInputBase, bool includeDetails = false, CancellationToken cancellationToken = default); + /// + /// 【基础】-【导出Excel】【有筛选条件】 + /// + /// 查询条件 + /// 是否冗余主表数据 + /// 是否导出子表 + /// 用户ID + /// + Task ExportToExcelAsync(SfsRequestInputBase sfsRequestInputBase,bool isRedundance, Guid userId,bool isDetailExport = true); } \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/Dtos/CreateUpdateExportCustomUserSettingDto.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/Dtos/CreateUpdateExportCustomUserSettingDto.cs new file mode 100644 index 0000000..10f0cca --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/Dtos/CreateUpdateExportCustomUserSettingDto.cs @@ -0,0 +1,33 @@ +using System; +using Faster.Zheng.Winin.Enums; + +namespace Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting.Dtos; + +[Serializable] +public class CreateUpdateExportCustomUserSettingDto +{ + /// + /// 用户ID + /// + public Guid ExportUserId { get; set; } + + /// + /// 用户姓名 + /// + public string ExportUserName { get; set; } + + /// + /// 列名 + /// + public string ExportColumnName { get; set; } + + /// + /// 表名 + /// + public string ExportTableName { get; set; } + + /// + /// 导出设置项 + /// + public Enum_ExportCustomUserSetting CustomUserSetting { get; set; } +} \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/Dtos/ExportCustomUserSettingDto.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/Dtos/ExportCustomUserSettingDto.cs new file mode 100644 index 0000000..41e9544 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/Dtos/ExportCustomUserSettingDto.cs @@ -0,0 +1,37 @@ +using System; +using Faster.Zheng.Winin.Enums; +using Volo.Abp.Application.Dtos; + +namespace Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting.Dtos; + +/// +/// 用户个型导出配置 +/// +[Serializable] +public class ExportCustomUserSettingDto : AuditedEntityDto +{ + /// + /// 用户ID + /// + public Guid ExportUserId { get; set; } + + /// + /// 用户姓名 + /// + public string ExportUserName { get; set; } + + /// + /// 列名 + /// + public string ExportColumnName { get; set; } + + /// + /// 表名 + /// + public string ExportTableName { get; set; } + + /// + /// 导出设置项 + /// + public Enum_ExportCustomUserSetting CustomUserSetting { get; set; } +} \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/Dtos/ExportCustomUserSettingGetListInput.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/Dtos/ExportCustomUserSettingGetListInput.cs new file mode 100644 index 0000000..3911165 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/Dtos/ExportCustomUserSettingGetListInput.cs @@ -0,0 +1,35 @@ +using System; +using System.ComponentModel; +using Faster.Zheng.Winin.Enums; +using Volo.Abp.Application.Dtos; + +namespace Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting.Dtos; + +[Serializable] +public class ExportCustomUserSettingGetListInput : PagedAndSortedResultRequestDto +{ + /// + /// 用户ID + /// + public Guid? ExportUserId { get; set; } + + /// + /// 用户姓名 + /// + public string ExportUserName { get; set; } + + /// + /// 列名 + /// + public string ExportColumnName { get; set; } + + /// + /// 表名 + /// + public string ExportTableName { get; set; } + + /// + /// 导出设置项 + /// + public Enum_ExportCustomUserSetting? CustomUserSetting { get; set; } +} \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/IExportCustomUserSettingAppService.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/IExportCustomUserSettingAppService.cs new file mode 100644 index 0000000..3554d0f --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBaseBusiness/ExportCustomUserSetting/IExportCustomUserSettingAppService.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting.Dtos; +using Volo.Abp.Application.Services; + +namespace Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting; + + +/// +/// 用户个型导出配置 +/// +public interface IExportCustomUserSettingAppService : + ICrudAppService< + ExportCustomUserSettingDto, + Guid, + ExportCustomUserSettingGetListInput, + CreateUpdateExportCustomUserSettingDto, + CreateUpdateExportCustomUserSettingDto> +{ + /// + /// 根据用户和表名获取个性化导出 + /// + /// + Task> GetByUserIdAndExportTableNameAsync(Guid userId, string exportTableName); +} \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/Permissions/WininPermissionDefinitionProvider.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/Permissions/WininPermissionDefinitionProvider.cs index 51bbdbb..0f1d905 100644 --- a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/Permissions/WininPermissionDefinitionProvider.cs +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/Permissions/WininPermissionDefinitionProvider.cs @@ -26,6 +26,11 @@ public class WininPermissionDefinitionProvider : PermissionDefinitionProvider demoCarPermission.AddChild(WininPermissions.DemoCar.Create, L("Permission:Create")); demoCarPermission.AddChild(WininPermissions.DemoCar.Update, L("Permission:Update")); demoCarPermission.AddChild(WininPermissions.DemoCar.Delete, L("Permission:Delete")); + + var exportCustomUserSettingPermission = myGroup.AddPermission(WininPermissions.ExportCustomUserSetting.Default, L("Permission:ExportCustomUserSetting")); + exportCustomUserSettingPermission.AddChild(WininPermissions.ExportCustomUserSetting.Create, L("Permission:Create")); + exportCustomUserSettingPermission.AddChild(WininPermissions.ExportCustomUserSetting.Update, L("Permission:Update")); + exportCustomUserSettingPermission.AddChild(WininPermissions.ExportCustomUserSetting.Delete, L("Permission:Delete")); } private static LocalizableString L(string name) diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/Permissions/WininPermissions.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/Permissions/WininPermissions.cs index 1f2aa88..15e7aef 100644 --- a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/Permissions/WininPermissions.cs +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/Permissions/WininPermissions.cs @@ -36,4 +36,14 @@ public static class WininPermissions public const string Create = Default + ".Create"; public const string Delete = Default + ".Delete"; } + /// + /// 用户个型导出配置 + /// + public class ExportCustomUserSetting + { + public const string Default = GroupName + ".ExportCustomUserSetting"; + public const string Update = Default + ".Update"; + public const string Create = Default + ".Create"; + public const string Delete = Default + ".Delete"; + } } diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/AppBase/ZbxBase.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/AppBase/ZbxBase.cs index 1bc23d7..03db164 100644 --- a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/AppBase/ZbxBase.cs +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/AppBase/ZbxBase.cs @@ -10,6 +10,8 @@ using System.Threading; using System.Threading.Tasks; using AutoMapper; using Faster.Zheng.Winin.AppBase.Filters; +using Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting; +using Faster.Zheng.Winin.Enums; using Faster.Zheng.Winin.Extensions; using Faster.Zheng.Winin.Localization; using Microsoft.AspNetCore.Mvc; @@ -42,6 +44,8 @@ public class ZbxBase _mapFunc; protected IStringLocalizer _localizer => LazyServiceProvider.LazyGetRequiredService>(); + protected ExportCustomUserSettingAppService _exportCustomUserSettingAppService => LazyServiceProvider.LazyGetRequiredService(); + public ZbxBase(IRepository repository) : base(repository) { @@ -272,9 +276,10 @@ public class ZbxBase查询条件 /// 是否冗余主表数据 /// 是否导出子表 + /// 用户ID /// [HttpPost("api/[controller]/base/export-to-excel")] - public virtual async Task ExportToExcelAsync(SfsRequestInputBase sfsRequestInputBase,bool isRedundance,bool isDetailExport = true) + public virtual async Task ExportToExcelAsync(SfsRequestInputBase sfsRequestInputBase,bool isRedundance, Guid userId,bool isDetailExport = true) { var isHasDetail = false;//是否包含从表 @@ -288,14 +293,31 @@ public class ZbxBasep.Name.ToLower()!="details").ToArray();//去除details属性否则导出时会带出来 + var mainProperties= mainAllProperties.Where(p=>p.Name!= "Details").ToArray();//去除details属性否则导出时会带出来 + + #region 用户个性导出 + + //获取个型导出的字段 + var show = await _exportCustomUserSettingAppService.GetByUserIdAndExportTableNameAsync(userId, typeof(TEntity).Name); + var notShowUserColumn = show.Where(p => p.CustomUserSetting == Enum_ExportCustomUserSetting.No).Select(p => p.ExportColumnName).ToList(); + if (show.Count == 0) + { + //如果没有就都导出 + } + else + { + mainProperties = mainProperties.Where(p =>!notShowUserColumn.Contains(p.Name)).ToArray();//去除details属性否则导出时会带出来 + } + + #endregion + IRow headerRow = sheet.CreateRow(0); for (int i = 0; i < mainProperties.Length; i++) { var englishName=mainProperties[i].Name; //本地化 - var localizerName = _localizer[typeof(TEntityDto).Name.Replace("Dto","") + englishName]; + var localizerName = _localizer[typeof(TEntity).Name+ englishName]; headerRow.CreateCell(i).SetCellValue(localizerName); } @@ -431,15 +453,6 @@ public class ZbxBase + /// 设置排序 + /// + /// + /// + /// private IQueryable GetSortingQueryable(IQueryable entities, string sorting) { if (string.IsNullOrEmpty(sorting)) @@ -506,19 +525,19 @@ public class ZbxBase TPK.Id, TFK => TFK.MasterId, (TPK, TFK) => new { TPK, TFK }) - // .Where(result => result.TFK.StudentName == "阎致远"); - - // foreach (var result in query) - // { - // Console.WriteLine($"Customer: {result.TFK.StudentName}, Order ID: {result.TPK.SchoolName}"); - // } - //} + /// + /// 导出设置子表单元格样式 + /// + /// + /// + private static ICellStyle SetExcelDetailsColor(IWorkbook workbook) + { + var cellStyle = workbook.CreateCellStyle(); + cellStyle.FillBackgroundColor = IndexedColors.LightOrange.Index; + cellStyle.FillForegroundColor = IndexedColors.LightOrange.Index; + cellStyle.FillPattern = FillPattern.SolidForeground; + return cellStyle; + } #endregion } \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingAppService.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingAppService.cs new file mode 100644 index 0000000..19aa561 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingAppService.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Faster.Zheng.Winin.Permissions; +using Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting.Dtos; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.Application.Services; + +namespace Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting; + + +/// +/// 用户个型导出配置 +/// +public class ExportCustomUserSettingAppService : CrudAppService, + IExportCustomUserSettingAppService +{ + protected override string GetPolicyName { get; set; } = WininPermissions.ExportCustomUserSetting.Default; + protected override string GetListPolicyName { get; set; } = WininPermissions.ExportCustomUserSetting.Default; + protected override string CreatePolicyName { get; set; } = WininPermissions.ExportCustomUserSetting.Create; + protected override string UpdatePolicyName { get; set; } = WininPermissions.ExportCustomUserSetting.Update; + protected override string DeletePolicyName { get; set; } = WininPermissions.ExportCustomUserSetting.Delete; + + private readonly IExportCustomUserSettingRepository _repository; + + public ExportCustomUserSettingAppService(IExportCustomUserSettingRepository repository) : base(repository) + { + _repository = repository; + } + + protected override async Task> CreateFilteredQueryAsync(ExportCustomUserSettingGetListInput input) + { + // TODO: AbpHelper generated + return (await base.CreateFilteredQueryAsync(input)) + .WhereIf(input.ExportUserId != null, x => x.ExportUserId == input.ExportUserId) + .WhereIf(!input.ExportUserName.IsNullOrWhiteSpace(), x => x.ExportUserName.Contains(input.ExportUserName)) + .WhereIf(!input.ExportColumnName.IsNullOrWhiteSpace(), x => x.ExportColumnName.Contains(input.ExportColumnName)) + .WhereIf(!input.ExportTableName.IsNullOrWhiteSpace(), x => x.ExportTableName.Contains(input.ExportTableName)) + .WhereIf(input.CustomUserSetting != null, x => x.CustomUserSetting == input.CustomUserSetting) + ; + } + + /// + /// 根据用户和表名获取个性化导出 + /// + /// + [HttpPost("get-by-user-and-table-name")] + public virtual async Task> GetByUserIdAndExportTableNameAsync(Guid userId, string exportTableName) + { + var entitys= await _repository.GetListAsync(p => p.ExportUserId == userId && p.ExportTableName == exportTableName); + + return ObjectMapper.Map, List>(entitys); + } +} diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/WininApplicationAutoMapperProfile.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/WininApplicationAutoMapperProfile.cs index dfb61c8..44687d9 100644 --- a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/WininApplicationAutoMapperProfile.cs +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/WininApplicationAutoMapperProfile.cs @@ -2,6 +2,8 @@ using Faster.Zheng.Winin.AppBusiness.TestSchool; using Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; using Faster.Zheng.Winin.AppBusiness.DemoCar; using Faster.Zheng.Winin.AppBusiness.DemoCar.Dtos; +using Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting; +using Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting.Dtos; using AutoMapper; namespace Faster.Zheng.Winin; @@ -19,5 +21,7 @@ public class WininApplicationAutoMapperProfile : Profile CreateMap(MemberList.Source); CreateMap(); CreateMap(MemberList.Source); + CreateMap(); + CreateMap(MemberList.Source); } } diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain.Shared/Localization/Winin/ar.json b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain.Shared/Localization/Winin/ar.json index d6fdf74..bab8e7b 100644 --- a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain.Shared/Localization/Winin/ar.json +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain.Shared/Localization/Winin/ar.json @@ -1,38 +1,49 @@ { "culture": "ar", - "texts": { - "Menu:Home": "الصفحة الرئيسية", - "LongWelcomeMessage": "مرحبا بكم في التطبيق. هذا مشروع بدء تشغيل يعتمد على إطار عمل ABP. لمزيد من المعلومات ، يرجى زيارة abp.io.", - "Permission:TestSchool": "TestSchool", - "Permission:Create": "Create", - "Permission:Update": "Update", - "Permission:Delete": "Delete", - "Menu:TestSchool": "MenuTestSchool", - "TestSchool": "TestSchool", - "TestSchoolSchoolName": "TestSchoolSchoolName", - "TestSchoolOrderType": "TestSchoolOrderType", - "TestSchoolDetails": "TestSchoolDetails", - "CreateTestSchool": "CreateTestSchool", - "EditTestSchool": "EditTestSchool", - "TestSchoolDeletionConfirmationMessage": "Are you sure to delete the testSchool {0}?", - "SuccessfullyDeleted": "Successfully deleted", - "TableFilter": "TableFilter", - "Permission:TestStudentDetail": "TestStudentDetail", - "Menu:TestStudentDetail": "MenuTestStudentDetail", - "TestStudentDetail": "TestStudentDetail", - "TestStudentDetailMasterId": "TestStudentDetailMasterId", - "TestStudentDetailStudentName": "TestStudentDetailStudentName", - "TestStudentDetailOrderType": "TestStudentDetailOrderType", - "CreateTestStudentDetail": "CreateTestStudentDetail", - "EditTestStudentDetail": "EditTestStudentDetail", - "TestStudentDetailDeletionConfirmationMessage": "Are you sure to delete the testStudentDetail {0}?", - "Permission:DemoCar": "DemoCar", - "Menu:DemoCar": "MenuDemoCar", - "DemoCar": "DemoCar", - "DemoCarCarName": "DemoCarCarName", - "DemoCarCarColor": "DemoCarCarColor", - "CreateDemoCar": "CreateDemoCar", - "EditDemoCar": "EditDemoCar", - "DemoCarDeletionConfirmationMessage": "Are you sure to delete the demoCar {0}?" - } + "texts": { + "Menu:Home": "الصفحة الرئيسية", + "LongWelcomeMessage": "مرحبا بكم في التطبيق. هذا مشروع بدء تشغيل يعتمد على إطار عمل ABP. لمزيد من المعلومات ، يرجى زيارة abp.io.", + "Permission:TestSchool": "TestSchool", + "Permission:Create": "Create", + "Permission:Update": "Update", + "Permission:Delete": "Delete", + "Menu:TestSchool": "MenuTestSchool", + "TestSchool": "TestSchool", + "TestSchoolSchoolName": "TestSchoolSchoolName", + "TestSchoolOrderType": "TestSchoolOrderType", + "TestSchoolDetails": "TestSchoolDetails", + "CreateTestSchool": "CreateTestSchool", + "EditTestSchool": "EditTestSchool", + "TestSchoolDeletionConfirmationMessage": "Are you sure to delete the testSchool {0}?", + "SuccessfullyDeleted": "Successfully deleted", + "TableFilter": "TableFilter", + "Permission:TestStudentDetail": "TestStudentDetail", + "Menu:TestStudentDetail": "MenuTestStudentDetail", + "TestStudentDetail": "TestStudentDetail", + "TestStudentDetailMasterId": "TestStudentDetailMasterId", + "TestStudentDetailStudentName": "TestStudentDetailStudentName", + "TestStudentDetailOrderType": "TestStudentDetailOrderType", + "CreateTestStudentDetail": "CreateTestStudentDetail", + "EditTestStudentDetail": "EditTestStudentDetail", + "TestStudentDetailDeletionConfirmationMessage": "Are you sure to delete the testStudentDetail {0}?", + "Permission:DemoCar": "DemoCar", + "Menu:DemoCar": "MenuDemoCar", + "DemoCar": "DemoCar", + "DemoCarCarName": "DemoCarCarName", + "DemoCarCarColor": "DemoCarCarColor", + "CreateDemoCar": "CreateDemoCar", + "EditDemoCar": "EditDemoCar", + "DemoCarDeletionConfirmationMessage": "Are you sure to delete the demoCar {0}?", + "Permission:ExportCustomUserSetting": "ExportCustomUserSetting", + "Menu:ExportCustomUserSetting": "MenuExportCustomUserSetting", + "ExportCustomUserSetting": "ExportCustomUserSetting", + "ExportCustomUserSettingExportUserId": "ExportCustomUserSettingExportUserId", + "ExportCustomUserSettingExportUserName": "ExportCustomUserSettingExportUserName", + "ExportCustomUserSettingExportColumnName": "ExportCustomUserSettingExportColumnName", + "ExportCustomUserSettingExportTableName": "ExportCustomUserSettingExportTableName", + "ExportCustomUserSettingCustomUserSetting": "ExportCustomUserSettingCustomUserSetting", + "CreateExportCustomUserSetting": "CreateExportCustomUserSetting", + "EditExportCustomUserSetting": "EditExportCustomUserSetting", + "ExportCustomUserSettingDeletionConfirmationMessage": "Are you sure to delete the exportCustomUserSetting {0}?" + } } \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting.cs index 10f5c38..18ab21d 100644 --- a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting.cs +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting.cs @@ -2,7 +2,6 @@ using System.ComponentModel.DataAnnotations; using Faster.Zheng.Winin.Enums; using Volo.Abp.Domain.Entities.Auditing; -#pragma warning disable CS8618 namespace Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting; diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBaseBusiness/ExportCustomUserSetting/IExportCustomUserSettingRepository.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBaseBusiness/ExportCustomUserSetting/IExportCustomUserSettingRepository.cs new file mode 100644 index 0000000..1a9e7fe --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBaseBusiness/ExportCustomUserSetting/IExportCustomUserSettingRepository.cs @@ -0,0 +1,11 @@ +using System; +using Volo.Abp.Domain.Repositories; + +namespace Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting; + +/// +/// 用户个型导出配置 +/// +public interface IExportCustomUserSettingRepository : IRepository +{ +} diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingEfCoreQuerableExtensions.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingEfCoreQuerableExtensions.cs new file mode 100644 index 0000000..37b0496 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingEfCoreQuerableExtensions.cs @@ -0,0 +1,22 @@ +using System.Linq; +using Microsoft.EntityFrameworkCore; + +namespace Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting; + +/// +/// 用户个型导出配置 +/// +public static class ExportCustomUserSettingEfCoreQueryableExtensions +{ + public static IQueryable IncludeDetails(this IQueryable queryable, bool include = true) + { + if (!include) + { + return queryable; + } + + return queryable + // .Include(x => x.xxx) // TODO: AbpHelper generated + ; + } +} diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingRepository.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingRepository.cs new file mode 100644 index 0000000..c06007c --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingRepository.cs @@ -0,0 +1,20 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using Faster.Zheng.Winin.EntityFrameworkCore; +using Volo.Abp.Domain.Repositories.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore; + +namespace Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting; + +public class ExportCustomUserSettingRepository : EfCoreRepository, IExportCustomUserSettingRepository +{ + public ExportCustomUserSettingRepository(IDbContextProvider dbContextProvider) : base(dbContextProvider) + { + } + + public override async Task> WithDetailsAsync() + { + return (await GetQueryableAsync()).IncludeDetails(); + } +} \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/EntityFrameworkCore/WininDbContext.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/EntityFrameworkCore/WininDbContext.cs index 95cc1a5..cb0868f 100644 --- a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/EntityFrameworkCore/WininDbContext.cs +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/EntityFrameworkCore/WininDbContext.cs @@ -15,6 +15,7 @@ using Volo.Abp.TenantManagement.EntityFrameworkCore; using Faster.Zheng.Winin.AppBusiness.TestSchool; using Volo.Abp.EntityFrameworkCore.Modeling; using Faster.Zheng.Winin.AppBusiness.DemoCar; +using Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting; namespace Faster.Zheng.Winin.EntityFrameworkCore; @@ -67,6 +68,10 @@ public class WininDbContext : /// /// public DbSet DemoCars { get; set; } + /// + /// 用户个型导出配置 + /// + public DbSet ExportCustomUserSettings { get; set; } public WininDbContext(DbContextOptions options) : base(options) @@ -104,7 +109,7 @@ public class WininDbContext : b.ToTable(WininConsts.DbTablePrefix + "TestSchools", WininConsts.DbSchema, table => table.HasComment("")); b.ConfigureByConvention(); - // ֶҪӼɾ + // ���ֶ��������Ҫ���Ӽ���ɾ�� b.HasMany(q => q.Details).WithOne().HasForeignKey(d => d.MasterId).IsRequired(); /* Configure more properties here */ @@ -127,6 +132,16 @@ public class WininDbContext : b.ConfigureByConvention(); + /* Configure more properties here */ + }); + + + builder.Entity(b => + { + b.ToTable(WininConsts.DbTablePrefix + "ExportCustomUserSettings", WininConsts.DbSchema, table => table.HasComment(" 用户个型导出配置")); + b.ConfigureByConvention(); + + /* Configure more properties here */ }); } diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/EntityFrameworkCore/WininEntityFrameworkCoreModule.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/EntityFrameworkCore/WininEntityFrameworkCoreModule.cs index eeee3da..83f671c 100644 --- a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/EntityFrameworkCore/WininEntityFrameworkCoreModule.cs +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/EntityFrameworkCore/WininEntityFrameworkCoreModule.cs @@ -1,3 +1,4 @@ +using Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting; using Faster.Zheng.Winin.AppBusiness.DemoCar; using Faster.Zheng.Winin.AppBusiness.TestSchool; using System; @@ -46,6 +47,7 @@ public class WininEntityFrameworkCoreModule : AbpModule options.AddRepository(); options.AddRepository(); options.AddRepository(); + options.AddRepository(); }); Configure(options => diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/20230710132440_Added_ExportCustomUserSetting.Designer.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/20230710132440_Added_ExportCustomUserSetting.Designer.cs new file mode 100644 index 0000000..950dbd8 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/20230710132440_Added_ExportCustomUserSetting.Designer.cs @@ -0,0 +1,2087 @@ +// +using System; +using Faster.Zheng.Winin.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Volo.Abp.EntityFrameworkCore; + +#nullable disable + +namespace Faster.Zheng.Winin.Migrations +{ + [DbContext(typeof(WininDbContext))] + [Migration("20230710132440_Added_ExportCustomUserSetting")] + partial class AddedExportCustomUserSetting + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) + .HasAnnotation("ProductVersion", "7.0.1") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting.ExportCustomUserSetting", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("CustomUserSetting") + .HasColumnType("int"); + + b.Property("ExportColumnName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExportTableName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExportUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExportUserName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.HasKey("Id"); + + b.ToTable("AppExportCustomUserSettings", null, t => + { + t.HasComment(" 用户个型导出配置"); + }); + }); + + modelBuilder.Entity("Faster.Zheng.Winin.AppBusiness.DemoCar.DemoCar", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CarColor") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CarName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.HasKey("Id"); + + b.ToTable("AppDemoCars", null, t => + { + t.HasComment(""); + }); + }); + + modelBuilder.Entity("Faster.Zheng.Winin.AppBusiness.TestSchool.TestSchool", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("OrderType") + .HasColumnType("int"); + + b.Property("SchoolName") + .IsRequired() + .HasColumnType("nvarchar(450)"); + + b.HasKey("Id"); + + b.HasIndex("SchoolName", "OrderType"); + + b.ToTable("AppTestSchools", null, t => + { + t.HasComment(""); + }); + }); + + modelBuilder.Entity("Faster.Zheng.Winin.AppBusiness.TestSchool.TestStudentDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("MasterId") + .HasColumnType("uniqueidentifier"); + + b.Property("OrderType") + .HasColumnType("int"); + + b.Property("StudentName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("MasterId"); + + b.ToTable("AppTestStudentDetails", null, t => + { + t.HasComment(""); + }); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicationName") + .HasMaxLength(96) + .HasColumnType("nvarchar(96)") + .HasColumnName("ApplicationName"); + + b.Property("BrowserInfo") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)") + .HasColumnName("BrowserInfo"); + + b.Property("ClientId") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("ClientId"); + + b.Property("ClientIpAddress") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("ClientIpAddress"); + + b.Property("ClientName") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("ClientName"); + + b.Property("Comments") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("Comments"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CorrelationId") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("CorrelationId"); + + b.Property("Exceptions") + .HasColumnType("nvarchar(max)"); + + b.Property("ExecutionDuration") + .HasColumnType("int") + .HasColumnName("ExecutionDuration"); + + b.Property("ExecutionTime") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("HttpMethod") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)") + .HasColumnName("HttpMethod"); + + b.Property("HttpStatusCode") + .HasColumnType("int") + .HasColumnName("HttpStatusCode"); + + b.Property("ImpersonatorTenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("ImpersonatorTenantId"); + + b.Property("ImpersonatorTenantName") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("ImpersonatorTenantName"); + + b.Property("ImpersonatorUserId") + .HasColumnType("uniqueidentifier") + .HasColumnName("ImpersonatorUserId"); + + b.Property("ImpersonatorUserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("ImpersonatorUserName"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("TenantName") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("TenantName"); + + b.Property("Url") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("Url"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasColumnName("UserId"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("UserName"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "ExecutionTime"); + + b.HasIndex("TenantId", "UserId", "ExecutionTime"); + + b.ToTable("AbpAuditLogs", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AuditLogId") + .HasColumnType("uniqueidentifier") + .HasColumnName("AuditLogId"); + + b.Property("ExecutionDuration") + .HasColumnType("int") + .HasColumnName("ExecutionDuration"); + + b.Property("ExecutionTime") + .HasColumnType("datetime2") + .HasColumnName("ExecutionTime"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("MethodName") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("MethodName"); + + b.Property("Parameters") + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasColumnName("Parameters"); + + b.Property("ServiceName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("ServiceName"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("AuditLogId"); + + b.HasIndex("TenantId", "ServiceName", "MethodName", "ExecutionTime"); + + b.ToTable("AbpAuditLogActions", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.EntityChange", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AuditLogId") + .HasColumnType("uniqueidentifier") + .HasColumnName("AuditLogId"); + + b.Property("ChangeTime") + .HasColumnType("datetime2") + .HasColumnName("ChangeTime"); + + b.Property("ChangeType") + .HasColumnType("tinyint") + .HasColumnName("ChangeType"); + + b.Property("EntityId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("EntityId"); + + b.Property("EntityTenantId") + .HasColumnType("uniqueidentifier"); + + b.Property("EntityTypeFullName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("EntityTypeFullName"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("AuditLogId"); + + b.HasIndex("TenantId", "EntityTypeFullName", "EntityId"); + + b.ToTable("AbpEntityChanges", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.EntityPropertyChange", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("EntityChangeId") + .HasColumnType("uniqueidentifier"); + + b.Property("NewValue") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)") + .HasColumnName("NewValue"); + + b.Property("OriginalValue") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)") + .HasColumnName("OriginalValue"); + + b.Property("PropertyName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("PropertyName"); + + b.Property("PropertyTypeFullName") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("PropertyTypeFullName"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("EntityChangeId"); + + b.ToTable("AbpEntityPropertyChanges", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.BackgroundJobs.BackgroundJobRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsAbandoned") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false); + + b.Property("JobArgs") + .IsRequired() + .HasMaxLength(1048576) + .HasColumnType("nvarchar(max)"); + + b.Property("JobName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("LastTryTime") + .HasColumnType("datetime2"); + + b.Property("NextTryTime") + .HasColumnType("datetime2"); + + b.Property("Priority") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint") + .HasDefaultValue((byte)15); + + b.Property("TryCount") + .ValueGeneratedOnAdd() + .HasColumnType("smallint") + .HasDefaultValue((short)0); + + b.HasKey("Id"); + + b.HasIndex("IsAbandoned", "NextTryTime"); + + b.ToTable("AbpBackgroundJobs", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.FeatureManagement.FeatureDefinitionRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AllowedProviders") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("DefaultValue") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("Description") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("IsAvailableToHost") + .HasColumnType("bit"); + + b.Property("IsVisibleToClients") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ParentName") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ValueType") + .HasMaxLength(2048) + .HasColumnType("nvarchar(2048)"); + + b.HasKey("Id"); + + b.HasIndex("GroupName"); + + b.HasIndex("Name") + .IsUnique(); + + b.ToTable("AbpFeatures", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.FeatureManagement.FeatureGroupDefinitionRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.HasKey("Id"); + + b.HasIndex("Name") + .IsUnique(); + + b.ToTable("AbpFeatureGroups", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.FeatureManagement.FeatureValue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ProviderKey") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ProviderName") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.HasKey("Id"); + + b.HasIndex("Name", "ProviderName", "ProviderKey") + .IsUnique() + .HasFilter("[ProviderName] IS NOT NULL AND [ProviderKey] IS NOT NULL"); + + b.ToTable("AbpFeatureValues", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityClaimType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("Description") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsStatic") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("Regex") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("RegexDescription") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("Required") + .HasColumnType("bit"); + + b.Property("ValueType") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("AbpClaimTypes", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityLinkUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("SourceTenantId") + .HasColumnType("uniqueidentifier"); + + b.Property("SourceUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TargetTenantId") + .HasColumnType("uniqueidentifier"); + + b.Property("TargetUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("SourceUserId", "SourceTenantId", "TargetUserId", "TargetTenantId") + .IsUnique() + .HasFilter("[SourceTenantId] IS NOT NULL AND [TargetTenantId] IS NOT NULL"); + + b.ToTable("AbpLinkUsers", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("EntityVersion") + .HasColumnType("int"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDefault") + .HasColumnType("bit") + .HasColumnName("IsDefault"); + + b.Property("IsPublic") + .HasColumnType("bit") + .HasColumnName("IsPublic"); + + b.Property("IsStatic") + .HasColumnType("bit") + .HasColumnName("IsStatic"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName"); + + b.ToTable("AbpRoles", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClaimType") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ClaimValue") + .HasMaxLength(1024) + .HasColumnType("nvarchar(1024)"); + + b.Property("RoleId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AbpRoleClaims", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentitySecurityLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Action") + .HasMaxLength(96) + .HasColumnType("nvarchar(96)"); + + b.Property("ApplicationName") + .HasMaxLength(96) + .HasColumnType("nvarchar(96)"); + + b.Property("BrowserInfo") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("ClientId") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ClientIpAddress") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CorrelationId") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("Identity") + .HasMaxLength(96) + .HasColumnType("nvarchar(96)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("TenantName") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Action"); + + b.HasIndex("TenantId", "ApplicationName"); + + b.HasIndex("TenantId", "Identity"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("AbpSecurityLogs", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessFailedCount") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0) + .HasColumnName("AccessFailedCount"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("Email"); + + b.Property("EmailConfirmed") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("EmailConfirmed"); + + b.Property("EntityVersion") + .HasColumnType("int"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsActive") + .HasColumnType("bit") + .HasColumnName("IsActive"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("IsExternal") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsExternal"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("LastPasswordChangeTime") + .HasColumnType("datetimeoffset"); + + b.Property("LockoutEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("LockoutEnabled"); + + b.Property("LockoutEnd") + .HasColumnType("datetimeoffset"); + + b.Property("Name") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("Name"); + + b.Property("NormalizedEmail") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("NormalizedEmail"); + + b.Property("NormalizedUserName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("NormalizedUserName"); + + b.Property("PasswordHash") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("PasswordHash"); + + b.Property("PhoneNumber") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)") + .HasColumnName("PhoneNumber"); + + b.Property("PhoneNumberConfirmed") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("PhoneNumberConfirmed"); + + b.Property("SecurityStamp") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("SecurityStamp"); + + b.Property("ShouldChangePasswordOnNextLogin") + .HasColumnType("bit"); + + b.Property("Surname") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("Surname"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("TwoFactorEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("TwoFactorEnabled"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("UserName"); + + b.HasKey("Id"); + + b.HasIndex("Email"); + + b.HasIndex("NormalizedEmail"); + + b.HasIndex("NormalizedUserName"); + + b.HasIndex("UserName"); + + b.ToTable("AbpUsers", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClaimType") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ClaimValue") + .HasMaxLength(1024) + .HasColumnType("nvarchar(1024)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AbpUserClaims", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserDelegation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("SourceUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("TargetUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.ToTable("AbpUserDelegations", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b => + { + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("LoginProvider") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ProviderDisplayName") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ProviderKey") + .IsRequired() + .HasMaxLength(196) + .HasColumnType("nvarchar(196)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("UserId", "LoginProvider"); + + b.HasIndex("LoginProvider", "ProviderKey"); + + b.ToTable("AbpUserLogins", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserOrganizationUnit", b => + { + b.Property("OrganizationUnitId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("OrganizationUnitId", "UserId"); + + b.HasIndex("UserId", "OrganizationUnitId"); + + b.ToTable("AbpUserOrganizationUnits", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => + { + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RoleId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId", "UserId"); + + b.ToTable("AbpUserRoles", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("LoginProvider") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Name") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("Value") + .HasColumnType("nvarchar(max)"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AbpUserTokens", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnit", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(95) + .HasColumnType("nvarchar(95)") + .HasColumnName("Code"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("DisplayName"); + + b.Property("EntityVersion") + .HasColumnType("int"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("Code"); + + b.HasIndex("ParentId"); + + b.ToTable("AbpOrganizationUnits", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnitRole", b => + { + b.Property("OrganizationUnitId") + .HasColumnType("uniqueidentifier"); + + b.Property("RoleId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("OrganizationUnitId", "RoleId"); + + b.HasIndex("RoleId", "OrganizationUnitId"); + + b.ToTable("AbpOrganizationUnitRoles", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ClientId") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("ClientSecret") + .HasColumnType("nvarchar(max)"); + + b.Property("ClientUri") + .HasColumnType("nvarchar(max)"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("ConsentType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); + + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("LogoUri") + .HasColumnType("nvarchar(max)"); + + b.Property("Permissions") + .HasColumnType("nvarchar(max)"); + + b.Property("PostLogoutRedirectUris") + .HasColumnType("nvarchar(max)"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("RedirectUris") + .HasColumnType("nvarchar(max)"); + + b.Property("Requirements") + .HasColumnType("nvarchar(max)"); + + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("OpenIddictApplications", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("Scopes") + .HasColumnType("nvarchar(max)"); + + b.Property("Status") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("Id"); + + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); + + b.ToTable("OpenIddictAuthorizations", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.OpenIddict.Scopes.OpenIddictScope", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("Descriptions") + .HasColumnType("nvarchar(max)"); + + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); + + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("Resources") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("Name"); + + b.ToTable("OpenIddictScopes", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); + + b.Property("AuthorizationId") + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Payload") + .HasColumnType("nvarchar(max)"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("RedemptionDate") + .HasColumnType("datetime2"); + + b.Property("ReferenceId") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Status") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("Id"); + + b.HasIndex("AuthorizationId"); + + b.HasIndex("ReferenceId"); + + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); + + b.ToTable("OpenIddictTokens", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionDefinitionRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("IsEnabled") + .HasColumnType("bit"); + + b.Property("MultiTenancySide") + .HasColumnType("tinyint"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ParentName") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("Providers") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("StateCheckers") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("GroupName"); + + b.HasIndex("Name") + .IsUnique(); + + b.ToTable("AbpPermissions", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ProviderKey") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ProviderName") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Name", "ProviderName", "ProviderKey") + .IsUnique() + .HasFilter("[TenantId] IS NOT NULL"); + + b.ToTable("AbpPermissionGrants", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGroupDefinitionRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.HasKey("Id"); + + b.HasIndex("Name") + .IsUnique(); + + b.ToTable("AbpPermissionGroups", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ProviderKey") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ProviderName") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(2048) + .HasColumnType("nvarchar(2048)"); + + b.HasKey("Id"); + + b.HasIndex("Name", "ProviderName", "ProviderKey") + .IsUnique() + .HasFilter("[ProviderName] IS NOT NULL AND [ProviderKey] IS NOT NULL"); + + b.ToTable("AbpSettings", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("EntityVersion") + .HasColumnType("int"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.HasKey("Id"); + + b.HasIndex("Name"); + + b.ToTable("AbpTenants", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => + { + b.Property("TenantId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("nvarchar(1024)"); + + b.HasKey("TenantId", "Name"); + + b.ToTable("AbpTenantConnectionStrings", (string)null); + }); + + modelBuilder.Entity("Faster.Zheng.Winin.AppBusiness.TestSchool.TestStudentDetail", b => + { + b.HasOne("Faster.Zheng.Winin.AppBusiness.TestSchool.TestSchool", null) + .WithMany("Details") + .HasForeignKey("MasterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b => + { + b.HasOne("Volo.Abp.AuditLogging.AuditLog", null) + .WithMany("Actions") + .HasForeignKey("AuditLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.EntityChange", b => + { + b.HasOne("Volo.Abp.AuditLogging.AuditLog", null) + .WithMany("EntityChanges") + .HasForeignKey("AuditLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.EntityPropertyChange", b => + { + b.HasOne("Volo.Abp.AuditLogging.EntityChange", null) + .WithMany("PropertyChanges") + .HasForeignKey("EntityChangeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b => + { + b.HasOne("Volo.Abp.Identity.IdentityRole", null) + .WithMany("Claims") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b => + { + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("Claims") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b => + { + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("Logins") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserOrganizationUnit", b => + { + b.HasOne("Volo.Abp.Identity.OrganizationUnit", null) + .WithMany() + .HasForeignKey("OrganizationUnitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("OrganizationUnits") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => + { + b.HasOne("Volo.Abp.Identity.IdentityRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("Roles") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b => + { + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("Tokens") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnit", b => + { + b.HasOne("Volo.Abp.Identity.OrganizationUnit", null) + .WithMany() + .HasForeignKey("ParentId"); + }); + + modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnitRole", b => + { + b.HasOne("Volo.Abp.Identity.OrganizationUnit", null) + .WithMany("Roles") + .HasForeignKey("OrganizationUnitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Volo.Abp.Identity.IdentityRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => + { + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); + }); + + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => + { + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); + + b.HasOne("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", null) + .WithMany() + .HasForeignKey("AuthorizationId"); + }); + + modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => + { + b.HasOne("Volo.Abp.TenantManagement.Tenant", null) + .WithMany("ConnectionStrings") + .HasForeignKey("TenantId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Faster.Zheng.Winin.AppBusiness.TestSchool.TestSchool", b => + { + b.Navigation("Details"); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => + { + b.Navigation("Actions"); + + b.Navigation("EntityChanges"); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.EntityChange", b => + { + b.Navigation("PropertyChanges"); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityRole", b => + { + b.Navigation("Claims"); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b => + { + b.Navigation("Claims"); + + b.Navigation("Logins"); + + b.Navigation("OrganizationUnits"); + + b.Navigation("Roles"); + + b.Navigation("Tokens"); + }); + + modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnit", b => + { + b.Navigation("Roles"); + }); + + modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => + { + b.Navigation("ConnectionStrings"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/20230710132440_Added_ExportCustomUserSetting.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/20230710132440_Added_ExportCustomUserSetting.cs new file mode 100644 index 0000000..1a03650 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/20230710132440_Added_ExportCustomUserSetting.cs @@ -0,0 +1,48 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Faster.Zheng.Winin.Migrations +{ + /// + public partial class AddedExportCustomUserSetting : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + + migrationBuilder.CreateTable( + name: "AppExportCustomUserSettings", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + ExportUserId = table.Column(type: "uniqueidentifier", nullable: false), + ExportUserName = table.Column(type: "nvarchar(max)", nullable: false), + ExportColumnName = table.Column(type: "nvarchar(max)", nullable: false), + ExportTableName = table.Column(type: "nvarchar(max)", nullable: false), + CustomUserSetting = table.Column(type: "int", nullable: false), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AppExportCustomUserSettings", x => x.Id); + }, + comment: " 用户个型导出配置"); + + + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "AppExportCustomUserSettings"); + } + } +} diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/WininDbContextModelSnapshot.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/WininDbContextModelSnapshot.cs index f1dd91e..90ca27f 100644 --- a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/WininDbContextModelSnapshot.cs +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/WininDbContextModelSnapshot.cs @@ -24,6 +24,63 @@ namespace Faster.Zheng.Winin.Migrations SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + modelBuilder.Entity("Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting.ExportCustomUserSetting", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("CustomUserSetting") + .HasColumnType("int"); + + b.Property("ExportColumnName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExportTableName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExportUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExportUserName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.HasKey("Id"); + + b.ToTable("AppExportCustomUserSettings", null, t => + { + t.HasComment(" 用户个型导出配置"); + }); + }); + modelBuilder.Entity("Faster.Zheng.Winin.AppBusiness.DemoCar.DemoCar", b => { b.Property("Id") @@ -160,12 +217,9 @@ namespace Faster.Zheng.Winin.Migrations .IsRequired() .HasColumnType("nvarchar(max)"); - b.Property("TestSchoolId") - .HasColumnType("uniqueidentifier"); - b.HasKey("Id"); - b.HasIndex("TestSchoolId"); + b.HasIndex("MasterId"); b.ToTable("AppTestStudentDetails", null, t => { @@ -1833,7 +1887,9 @@ namespace Faster.Zheng.Winin.Migrations { b.HasOne("Faster.Zheng.Winin.AppBusiness.TestSchool.TestSchool", null) .WithMany("Details") - .HasForeignKey("TestSchoolId"); + .HasForeignKey("MasterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b => diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Menus/WininMenuContributor.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Menus/WininMenuContributor.cs index aef207f..8979fb3 100644 --- a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Menus/WininMenuContributor.cs +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Menus/WininMenuContributor.cs @@ -67,5 +67,11 @@ public class WininMenuContributor : IMenuContributor new ApplicationMenuItem(WininMenus.DemoCar, l["Menu:DemoCar"], "/AppBusiness/DemoCar/DemoCar") ); } + if (await context.IsGrantedAsync(WininPermissions.ExportCustomUserSetting.Default)) + { + context.Menu.AddItem( + new ApplicationMenuItem(WininMenus.ExportCustomUserSetting, l["Menu:ExportCustomUserSetting"], "/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting") + ); + } } } diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Menus/WininMenus.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Menus/WininMenus.cs index b94128b..61c0b6f 100644 --- a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Menus/WininMenus.cs +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Menus/WininMenus.cs @@ -10,4 +10,5 @@ public class WininMenus public const string TestSchool = Prefix + ".TestSchool"; public const string TestStudentDetail = Prefix + ".TestStudentDetail"; public const string DemoCar = Prefix + ".DemoCar"; + public const string ExportCustomUserSetting = Prefix + ".ExportCustomUserSetting"; } diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/CreateModal.cshtml b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/CreateModal.cshtml new file mode 100644 index 0000000..637e251 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/CreateModal.cshtml @@ -0,0 +1,18 @@ +@page +@using Microsoft.AspNetCore.Mvc.Localization +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal; +@using Faster.Zheng.Winin.Localization +@inject IHtmlLocalizer L +@model Faster.Zheng.Winin.Web.Pages.AppBaseBusiness.ExportCustomUserSetting.ExportCustomUserSetting.CreateModalModel +@{ + Layout = null; +} + + + + + + + + + \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/CreateModal.cshtml.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/CreateModal.cshtml.cs new file mode 100644 index 0000000..70e181b --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/CreateModal.cshtml.cs @@ -0,0 +1,27 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting; +using Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting.Dtos; +using Faster.Zheng.Winin.Web.Pages.AppBaseBusiness.ExportCustomUserSetting.ExportCustomUserSetting.ViewModels; + +namespace Faster.Zheng.Winin.Web.Pages.AppBaseBusiness.ExportCustomUserSetting.ExportCustomUserSetting; + +public class CreateModalModel : WininPageModel +{ + [BindProperty] + public CreateEditExportCustomUserSettingViewModel ViewModel { get; set; } + + private readonly IExportCustomUserSettingAppService _service; + + public CreateModalModel(IExportCustomUserSettingAppService service) + { + _service = service; + } + + public virtual async Task OnPostAsync() + { + var dto = ObjectMapper.Map(ViewModel); + await _service.CreateAsync(dto); + return NoContent(); + } +} \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/EditModal.cshtml b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/EditModal.cshtml new file mode 100644 index 0000000..ce3d6e4 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/EditModal.cshtml @@ -0,0 +1,19 @@ +@page +@using Faster.Zheng.Winin.Localization +@using Microsoft.AspNetCore.Mvc.Localization +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal; +@inject IHtmlLocalizer L +@model Faster.Zheng.Winin.Web.Pages.AppBaseBusiness.ExportCustomUserSetting.ExportCustomUserSetting.EditModalModel +@{ + Layout = null; +} + + + + + + + + + + diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/EditModal.cshtml.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/EditModal.cshtml.cs new file mode 100644 index 0000000..77060d9 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/EditModal.cshtml.cs @@ -0,0 +1,38 @@ +using System; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting; +using Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting.Dtos; +using Faster.Zheng.Winin.Web.Pages.AppBaseBusiness.ExportCustomUserSetting.ExportCustomUserSetting.ViewModels; + +namespace Faster.Zheng.Winin.Web.Pages.AppBaseBusiness.ExportCustomUserSetting.ExportCustomUserSetting; + +public class EditModalModel : WininPageModel +{ + [HiddenInput] + [BindProperty(SupportsGet = true)] + public Guid Id { get; set; } + + [BindProperty] + public CreateEditExportCustomUserSettingViewModel ViewModel { get; set; } + + private readonly IExportCustomUserSettingAppService _service; + + public EditModalModel(IExportCustomUserSettingAppService service) + { + _service = service; + } + + public virtual async Task OnGetAsync() + { + var dto = await _service.GetAsync(Id); + ViewModel = ObjectMapper.Map(dto); + } + + public virtual async Task OnPostAsync() + { + var dto = ObjectMapper.Map(ViewModel); + await _service.UpdateAsync(Id, dto); + return NoContent(); + } +} \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/Index.cshtml b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/Index.cshtml new file mode 100644 index 0000000..47a3140 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/Index.cshtml @@ -0,0 +1,55 @@ +@page +@using Faster.Zheng.Winin.Permissions +@using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Mvc.Localization +@using Volo.Abp.AspNetCore.Mvc.UI.Layout +@using Faster.Zheng.Winin.Web.Pages.AppBaseBusiness.ExportCustomUserSetting.ExportCustomUserSetting +@using Faster.Zheng.Winin.Localization +@using Faster.Zheng.Winin.Web.Menus +@model IndexModel +@inject IPageLayout PageLayout +@inject IHtmlLocalizer L +@inject IAuthorizationService Authorization +@{ + PageLayout.Content.Title = L["ExportCustomUserSetting"].Value; + PageLayout.Content.BreadCrumb.Add(L["Menu:ExportCustomUserSetting"].Value); + PageLayout.Content.MenuItemName = WininMenus.ExportCustomUserSetting; +} + +@section scripts +{ + +} +@section styles +{ + +} + + + + + + @L["ExportCustomUserSetting"] + + + @if (await Authorization.IsGrantedAsync(WininPermissions.ExportCustomUserSetting.Create)) + { + + } + + + + + @* + @L["TableFilter"] + + + +
+
*@ + +
+
diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/Index.cshtml.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/Index.cshtml.cs new file mode 100644 index 0000000..fb39c4e --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/Index.cshtml.cs @@ -0,0 +1,40 @@ +using System; +using System.Threading.Tasks; +using System.ComponentModel.DataAnnotations; +using Faster.Zheng.Winin.Enums; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; + +namespace Faster.Zheng.Winin.Web.Pages.AppBaseBusiness.ExportCustomUserSetting.ExportCustomUserSetting; + +public class IndexModel : WininPageModel +{ + public ExportCustomUserSettingFilterInput ExportCustomUserSettingFilter { get; set; } + + public virtual async Task OnGetAsync() + { + await Task.CompletedTask; + } +} + +public class ExportCustomUserSettingFilterInput +{ + [FormControlSize(AbpFormControlSize.Small)] + [Display(Name = "ExportCustomUserSettingExportUserId")] + public Guid? ExportUserId { get; set; } + + [FormControlSize(AbpFormControlSize.Small)] + [Display(Name = "ExportCustomUserSettingExportUserName")] + public string ExportUserName { get; set; } + + [FormControlSize(AbpFormControlSize.Small)] + [Display(Name = "ExportCustomUserSettingExportColumnName")] + public string ExportColumnName { get; set; } + + [FormControlSize(AbpFormControlSize.Small)] + [Display(Name = "ExportCustomUserSettingExportTableName")] + public string ExportTableName { get; set; } + + [FormControlSize(AbpFormControlSize.Small)] + [Display(Name = "ExportCustomUserSettingCustomUserSetting")] + public Enum_ExportCustomUserSetting? CustomUserSetting { get; set; } +} diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/ViewModels/CreateEditExportCustomUserSettingViewModel.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/ViewModels/CreateEditExportCustomUserSettingViewModel.cs new file mode 100644 index 0000000..6893805 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/ViewModels/CreateEditExportCustomUserSettingViewModel.cs @@ -0,0 +1,23 @@ +using System; +using System.ComponentModel.DataAnnotations; +using Faster.Zheng.Winin.Enums; + +namespace Faster.Zheng.Winin.Web.Pages.AppBaseBusiness.ExportCustomUserSetting.ExportCustomUserSetting.ViewModels; + +public class CreateEditExportCustomUserSettingViewModel +{ + [Display(Name = "ExportCustomUserSettingExportUserId")] + public Guid ExportUserId { get; set; } + + [Display(Name = "ExportCustomUserSettingExportUserName")] + public string ExportUserName { get; set; } + + [Display(Name = "ExportCustomUserSettingExportColumnName")] + public string ExportColumnName { get; set; } + + [Display(Name = "ExportCustomUserSettingExportTableName")] + public string ExportTableName { get; set; } + + [Display(Name = "ExportCustomUserSettingCustomUserSetting")] + public Enum_ExportCustomUserSetting CustomUserSetting { get; set; } +} diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/index.css b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/index.css new file mode 100644 index 0000000..e69de29 diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/index.js b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/index.js new file mode 100644 index 0000000..5d0cce4 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/index.js @@ -0,0 +1,100 @@ +$(function () { + + $("#ExportCustomUserSettingFilter :input").on('input', function () { + dataTable.ajax.reload(); + }); + + $('#ExportCustomUserSettingFilter div').addClass('col-sm-3').parent().addClass('row'); + + var getFilter = function () { + var input = {}; + $("#ExportCustomUserSettingFilter") + .serializeArray() + .forEach(function (data) { + if (data.value != '') { + input[abp.utils.toCamelCase(data.name.replace(/ExportCustomUserSettingFilter./g, ''))] = data.value; + } + }) + return input; + }; + + var l = abp.localization.getResource('Winin'); + + var service = faster.zheng.winin.appBaseBusiness.exportCustomUserSetting.exportCustomUserSetting; + var createModal = new abp.ModalManager(abp.appPath + 'AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/CreateModal'); + var editModal = new abp.ModalManager(abp.appPath + 'AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSetting/EditModal'); + + var dataTable = $('#ExportCustomUserSettingTable').DataTable(abp.libs.datatables.normalizeConfiguration({ + processing: true, + serverSide: true, + paging: true, + searching: false,//disable default searchbox + autoWidth: false, + scrollCollapse: true, + order: [[0, "asc"]], + ajax: abp.libs.datatables.createAjax(service.getList,getFilter), + columnDefs: [ + { + rowAction: { + items: + [ + { + text: l('Edit'), + visible: abp.auth.isGranted('Winin.ExportCustomUserSetting.Update'), + action: function (data) { + editModal.open({ id: data.record.id }); + } + }, + { + text: l('Delete'), + visible: abp.auth.isGranted('Winin.ExportCustomUserSetting.Delete'), + confirmMessage: function (data) { + return l('ExportCustomUserSettingDeletionConfirmationMessage', data.record.id); + }, + action: function (data) { + service.delete(data.record.id) + .then(function () { + abp.notify.info(l('SuccessfullyDeleted')); + dataTable.ajax.reload(); + }); + } + } + ] + } + }, + { + title: l('ExportCustomUserSettingExportUserId'), + data: "exportUserId" + }, + { + title: l('ExportCustomUserSettingExportUserName'), + data: "exportUserName" + }, + { + title: l('ExportCustomUserSettingExportColumnName'), + data: "exportColumnName" + }, + { + title: l('ExportCustomUserSettingExportTableName'), + data: "exportTableName" + }, + { + title: l('ExportCustomUserSettingCustomUserSetting'), + data: "customUserSetting" + }, + ] + })); + + createModal.onResult(function () { + dataTable.ajax.reload(); + }); + + editModal.onResult(function () { + dataTable.ajax.reload(); + }); + + $('#NewExportCustomUserSettingButton').click(function (e) { + e.preventDefault(); + createModal.open(); + }); +}); diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/WininWebAutoMapperProfile.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/WininWebAutoMapperProfile.cs index d36f0d0..c424299 100644 --- a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/WininWebAutoMapperProfile.cs +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/WininWebAutoMapperProfile.cs @@ -5,6 +5,8 @@ using Faster.Zheng.Winin.Web.Pages.AppBusiness.TestSchool.TestStudentDetail.View using Faster.Zheng.Winin.AppBusiness.DemoCar.Dtos; using Faster.Zheng.Winin.Web.Pages.AppBusiness.DemoCar.DemoCar.ViewModels; using AutoMapper; +using Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting.Dtos; +using Faster.Zheng.Winin.Web.Pages.AppBaseBusiness.ExportCustomUserSetting.ExportCustomUserSetting.ViewModels; using Microsoft.AspNetCore.Http.HttpResults; namespace Faster.Zheng.Winin.Web; @@ -20,6 +22,8 @@ public class WininWebAutoMapperProfile : Profile CreateMap(); CreateMap(); CreateMap(); + CreateMap(); + CreateMap(); } } diff --git a/Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.Application.Tests/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingAppServiceTests.cs b/Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.Application.Tests/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingAppServiceTests.cs new file mode 100644 index 0000000..a59620f --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.Application.Tests/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingAppServiceTests.cs @@ -0,0 +1,28 @@ +using Shouldly; +using System.Threading.Tasks; +using Xunit; + +namespace Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting; + +public class ExportCustomUserSettingAppServiceTests : WininApplicationTestBase +{ + private readonly IExportCustomUserSettingAppService _exportCustomUserSettingAppService; + + public ExportCustomUserSettingAppServiceTests() + { + _exportCustomUserSettingAppService = GetRequiredService(); + } + + /* + [Fact] + public async Task Test1() + { + // Arrange + + // Act + + // Assert + } + */ +} + diff --git a/Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.Domain.Tests/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingDomainTests.cs b/Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.Domain.Tests/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingDomainTests.cs new file mode 100644 index 0000000..27d1a2c --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.Domain.Tests/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingDomainTests.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Shouldly; +using Xunit; + +namespace Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting; + +public class ExportCustomUserSettingDomainTests : WininDomainTestBase +{ + public ExportCustomUserSettingDomainTests() + { + } + + /* + [Fact] + public async Task Test1() + { + // Arrange + + // Assert + + // Assert + } + */ +} \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.EntityFrameworkCore.Tests/EntityFrameworkCore/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingRepositoryTests.cs b/Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.EntityFrameworkCore.Tests/EntityFrameworkCore/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingRepositoryTests.cs new file mode 100644 index 0000000..3a1757d --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.EntityFrameworkCore.Tests/EntityFrameworkCore/AppBaseBusiness/ExportCustomUserSetting/ExportCustomUserSettingRepositoryTests.cs @@ -0,0 +1,32 @@ +using System; +using System.Threading.Tasks; +using Faster.Zheng.Winin.AppBaseBusiness.ExportCustomUserSetting; +using Volo.Abp.Domain.Repositories; +using Xunit; + +namespace Faster.Zheng.Winin.EntityFrameworkCore.AppBaseBusiness.ExportCustomUserSetting; + +public class ExportCustomUserSettingRepositoryTests : WininEntityFrameworkCoreTestBase +{ + private readonly IExportCustomUserSettingRepository _exportCustomUserSettingRepository; + + public ExportCustomUserSettingRepositoryTests() + { + _exportCustomUserSettingRepository = GetRequiredService(); + } + + /* + [Fact] + public async Task Test1() + { + await WithUnitOfWorkAsync(async () => + { + // Arrange + + // Act + + //Assert + }); + } + */ +} diff --git a/Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.Web.Tests/Pages/AppBaseBusiness/ExportCustomUserSetting/IndexTests.cs b/Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.Web.Tests/Pages/AppBaseBusiness/ExportCustomUserSetting/IndexTests.cs new file mode 100644 index 0000000..a575b34 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/test/Faster.Zheng.Winin.Web.Tests/Pages/AppBaseBusiness/ExportCustomUserSetting/IndexTests.cs @@ -0,0 +1,23 @@ + +using System.Threading.Tasks; +using Shouldly; +using Xunit; + +namespace Faster.Zheng.Winin.Pages.AppBaseBusiness.ExportCustomUserSetting; + +public class Index_Tests : WininWebTestBase +{ + /* + [Fact] + public async Task Index_Page_Test() + { + // Arrange + + // Act + var response = await GetResponseAsStringAsync("/ExportCustomUserSetting"); + + // Assert + response.ShouldNotBeNull(); + } + */ +}