From f3eb2e63f810b7739ece123930d5494d19d64e70 Mon Sep 17 00:00:00 2001 From: "boxu.zheng" Date: Wed, 14 Jun 2023 18:02:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dtos/CreateUpdateTestSchoolDto.cs | 25 + .../Dtos/CreateUpdateTestStudentDetailDto.cs | 23 + .../TestSchool/Dtos/TestSchoolDto.cs | 29 + .../TestSchool/Dtos/TestStudentDetailDto.cs | 27 + .../TestSchool/ITestSchoolAppService.cs | 21 + .../ITestStudentDetailAppService.cs | 21 + .../WininPermissionDefinitionProvider.cs | 12 +- .../Permissions/WininPermissions.cs | 22 +- .../TestSchool/TestSchoolAppService.cs | 30 + .../TestSchool/TestStudentDetailAppService.cs | 30 + .../WininApplicationAutoMapperProfile.cs | 8 +- .../Localization/Winin/ar.json | 28 +- .../TestSchool/ITestSchoolRepository.cs | 3 + .../ITestStudentDetailRepository.cs | 3 + .../TestSchoolEfCoreQuerableExtensions.cs | 22 + .../TestSchool/TestSchoolRepository.cs | 20 + ...stStudentDetailEfCoreQuerableExtensions.cs | 22 + .../TestSchool/TestStudentDetailRepository.cs | 20 + .../EntityFrameworkCore/WininDbContext.cs | 32 +- .../WininEntityFrameworkCoreModule.cs | 5 +- ...0614095851_Added_School_Entity.Designer.cs | 1984 +++++++++++++++++ .../20230614095851_Added_School_Entity.cs | 82 + .../Migrations/WininDbContextModelSnapshot.cs | 114 + .../Menus/WininMenuContributor.cs | 20 +- .../Menus/WininMenus.cs | 4 +- .../TestSchool/TestSchool/CreateModal.cshtml | 18 + .../TestSchool/CreateModal.cshtml.cs | 27 + .../TestSchool/TestSchool/EditModal.cshtml | 19 + .../TestSchool/TestSchool/EditModal.cshtml.cs | 38 + .../TestSchool/TestSchool/Index.cshtml | 48 + .../TestSchool/TestSchool/Index.cshtml.cs | 14 + .../CreateEditTestSchoolViewModel.cs | 18 + .../TestSchool/TestSchool/index.css | 0 .../TestSchool/TestSchool/index.js | 70 + .../TestStudentDetail/CreateModal.cshtml | 18 + .../TestStudentDetail/CreateModal.cshtml.cs | 27 + .../TestStudentDetail/EditModal.cshtml | 19 + .../TestStudentDetail/EditModal.cshtml.cs | 38 + .../TestSchool/TestStudentDetail/Index.cshtml | 48 + .../TestStudentDetail/Index.cshtml.cs | 14 + .../CreateEditTestStudentDetailViewModel.cs | 17 + .../TestSchool/TestStudentDetail/index.css | 0 .../TestSchool/TestStudentDetail/index.js | 74 + .../WininWebAutoMapperProfile.cs | 10 +- 44 files changed, 3111 insertions(+), 13 deletions(-) create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/CreateUpdateTestSchoolDto.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/CreateUpdateTestStudentDetailDto.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/TestSchoolDto.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/TestStudentDetailDto.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/ITestSchoolAppService.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/ITestStudentDetailAppService.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/AppBusiness/TestSchool/TestSchoolAppService.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/AppBusiness/TestSchool/TestStudentDetailAppService.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBusiness/TestSchool/TestSchoolEfCoreQuerableExtensions.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBusiness/TestSchool/TestSchoolRepository.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBusiness/TestSchool/TestStudentDetailEfCoreQuerableExtensions.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBusiness/TestSchool/TestStudentDetailRepository.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/20230614095851_Added_School_Entity.Designer.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/20230614095851_Added_School_Entity.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/CreateModal.cshtml create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/CreateModal.cshtml.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/EditModal.cshtml create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/EditModal.cshtml.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/Index.cshtml create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/Index.cshtml.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/ViewModels/CreateEditTestSchoolViewModel.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/index.css create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/index.js create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/CreateModal.cshtml create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/CreateModal.cshtml.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/EditModal.cshtml create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/EditModal.cshtml.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/Index.cshtml create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/Index.cshtml.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/ViewModels/CreateEditTestStudentDetailViewModel.cs create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/index.css create mode 100644 Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/index.js diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/CreateUpdateTestSchoolDto.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/CreateUpdateTestSchoolDto.cs new file mode 100644 index 0000000..46c9764 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/CreateUpdateTestSchoolDto.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using Faster.Zheng.Winin.Enums; +using Faster.Zheng.Winin.Permissions; + +namespace Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; + +[Serializable] +public class CreateUpdateTestSchoolDto +{ + /// + /// + /// + public string SchoolName { get; set; } + + /// + /// + /// + public SchoolType OrderType { get; set; } + + /// + /// + /// + public List Details { get; set; } +} \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/CreateUpdateTestStudentDetailDto.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/CreateUpdateTestStudentDetailDto.cs new file mode 100644 index 0000000..fa106c6 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/CreateUpdateTestStudentDetailDto.cs @@ -0,0 +1,23 @@ +using System; +using Faster.Zheng.Winin.Enums; + +namespace Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; + +[Serializable] +public class CreateUpdateTestStudentDetailDto +{ + /// + /// + /// + public Guid MasterId { get; set; } + + /// + /// + /// + public string StudentName { get; set; } + + /// + /// + /// + public StudentType OrderType { get; set; } +} \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/TestSchoolDto.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/TestSchoolDto.cs new file mode 100644 index 0000000..1b4a110 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/TestSchoolDto.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using Faster.Zheng.Winin.Enums; +using Faster.Zheng.Winin.Permissions; +using Volo.Abp.Application.Dtos; + +namespace Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; + +/// +/// +/// +[Serializable] +public class TestSchoolDto : AuditedEntityDto +{ + /// + /// + /// + public string SchoolName { get; set; } + + /// + /// + /// + public SchoolType OrderType { get; set; } + + /// + /// + /// + public List Details { get; set; } +} \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/TestStudentDetailDto.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/TestStudentDetailDto.cs new file mode 100644 index 0000000..030ae07 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/Dtos/TestStudentDetailDto.cs @@ -0,0 +1,27 @@ +using System; +using Faster.Zheng.Winin.Enums; +using Volo.Abp.Application.Dtos; + +namespace Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; + +/// +/// +/// +[Serializable] +public class TestStudentDetailDto : AuditedEntityDto +{ + /// + /// + /// + public Guid MasterId { get; set; } + + /// + /// + /// + public string StudentName { get; set; } + + /// + /// + /// + public StudentType OrderType { get; set; } +} \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/ITestSchoolAppService.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/ITestSchoolAppService.cs new file mode 100644 index 0000000..4b99b25 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/ITestSchoolAppService.cs @@ -0,0 +1,21 @@ +using System; +using Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; + +namespace Faster.Zheng.Winin.AppBusiness.TestSchool; + + +/// +/// +/// +public interface ITestSchoolAppService : + ICrudAppService< + TestSchoolDto, + Guid, + PagedAndSortedResultRequestDto, + CreateUpdateTestSchoolDto, + CreateUpdateTestSchoolDto> +{ + +} \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/ITestStudentDetailAppService.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/ITestStudentDetailAppService.cs new file mode 100644 index 0000000..4aeb10b --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application.Contracts/AppBusiness/TestSchool/ITestStudentDetailAppService.cs @@ -0,0 +1,21 @@ +using System; +using Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; + +namespace Faster.Zheng.Winin.AppBusiness.TestSchool; + + +/// +/// +/// +public interface ITestStudentDetailAppService : + ICrudAppService< + TestStudentDetailDto, + Guid, + PagedAndSortedResultRequestDto, + CreateUpdateTestStudentDetailDto, + CreateUpdateTestStudentDetailDto> +{ + +} \ 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 c29fd43..0cb46cb 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 @@ -1,4 +1,4 @@ -using Faster.Zheng.Winin.Localization; +using Faster.Zheng.Winin.Localization; using Volo.Abp.Authorization.Permissions; using Volo.Abp.Localization; @@ -11,6 +11,16 @@ public class WininPermissionDefinitionProvider : PermissionDefinitionProvider var myGroup = context.AddGroup(WininPermissions.GroupName); //Define your own permissions here. Example: //myGroup.AddPermission(WininPermissions.MyPermission1, L("Permission:MyPermission1")); + + var testSchoolPermission = myGroup.AddPermission(WininPermissions.TestSchool.Default, L("Permission:TestSchool")); + testSchoolPermission.AddChild(WininPermissions.TestSchool.Create, L("Permission:Create")); + testSchoolPermission.AddChild(WininPermissions.TestSchool.Update, L("Permission:Update")); + testSchoolPermission.AddChild(WininPermissions.TestSchool.Delete, L("Permission:Delete")); + + var testStudentDetailPermission = myGroup.AddPermission(WininPermissions.TestStudentDetail.Default, L("Permission:TestStudentDetail")); + testStudentDetailPermission.AddChild(WininPermissions.TestStudentDetail.Create, L("Permission:Create")); + testStudentDetailPermission.AddChild(WininPermissions.TestStudentDetail.Update, L("Permission:Update")); + testStudentDetailPermission.AddChild(WininPermissions.TestStudentDetail.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 cd35044..847806f 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 @@ -1,4 +1,4 @@ -namespace Faster.Zheng.Winin.Permissions; +namespace Faster.Zheng.Winin.Permissions; public static class WininPermissions { @@ -6,4 +6,24 @@ public static class WininPermissions //Add your own permission names. Example: //public const string MyPermission1 = GroupName + ".MyPermission1"; + /// + /// + /// + public class TestSchool + { + public const string Default = GroupName + ".TestSchool"; + public const string Update = Default + ".Update"; + public const string Create = Default + ".Create"; + public const string Delete = Default + ".Delete"; + } + /// + /// + /// + public class TestStudentDetail + { + public const string Default = GroupName + ".TestStudentDetail"; + 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/AppBusiness/TestSchool/TestSchoolAppService.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/AppBusiness/TestSchool/TestSchoolAppService.cs new file mode 100644 index 0000000..1f0a965 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/AppBusiness/TestSchool/TestSchoolAppService.cs @@ -0,0 +1,30 @@ +using System; +using Faster.Zheng.Winin.AppBase; +using Faster.Zheng.Winin.Permissions; +using Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; + +namespace Faster.Zheng.Winin.AppBusiness.TestSchool; + + +/// +/// +/// +public class TestSchoolAppService : ZbxBase, + ITestSchoolAppService +{ + protected override string GetPolicyName { get; set; } = WininPermissions.TestSchool.Default; + protected override string GetListPolicyName { get; set; } = WininPermissions.TestSchool.Default; + protected override string CreatePolicyName { get; set; } = WininPermissions.TestSchool.Create; + protected override string UpdatePolicyName { get; set; } = WininPermissions.TestSchool.Update; + protected override string DeletePolicyName { get; set; } = WininPermissions.TestSchool.Delete; + + private readonly ITestSchoolRepository _repository; + + public TestSchoolAppService(ITestSchoolRepository repository) : base(repository) + { + _repository = repository; + } + +} diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/AppBusiness/TestSchool/TestStudentDetailAppService.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/AppBusiness/TestSchool/TestStudentDetailAppService.cs new file mode 100644 index 0000000..e939810 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Application/AppBusiness/TestSchool/TestStudentDetailAppService.cs @@ -0,0 +1,30 @@ +using System; +using Faster.Zheng.Winin.AppBase; +using Faster.Zheng.Winin.Permissions; +using Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; + +namespace Faster.Zheng.Winin.AppBusiness.TestSchool; + + +/// +/// +/// +public class TestStudentDetailAppService : ZbxBase, + ITestStudentDetailAppService +{ + protected override string GetPolicyName { get; set; } = WininPermissions.TestStudentDetail.Default; + protected override string GetListPolicyName { get; set; } = WininPermissions.TestStudentDetail.Default; + protected override string CreatePolicyName { get; set; } = WininPermissions.TestStudentDetail.Create; + protected override string UpdatePolicyName { get; set; } = WininPermissions.TestStudentDetail.Update; + protected override string DeletePolicyName { get; set; } = WininPermissions.TestStudentDetail.Delete; + + private readonly ITestStudentDetailRepository _repository; + + public TestStudentDetailAppService(ITestStudentDetailRepository repository) : base(repository) + { + _repository = repository; + } + +} 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 821cf38..f327741 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 @@ -1,4 +1,6 @@ -using AutoMapper; +using Faster.Zheng.Winin.AppBusiness.TestSchool; +using Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; +using AutoMapper; namespace Faster.Zheng.Winin; @@ -9,5 +11,9 @@ public class WininApplicationAutoMapperProfile : Profile /* You can configure your AutoMapper mapping configuration here. * Alternatively, you can split your mapping configurations * into multiple profile classes for a better organization. */ + CreateMap(); + CreateMap(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 96bbf80..20a2c18 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,8 +1,30 @@ { "culture": "ar", "texts": { - "Menu:Home": "الرئيسية", "Menu:Home": "الصفحة الرئيسية", - "LongWelcomeMessage": "مرحبا بكم في التطبيق. هذا مشروع بدء تشغيل يعتمد على إطار عمل ABP. لمزيد من المعلومات ، يرجى زيارة abp.io." + "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}?" } -} +} \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBusiness/TestSchool/ITestSchoolRepository.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBusiness/TestSchool/ITestSchoolRepository.cs index 8096d97..21101dc 100644 --- a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBusiness/TestSchool/ITestSchoolRepository.cs +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBusiness/TestSchool/ITestSchoolRepository.cs @@ -3,6 +3,9 @@ using Volo.Abp.Domain.Repositories; namespace Faster.Zheng.Winin.AppBusiness.TestSchool; +/// +/// +/// public interface ITestSchoolRepository : IRepository { } diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBusiness/TestSchool/ITestStudentDetailRepository.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBusiness/TestSchool/ITestStudentDetailRepository.cs index 4372468..468f826 100644 --- a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBusiness/TestSchool/ITestStudentDetailRepository.cs +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Domain/AppBusiness/TestSchool/ITestStudentDetailRepository.cs @@ -3,6 +3,9 @@ using Volo.Abp.Domain.Repositories; namespace Faster.Zheng.Winin.AppBusiness.TestSchool; +/// +/// +/// public interface ITestStudentDetailRepository : IRepository { } diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBusiness/TestSchool/TestSchoolEfCoreQuerableExtensions.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBusiness/TestSchool/TestSchoolEfCoreQuerableExtensions.cs new file mode 100644 index 0000000..6c74af4 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBusiness/TestSchool/TestSchoolEfCoreQuerableExtensions.cs @@ -0,0 +1,22 @@ +using System.Linq; +using Microsoft.EntityFrameworkCore; + +namespace Faster.Zheng.Winin.AppBusiness.TestSchool; + +/// +/// +/// +public static class TestSchoolEfCoreQueryableExtensions +{ + 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/AppBusiness/TestSchool/TestSchoolRepository.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBusiness/TestSchool/TestSchoolRepository.cs new file mode 100644 index 0000000..aeb8b48 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBusiness/TestSchool/TestSchoolRepository.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.AppBusiness.TestSchool; + +public class TestSchoolRepository : EfCoreRepository, ITestSchoolRepository +{ + public TestSchoolRepository(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/AppBusiness/TestSchool/TestStudentDetailEfCoreQuerableExtensions.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBusiness/TestSchool/TestStudentDetailEfCoreQuerableExtensions.cs new file mode 100644 index 0000000..6cdf4ca --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBusiness/TestSchool/TestStudentDetailEfCoreQuerableExtensions.cs @@ -0,0 +1,22 @@ +using System.Linq; +using Microsoft.EntityFrameworkCore; + +namespace Faster.Zheng.Winin.AppBusiness.TestSchool; + +/// +/// +/// +public static class TestStudentDetailEfCoreQueryableExtensions +{ + 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/AppBusiness/TestSchool/TestStudentDetailRepository.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBusiness/TestSchool/TestStudentDetailRepository.cs new file mode 100644 index 0000000..8c7f287 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/AppBusiness/TestSchool/TestStudentDetailRepository.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.AppBusiness.TestSchool; + +public class TestStudentDetailRepository : EfCoreRepository, ITestStudentDetailRepository +{ + public TestStudentDetailRepository(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 6c5fb4a..b1507ad 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 @@ -1,4 +1,4 @@ -using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; using Volo.Abp.AuditLogging.EntityFrameworkCore; using Volo.Abp.BackgroundJobs.EntityFrameworkCore; using Volo.Abp.Data; @@ -12,6 +12,8 @@ using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.TenantManagement; using Volo.Abp.TenantManagement.EntityFrameworkCore; +using Faster.Zheng.Winin.AppBusiness.TestSchool; +using Volo.Abp.EntityFrameworkCore.Modeling; namespace Faster.Zheng.Winin.EntityFrameworkCore; @@ -52,6 +54,14 @@ public class WininDbContext : public DbSet TenantConnectionStrings { get; set; } #endregion + /// + /// + /// + public DbSet TestSchools { get; set; } + /// + /// + /// + public DbSet TestStudentDetails { get; set; } public WininDbContext(DbContextOptions options) : base(options) @@ -82,5 +92,25 @@ public class WininDbContext : // b.ConfigureByConvention(); //auto configure for the base class props // //... //}); + + + builder.Entity(b => + { + b.ToTable(WininConsts.DbTablePrefix + "TestSchools", WininConsts.DbSchema, table => table.HasComment("")); + b.ConfigureByConvention(); + + + /* Configure more properties here */ + }); + + + builder.Entity(b => + { + b.ToTable(WininConsts.DbTablePrefix + "TestStudentDetails", 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 6cd5cb9..74a2c9a 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,4 +1,5 @@ -using System; +using Faster.Zheng.Winin.AppBusiness.TestSchool; +using System; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Uow; using Volo.Abp.AuditLogging.EntityFrameworkCore; @@ -41,6 +42,8 @@ public class WininEntityFrameworkCoreModule : AbpModule /* Remove "includeAllEntities: true" to create * default repositories only for aggregate roots */ options.AddDefaultRepositories(includeAllEntities: true); + options.AddRepository(); + options.AddRepository(); }); Configure(options => diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/20230614095851_Added_School_Entity.Designer.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/20230614095851_Added_School_Entity.Designer.cs new file mode 100644 index 0000000..2674f81 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/20230614095851_Added_School_Entity.Designer.cs @@ -0,0 +1,1984 @@ +// +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("20230614095851_Added_School_Entity")] + partial class AddedSchoolEntity + { + /// + 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.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.Property("TestSchoolId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TestSchoolId"); + + 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("TestSchoolId"); + }); + + 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/20230614095851_Added_School_Entity.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/20230614095851_Added_School_Entity.cs new file mode 100644 index 0000000..d4dbcc4 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.EntityFrameworkCore/Migrations/20230614095851_Added_School_Entity.cs @@ -0,0 +1,82 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Faster.Zheng.Winin.Migrations +{ + /// + public partial class AddedSchoolEntity : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "AppTestSchools", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + SchoolName = table.Column(type: "nvarchar(450)", nullable: false), + OrderType = 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_AppTestSchools", x => x.Id); + }, + comment: ""); + + migrationBuilder.CreateTable( + name: "AppTestStudentDetails", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + MasterId = table.Column(type: "uniqueidentifier", nullable: false), + StudentName = table.Column(type: "nvarchar(max)", nullable: false), + OrderType = table.Column(type: "int", nullable: false), + TestSchoolId = table.Column(type: "uniqueidentifier", nullable: true), + 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_AppTestStudentDetails", x => x.Id); + table.ForeignKey( + name: "FK_AppTestStudentDetails_AppTestSchools_TestSchoolId", + column: x => x.TestSchoolId, + principalTable: "AppTestSchools", + principalColumn: "Id"); + }, + comment: ""); + + migrationBuilder.CreateIndex( + name: "IX_AppTestSchools_SchoolName_OrderType", + table: "AppTestSchools", + columns: new[] { "SchoolName", "OrderType" }); + + migrationBuilder.CreateIndex( + name: "IX_AppTestStudentDetails_TestSchoolId", + table: "AppTestStudentDetails", + column: "TestSchoolId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "AppTestStudentDetails"); + + migrationBuilder.DropTable( + name: "AppTestSchools"); + } + } +} 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 39424a1..9a9d53a 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,108 @@ namespace Faster.Zheng.Winin.Migrations SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + 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.Property("TestSchoolId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TestSchoolId"); + + b.ToTable("AppTestStudentDetails", null, t => + { + t.HasComment(""); + }); + }); + modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => { b.Property("Id") @@ -1680,6 +1782,13 @@ namespace Faster.Zheng.Winin.Migrations 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("TestSchoolId"); + }); + modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b => { b.HasOne("Volo.Abp.AuditLogging.AuditLog", null) @@ -1822,6 +1931,11 @@ namespace Faster.Zheng.Winin.Migrations .IsRequired(); }); + modelBuilder.Entity("Faster.Zheng.Winin.AppBusiness.TestSchool.TestSchool", b => + { + b.Navigation("Details"); + }); + modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => { b.Navigation("Actions"); 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 b3088b7..54fd36e 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 @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Threading.Tasks; +using Faster.Zheng.Winin.Permissions; using Faster.Zheng.Winin.Localization; using Faster.Zheng.Winin.MultiTenancy; using Volo.Abp.Identity.Web.Navigation; @@ -18,7 +19,7 @@ public class WininMenuContributor : IMenuContributor } } - private Task ConfigureMainMenuAsync(MenuConfigurationContext context) + private async Task ConfigureMainMenuAsync(MenuConfigurationContext context) { var administration = context.Menu.GetAdministration(); var l = context.GetLocalizer(); @@ -46,6 +47,19 @@ public class WininMenuContributor : IMenuContributor administration.SetSubItemOrder(IdentityMenuNames.GroupName, 2); administration.SetSubItemOrder(SettingManagementMenuNames.GroupName, 3); - return Task.CompletedTask; + if (await context.IsGrantedAsync(WininPermissions.TestSchool.Default)) + { + context.Menu.AddItem( + new ApplicationMenuItem(WininMenus.TestSchool, l["Menu:TestSchool"], "/AppBusiness/TestSchool/TestSchool") + ); + } + if (await context.IsGrantedAsync(WininPermissions.TestStudentDetail.Default)) + { + context.Menu.AddItem( + new ApplicationMenuItem(WininMenus.TestStudentDetail, l["Menu:TestStudentDetail"], "/AppBusiness/TestSchool/TestStudentDetail") + ); + } + + //return Task.CompletedTask; } } 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 ccc98b3..d70dc78 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 @@ -1,4 +1,4 @@ -namespace Faster.Zheng.Winin.Web.Menus; +namespace Faster.Zheng.Winin.Web.Menus; public class WininMenus { @@ -7,4 +7,6 @@ public class WininMenus //Add your menu items here... + public const string TestSchool = Prefix + ".TestSchool"; + public const string TestStudentDetail = Prefix + ".TestStudentDetail"; } diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/CreateModal.cshtml b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/CreateModal.cshtml new file mode 100644 index 0000000..616fc8f --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/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.AppBusiness.TestSchool.TestSchool.CreateModalModel +@{ + Layout = null; +} + + + + + + + + + \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/CreateModal.cshtml.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/CreateModal.cshtml.cs new file mode 100644 index 0000000..f1fe3f6 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/CreateModal.cshtml.cs @@ -0,0 +1,27 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Faster.Zheng.Winin.AppBusiness.TestSchool; +using Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; +using Faster.Zheng.Winin.Web.Pages.AppBusiness.TestSchool.TestSchool.ViewModels; + +namespace Faster.Zheng.Winin.Web.Pages.AppBusiness.TestSchool.TestSchool; + +public class CreateModalModel : WininPageModel +{ + [BindProperty] + public CreateEditTestSchoolViewModel ViewModel { get; set; } + + private readonly ITestSchoolAppService _service; + + public CreateModalModel(ITestSchoolAppService 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/AppBusiness/TestSchool/TestSchool/EditModal.cshtml b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/EditModal.cshtml new file mode 100644 index 0000000..ff22164 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/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.AppBusiness.TestSchool.TestSchool.EditModalModel +@{ + Layout = null; +} + + + + + + + + + + diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/EditModal.cshtml.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/EditModal.cshtml.cs new file mode 100644 index 0000000..fd27215 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/EditModal.cshtml.cs @@ -0,0 +1,38 @@ +using System; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Faster.Zheng.Winin.AppBusiness.TestSchool; +using Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; +using Faster.Zheng.Winin.Web.Pages.AppBusiness.TestSchool.TestSchool.ViewModels; + +namespace Faster.Zheng.Winin.Web.Pages.AppBusiness.TestSchool.TestSchool; + +public class EditModalModel : WininPageModel +{ + [HiddenInput] + [BindProperty(SupportsGet = true)] + public Guid Id { get; set; } + + [BindProperty] + public CreateEditTestSchoolViewModel ViewModel { get; set; } + + private readonly ITestSchoolAppService _service; + + public EditModalModel(ITestSchoolAppService 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/AppBusiness/TestSchool/TestSchool/Index.cshtml b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/Index.cshtml new file mode 100644 index 0000000..75b8fe7 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/Index.cshtml @@ -0,0 +1,48 @@ +@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.AppBusiness.TestSchool.TestSchool +@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["TestSchool"].Value; + PageLayout.Content.BreadCrumb.Add(L["Menu:TestSchool"].Value); + PageLayout.Content.MenuItemName = WininMenus.TestSchool; +} + +@section scripts +{ + +} +@section styles +{ + +} + + + + + + @L["TestSchool"] + + + @if (await Authorization.IsGrantedAsync(WininPermissions.TestSchool.Create)) + { + + } + + + + + + + diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/Index.cshtml.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/Index.cshtml.cs new file mode 100644 index 0000000..2e6047b --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/Index.cshtml.cs @@ -0,0 +1,14 @@ +using System; +using System.Threading.Tasks; + +namespace Faster.Zheng.Winin.Web.Pages.AppBusiness.TestSchool.TestSchool; + +public class IndexModel : WininPageModel +{ + + public virtual async Task OnGetAsync() + { + await Task.CompletedTask; + } +} + diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/ViewModels/CreateEditTestSchoolViewModel.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/ViewModels/CreateEditTestSchoolViewModel.cs new file mode 100644 index 0000000..782957a --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/ViewModels/CreateEditTestSchoolViewModel.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Faster.Zheng.Winin.Enums; + +namespace Faster.Zheng.Winin.Web.Pages.AppBusiness.TestSchool.TestSchool.ViewModels; + +public class CreateEditTestSchoolViewModel +{ + [Display(Name = "TestSchoolSchoolName")] + public string SchoolName { get; set; } + + [Display(Name = "TestSchoolOrderType")] + public SchoolType OrderType { get; set; } + + [Display(Name = "TestSchoolDetails")] + public List Details { get; set; } +} diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/index.css b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/index.css new file mode 100644 index 0000000..e69de29 diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/index.js b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/index.js new file mode 100644 index 0000000..2d0501a --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestSchool/index.js @@ -0,0 +1,70 @@ +$(function () { + + var l = abp.localization.getResource('Winin'); + + var service = faster.zheng.winin.appBusiness.testSchool.testSchool; + var createModal = new abp.ModalManager(abp.appPath + 'AppBusiness/TestSchool/TestSchool/CreateModal'); + var editModal = new abp.ModalManager(abp.appPath + 'AppBusiness/TestSchool/TestSchool/EditModal'); + + var dataTable = $('#TestSchoolTable').DataTable(abp.libs.datatables.normalizeConfiguration({ + processing: true, + serverSide: true, + paging: true, + searching: false, + autoWidth: false, + scrollCollapse: true, + order: [[0, "asc"]], + ajax: abp.libs.datatables.createAjax(service.getList), + columnDefs: [ + { + rowAction: { + items: + [ + { + text: l('Edit'), + visible: abp.auth.isGranted('Winin.TestSchool.Update'), + action: function (data) { + editModal.open({ id: data.record.id }); + } + }, + { + text: l('Delete'), + visible: abp.auth.isGranted('Winin.TestSchool.Delete'), + confirmMessage: function (data) { + return l('TestSchoolDeletionConfirmationMessage', data.record.id); + }, + action: function (data) { + service.delete(data.record.id) + .then(function () { + abp.notify.info(l('SuccessfullyDeleted')); + dataTable.ajax.reload(); + }); + } + } + ] + } + }, + { + title: l('TestSchoolSchoolName'), + data: "schoolName" + }, + { + title: l('TestSchoolOrderType'), + data: "orderType" + }, + ] + })); + + createModal.onResult(function () { + dataTable.ajax.reload(); + }); + + editModal.onResult(function () { + dataTable.ajax.reload(); + }); + + $('#NewTestSchoolButton').click(function (e) { + e.preventDefault(); + createModal.open(); + }); +}); diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/CreateModal.cshtml b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/CreateModal.cshtml new file mode 100644 index 0000000..5cf7196 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/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.AppBusiness.TestSchool.TestStudentDetail.CreateModalModel +@{ + Layout = null; +} + + + + + + + + + \ No newline at end of file diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/CreateModal.cshtml.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/CreateModal.cshtml.cs new file mode 100644 index 0000000..4d4cae3 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/CreateModal.cshtml.cs @@ -0,0 +1,27 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Faster.Zheng.Winin.AppBusiness.TestSchool; +using Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; +using Faster.Zheng.Winin.Web.Pages.AppBusiness.TestSchool.TestStudentDetail.ViewModels; + +namespace Faster.Zheng.Winin.Web.Pages.AppBusiness.TestSchool.TestStudentDetail; + +public class CreateModalModel : WininPageModel +{ + [BindProperty] + public CreateEditTestStudentDetailViewModel ViewModel { get; set; } + + private readonly ITestStudentDetailAppService _service; + + public CreateModalModel(ITestStudentDetailAppService 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/AppBusiness/TestSchool/TestStudentDetail/EditModal.cshtml b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/EditModal.cshtml new file mode 100644 index 0000000..dde5a8f --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/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.AppBusiness.TestSchool.TestStudentDetail.EditModalModel +@{ + Layout = null; +} + + + + + + + + + + diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/EditModal.cshtml.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/EditModal.cshtml.cs new file mode 100644 index 0000000..a951f85 --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/EditModal.cshtml.cs @@ -0,0 +1,38 @@ +using System; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Faster.Zheng.Winin.AppBusiness.TestSchool; +using Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; +using Faster.Zheng.Winin.Web.Pages.AppBusiness.TestSchool.TestStudentDetail.ViewModels; + +namespace Faster.Zheng.Winin.Web.Pages.AppBusiness.TestSchool.TestStudentDetail; + +public class EditModalModel : WininPageModel +{ + [HiddenInput] + [BindProperty(SupportsGet = true)] + public Guid Id { get; set; } + + [BindProperty] + public CreateEditTestStudentDetailViewModel ViewModel { get; set; } + + private readonly ITestStudentDetailAppService _service; + + public EditModalModel(ITestStudentDetailAppService 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/AppBusiness/TestSchool/TestStudentDetail/Index.cshtml b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/Index.cshtml new file mode 100644 index 0000000..7a1fe0c --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/Index.cshtml @@ -0,0 +1,48 @@ +@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.AppBusiness.TestSchool.TestStudentDetail +@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["TestStudentDetail"].Value; + PageLayout.Content.BreadCrumb.Add(L["Menu:TestStudentDetail"].Value); + PageLayout.Content.MenuItemName = WininMenus.TestStudentDetail; +} + +@section scripts +{ + +} +@section styles +{ + +} + + + + + + @L["TestStudentDetail"] + + + @if (await Authorization.IsGrantedAsync(WininPermissions.TestStudentDetail.Create)) + { + + } + + + + + + + diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/Index.cshtml.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/Index.cshtml.cs new file mode 100644 index 0000000..ca76a0e --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/Index.cshtml.cs @@ -0,0 +1,14 @@ +using System; +using System.Threading.Tasks; + +namespace Faster.Zheng.Winin.Web.Pages.AppBusiness.TestSchool.TestStudentDetail; + +public class IndexModel : WininPageModel +{ + + public virtual async Task OnGetAsync() + { + await Task.CompletedTask; + } +} + diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/ViewModels/CreateEditTestStudentDetailViewModel.cs b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/ViewModels/CreateEditTestStudentDetailViewModel.cs new file mode 100644 index 0000000..eb3612d --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/ViewModels/CreateEditTestStudentDetailViewModel.cs @@ -0,0 +1,17 @@ +using System; +using System.ComponentModel.DataAnnotations; +using Faster.Zheng.Winin.Enums; + +namespace Faster.Zheng.Winin.Web.Pages.AppBusiness.TestSchool.TestStudentDetail.ViewModels; + +public class CreateEditTestStudentDetailViewModel +{ + [Display(Name = "TestStudentDetailMasterId")] + public Guid MasterId { get; set; } + + [Display(Name = "TestStudentDetailStudentName")] + public string StudentName { get; set; } + + [Display(Name = "TestStudentDetailOrderType")] + public StudentType OrderType { get; set; } +} diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/index.css b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/index.css new file mode 100644 index 0000000..e69de29 diff --git a/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/index.js b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/index.js new file mode 100644 index 0000000..7360ddd --- /dev/null +++ b/Code/Be/Faster.Zheng.Winin/src/Faster.Zheng.Winin.Web/Pages/AppBusiness/TestSchool/TestStudentDetail/index.js @@ -0,0 +1,74 @@ +$(function () { + + var l = abp.localization.getResource('Winin'); + + var service = faster.zheng.winin.appBusiness.testSchool.testStudentDetail; + var createModal = new abp.ModalManager(abp.appPath + 'AppBusiness/TestSchool/TestStudentDetail/CreateModal'); + var editModal = new abp.ModalManager(abp.appPath + 'AppBusiness/TestSchool/TestStudentDetail/EditModal'); + + var dataTable = $('#TestStudentDetailTable').DataTable(abp.libs.datatables.normalizeConfiguration({ + processing: true, + serverSide: true, + paging: true, + searching: false, + autoWidth: false, + scrollCollapse: true, + order: [[0, "asc"]], + ajax: abp.libs.datatables.createAjax(service.getList), + columnDefs: [ + { + rowAction: { + items: + [ + { + text: l('Edit'), + visible: abp.auth.isGranted('Winin.TestStudentDetail.Update'), + action: function (data) { + editModal.open({ id: data.record.id }); + } + }, + { + text: l('Delete'), + visible: abp.auth.isGranted('Winin.TestStudentDetail.Delete'), + confirmMessage: function (data) { + return l('TestStudentDetailDeletionConfirmationMessage', data.record.id); + }, + action: function (data) { + service.delete(data.record.id) + .then(function () { + abp.notify.info(l('SuccessfullyDeleted')); + dataTable.ajax.reload(); + }); + } + } + ] + } + }, + { + title: l('TestStudentDetailMasterId'), + data: "masterId" + }, + { + title: l('TestStudentDetailStudentName'), + data: "studentName" + }, + { + title: l('TestStudentDetailOrderType'), + data: "orderType" + }, + ] + })); + + createModal.onResult(function () { + dataTable.ajax.reload(); + }); + + editModal.onResult(function () { + dataTable.ajax.reload(); + }); + + $('#NewTestStudentDetailButton').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 729af49..3120832 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 @@ -1,4 +1,8 @@ -using AutoMapper; +using Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; +using Faster.Zheng.Winin.Web.Pages.AppBusiness.TestSchool.TestSchool.ViewModels; +using Faster.Zheng.Winin.AppBusiness.TestSchool.Dtos; +using Faster.Zheng.Winin.Web.Pages.AppBusiness.TestSchool.TestStudentDetail.ViewModels; +using AutoMapper; namespace Faster.Zheng.Winin.Web; @@ -7,5 +11,9 @@ public class WininWebAutoMapperProfile : Profile public WininWebAutoMapperProfile() { //Define your AutoMapper configuration here for the Web project. + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); } }