diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.Shared/WtmBlazorUtils/BasePage.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.Shared/WtmBlazorUtils/BasePage.cs index b9527a299..8d3a05769 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.Shared/WtmBlazorUtils/BasePage.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.Shared/WtmBlazorUtils/BasePage.cs @@ -183,7 +183,7 @@ public async Task PostsForm(ValidateForm form, string url, Func { - protected override List InitGridAction() + protected override Task> InitGridAction() { var actions = new List { @@ -16,10 +17,10 @@ protected override List InitGridAction() this.MakeStandardAction("ActionLog", GridActionStandardTypesEnum.Details, "","_Admin", dialogWidth: 800).SetHideOnToolBar(true), this.MakeStandardAction("ActionLog", GridActionStandardTypesEnum.ExportExcel, "","_Admin"), }; - return actions; + return Task.FromResult (actions); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { var header = new List>(); @@ -62,10 +63,10 @@ protected override IEnumerable> InitGridHeader() })); header.Add(this.MakeGridHeaderAction(width: 120)); - return header; + return Task.FromResult>> (header); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.ITCode, x=>x.ITCode) @@ -76,7 +77,7 @@ public override IOrderedQueryable GetSearchQuery() .CheckWhere(Searcher.Duration,x=>x.Duration >= Searcher.Duration) .OrderByDescending(x=>x.ActionTime); - return query; + return Task.FromResult (query); } } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityBatchVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityBatchVM.cs index 3a38d6bc0..a793af275 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityBatchVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -26,8 +26,9 @@ public CityBatchVM() public class City_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityImportVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityImportVM.cs index 1cc4ce6ed..0e06cf4db 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityImportVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -19,10 +19,10 @@ public partial class CityTemplateVM : BaseTemplateVM [Display(Name = "_Admin.Parent")] public ExcelPropety Parent_Excel = ExcelPropety.CreateProperty(x => x.ParentId); - protected override void InitVM() + protected override async Task InitVM() { Parent_Excel.DataType = ColumnDataType.ComboBox; - Parent_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Parent_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityListVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityListVM.cs index b3b88cf39..04972a6fe 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityListVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,17 +14,17 @@ namespace WalkingTec.Mvvm.BlazorDemo.ViewModel.BasicData.CityVMs public partial class CityListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name), this.MakeGridHeader(x => x.Test), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.Name, x=>x.Name) @@ -38,7 +38,7 @@ public override IOrderedQueryable GetSearchQuery() Name_view = x.Parent.Name, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CitySearcher.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CitySearcher.cs index 86193ba06..4e1fbfe15 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CitySearcher.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CitySearcher.cs @@ -19,7 +19,7 @@ public partial class CitySearcher : BaseSearcher [Display(Name = "_Admin.Parent")] public int? ParentId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityVM.cs index c7f06c3e2..1c7dfe44d 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/CityVMs/CityVM.cs @@ -19,23 +19,8 @@ public CityVM() SetInclude(x => x.Children); } - protected override void InitVM() + protected override async Task InitVM() { } - - public override void DoAdd() - { - base.DoAdd(); - } - - public override void DoEdit(bool updateAllFields = false) - { - base.DoEdit(updateAllFields); - } - - public override void DoDelete() - { - base.DoDelete(); - } } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/GroupVMTest.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/GroupVMTest.cs index 56d25d0fb..49e09a815 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/GroupVMTest.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/GroupVMTest.cs @@ -15,7 +15,7 @@ public class GroupVMTest : BaseVM public CityVM vm2 { get; set; } = new CityVM(); - protected override void InitVM() + protected override async Task InitVM() { if(EntityId != null) { diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorBatchVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorBatchVM.cs index 253fca3ff..383cf0649 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorBatchVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorBatchVM.cs @@ -31,9 +31,9 @@ public class Major_BatchEdit : BaseVM [Display(Name = "所属学校")] public int? SchoolId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - AllSchools = DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); + AllSchools = await DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorImportVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorImportVM.cs index 79433ad34..038be266a 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorImportVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -23,10 +23,10 @@ public partial class MajorTemplateVM : BaseTemplateVM [Display(Name = "所属学校")] public ExcelPropety School_Excel = ExcelPropety.CreateProperty(x => x.SchoolId); - protected override void InitVM() + protected override async Task InitVM() { School_Excel.DataType = ColumnDataType.ComboBox; - School_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); + School_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorListVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorListVM.cs index 9c85b8ddb..4d8837839 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorListVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.BlazorDemo.ViewModel.BasicData.MajorVMs public partial class MajorListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.MajorCode), this.MakeGridHeader(x => x.MajorName), this.MakeGridHeader(x => x.MajorType), @@ -24,10 +24,10 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.SchoolName_view), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.MajorCode, x=>x.MajorCode) @@ -47,7 +47,7 @@ public override IOrderedQueryable GetSearchQuery() Name_view = x.StudentMajors.Select(y=>y.Student.Name).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorSearcher.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorSearcher.cs index 592ddfa05..d50b74bb6 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorSearcher.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorSearcher.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -25,8 +25,9 @@ public partial class MajorSearcher : BaseSearcher [Display(Name = "学生")] public List SelectedStudentMajorsIDs { get; set; } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorVM.cs index 2f0d76fc9..5999bc2d7 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/MajorVMs/MajorVM.cs @@ -21,12 +21,12 @@ public MajorVM() SetInclude(x => x.StudentMajors); } - protected override void InitVM() + protected override async Task InitVM() { SelectedStudentMajorsIDs = Entity.StudentMajors?.Select(x => x.StudentId).ToList(); } - public override void DoAdd() + public override async Task DoAdd() { Entity.StudentMajors = new List(); if (SelectedStudentMajorsIDs != null) @@ -37,10 +37,10 @@ public override void DoAdd() } } - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { Entity.StudentMajors = new List(); if(SelectedStudentMajorsIDs != null ) @@ -48,12 +48,12 @@ public override void DoEdit(bool updateAllFields = false) SelectedStudentMajorsIDs.ForEach(x => Entity.StudentMajors.Add(new StudentMajor { StudentId = x })); } - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolBatchVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolBatchVM.cs index 0d6985a82..d5a43c374 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolBatchVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -26,8 +26,9 @@ public SchoolBatchVM() public class School_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolImportVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolImportVM.cs index 7b493c768..a1c99f5ce 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolImportVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolImportVM.cs @@ -21,7 +21,7 @@ public partial class SchoolTemplateVM : BaseTemplateVM [Display(Name = "备注")] public ExcelPropety Remark_Excel = ExcelPropety.CreateProperty(x => x.Remark); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolListVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolListVM.cs index 33e55c72e..00184cbf3 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolListVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.BlazorDemo.ViewModel.BasicData.SchoolVMs public partial class SchoolListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.SchoolCode), this.MakeGridHeader(x => x.SchoolName), this.MakeGridHeader(x => x.SchoolType), @@ -24,7 +24,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.PhotoId).SetFormat(PhotoIdFormat), this.MakeGridHeader(x => x.FileId).SetFormat(FileIdFormat), this.MakeGridHeaderAction(width: 200) - }; + }); } private List PhotoIdFormat(School_View entity, object val) { @@ -45,7 +45,7 @@ private List FileIdFormat(School_View entity, object val) } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.SchoolCode, x=>x.SchoolCode) @@ -63,7 +63,7 @@ public override IOrderedQueryable GetSearchQuery() FileId = x.FileId, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolSearcher.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolSearcher.cs index 38f34aab8..e445c023e 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolSearcher.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolSearcher.cs @@ -21,7 +21,7 @@ public partial class SchoolSearcher : BaseSearcher [Display(Name = "备注")] public String Remark { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolVM.cs index 7202cfedf..2710fdc96 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/SchoolVMs/SchoolVM.cs @@ -18,23 +18,23 @@ public SchoolVM() SetInclude(x => x.Majors, x=>x.Photos); } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentBatchVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentBatchVM.cs index b45a17c32..acaad9ef7 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentBatchVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentBatchVM.cs @@ -26,7 +26,7 @@ public StudentBatchVM() public class Student_BatchEdit : BaseVM { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentImportVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentImportVM.cs index 03f307c90..06b5ae8d2 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentImportVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentImportVM.cs @@ -33,7 +33,7 @@ public partial class StudentTemplateVM : BaseTemplateVM [Display(Name = "日期")] public ExcelPropety EnRollDate_Excel = ExcelPropety.CreateProperty(x => x.EnRollDate); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentListVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentListVM.cs index b2951d09e..f40623254 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentListVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.BlazorDemo.ViewModel.BasicData.StudentVMs public partial class StudentListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.ID), this.MakeGridHeader(x => x.Password), this.MakeGridHeader(x => x.Email), @@ -30,7 +30,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.EnRollDate), this.MakeGridHeader(x => x.MajorName_view), this.MakeGridHeaderAction(width: 200) - }; + }); } private List PhotoIdFormat(Student_View entity, object val) { @@ -42,7 +42,7 @@ private List PhotoIdFormat(Student_View entity, object val) } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.ID, x=>x.ID) @@ -72,7 +72,7 @@ public override IOrderedQueryable GetSearchQuery() MajorName_view = x.StudentMajor.Select(y=>y.Major.MajorName).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentSearcher.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentSearcher.cs index 0e385c545..99921d70b 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentSearcher.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentSearcher.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -35,8 +35,9 @@ public partial class StudentSearcher : BaseSearcher [Display(Name = "专业")] public List SelectedStudentMajorIDs { get; set; } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentVM.cs index d388c7325..0d521f3fe 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/BasicData/StudentVMs/StudentVM.cs @@ -20,12 +20,12 @@ public StudentVM() SetInclude(x => x.StudentMajor); } - protected override void InitVM() + protected override async Task InitVM() { SelectedStudentMajorIDs = Entity.StudentMajor?.Select(x => x.MajorId.ToString()).ToList(); } - public override void DoAdd() + public override async Task DoAdd() { Entity.StudentMajor = new List(); if (SelectedStudentMajorIDs != null) @@ -38,10 +38,10 @@ public override void DoAdd() } } - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { Entity.StudentMajor = new List(); if(SelectedStudentMajorIDs != null ) @@ -54,12 +54,12 @@ public override void DoEdit(bool updateAllFields = false) } } - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DataPrivilegeListVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DataPrivilegeListVM.cs index 6b9464eac..67773d5d0 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DataPrivilegeListVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DataPrivilegeListVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -11,7 +12,7 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs public class DataPrivilegeListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { string tp = ""; if (Searcher.DpType == DpTypeEnum.User) @@ -23,16 +24,16 @@ protected override List InitGridAction() tp = "UserGroup"; } - return new List + return Task.FromResult (new List { this.MakeStandardAction("DataPrivilege", GridActionStandardTypesEnum.Create, "","_Admin", dialogWidth: 800).SetQueryString($"Type={tp}"), this.MakeStandardAction("DataPrivilege", GridActionStandardTypesEnum.ExportExcel, "","_Admin"), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name, 200), this.MakeGridHeader(x => x.PName).SetFormat((entity,val)=>GetPrivilegeName(entity)), this.MakeGridHeader(x => x.TableName), @@ -40,7 +41,7 @@ protected override IEnumerable> InitGridHead this.MakeGridHeader(x=>x.Edit,200).SetFormat((entity,val)=>GetOperation(entity)).SetHeader(Localizer["Sys.Operation"]).SetDisableExport(), this.MakeGridHeader(x => x.DpType).SetHide(true), this.MakeGridHeader(x => x.TargetId).SetHide(true) - }; + }); } @@ -81,7 +82,7 @@ public List GetOperation(DataPrivilege_ListView item) /// /// 查询结果 /// - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { IOrderedQueryable query = null; if (Searcher.DpType == DpTypeEnum.User) @@ -117,10 +118,10 @@ public override IOrderedQueryable GetSearchQuery() .OrderByDescending(x => x.Name).OrderByDescending(x => x.TableName); } - return query; + return Task.FromResult (query); } - public override void AfterDoSearcher() + public override async Task AfterDoSearcher() { if (Searcher.DpType == DpTypeEnum.User) { @@ -128,7 +129,7 @@ public override void AfterDoSearcher() } var groupIDs = EntityList.Select(x=>x.TargetId).ToList(); Dictionary groupdata = new Dictionary(); - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { var dd = Wtm.CallAPI>("mainhost", "/api/_account/GetFrameworkGroups").Result; if(dd.Data != null) @@ -141,7 +142,7 @@ public override void AfterDoSearcher() } else { - var ag = Wtm.GetTenantGroups(Wtm.LoginUserInfo?.CurrentTenant); + var ag = Wtm.GetTenantGroups((await Wtm.GetLoginUserInfo ())?.CurrentTenant); foreach (var item in ag) { groupdata.TryAdd(item.GroupCode, item.GroupName); @@ -151,7 +152,7 @@ public override void AfterDoSearcher() { item.Name = groupdata.ContainsKey(item.TargetId) ? groupdata[item.TargetId] : ""; } - base.AfterDoSearcher(); + await base.AfterDoSearcher(); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DataPrivilegeSearcher.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DataPrivilegeSearcher.cs index c5968f602..744ba6356 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DataPrivilegeSearcher.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DataPrivilegeSearcher.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs @@ -26,9 +27,10 @@ public class DataPrivilegeSearcher : BaseSearcher public DpTypeEnum DpType { get; set; } public Guid? DomainID { get; set; } public List AllDomains { get; set; } - protected override void InitVM() + protected override Task InitVM() { TableNames = new List(); + return Task.CompletedTask; } } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DataPrivilegeVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DataPrivilegeVM.cs index aa3564868..b3534c659 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DataPrivilegeVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DataPrivilegeVM.cs @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkGroupVMs; using WalkingTec.Mvvm.Core.Extensions; using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs { @@ -29,7 +30,7 @@ public DataPrivilegeVM() IsAll = false; } - protected override void InitVM() + protected override async Task InitVM() { TableNames = new List(); if (ControllerName.Contains("/api") == false) @@ -57,14 +58,15 @@ protected override void InitVM() } - protected override void ReInitVM() + protected override Task ReInitVM() { TableNames = new List(); AllItems = new List(); TableNames = Wtm.DataPrivilegeSettings.ToListItems(x => x.PrivillegeName, x => x.ModelName); + return Task.CompletedTask; } - public override void Validate() + public override async Task Validate() { if (DpType == DpTypeEnum.User) { @@ -75,9 +77,9 @@ public override void Validate() else { string user = null; - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - var check = Wtm.CallAPI>("mainhost", "/api/_account/GetUserById").Result; + var check = await Wtm.CallAPI>("mainhost", "/api/_account/GetUserById"); if (check.Data != null) { user = check.Data.Where(x => x.Value.ToString() == Entity.UserCode).Select(x => x.Value.ToString()).FirstOrDefault(); @@ -85,7 +87,7 @@ public override void Validate() } else { - user = DC.Set().Where(x => x.ITCode == Entity.UserCode).Select(x=>x.ITCode).FirstOrDefault(); + user = await DC.Set().Where(x => x.ITCode == Entity.UserCode).Select(x=>x.ITCode).FirstOrDefaultAsync(); } if (user == null) { @@ -101,10 +103,10 @@ public override void Validate() } } - base.Validate(); + await base.Validate(); } - public override async Task DoAddAsync() + public override async Task DoAdd() { if (SelectedItemsID == null && IsAll == false) { @@ -114,11 +116,11 @@ public override async Task DoAddAsync() if (DpType == DpTypeEnum.User) { - oldIDs = DC.Set().Where(x => x.UserCode == Entity.UserCode && x.TableName == this.Entity.TableName).Select(x => x.ID).ToList(); + oldIDs = await DC.Set().Where(x => x.UserCode == Entity.UserCode && x.TableName == this.Entity.TableName).Select(x => x.ID).ToListAsync(); } else { - oldIDs = DC.Set().Where(x => x.GroupCode == Entity.GroupCode && x.TableName == this.Entity.TableName).Select(x => x.ID).ToList(); + oldIDs = await DC.Set().Where(x => x.GroupCode == Entity.GroupCode && x.TableName == this.Entity.TableName).Select(x => x.ID).ToListAsync(); } foreach (var oldid in oldIDs) { @@ -134,7 +136,7 @@ public override async Task DoAddAsync() dp.RelateId = null; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } @@ -146,7 +148,7 @@ public override async Task DoAddAsync() dp.RelateId = id; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } @@ -159,7 +161,7 @@ public override async Task DoAddAsync() dp.RelateId = null; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } else @@ -170,7 +172,7 @@ public override async Task DoAddAsync() dp.RelateId = id; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } @@ -187,17 +189,17 @@ public override async Task DoAddAsync() } - public override async Task DoEditAsync(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { List oldIDs = null; if (DpType == DpTypeEnum.User) { - oldIDs = DC.Set().Where(x => x.UserCode == Entity.UserCode && x.TableName == this.Entity.TableName).Select(x => x.ID).ToList(); + oldIDs = await DC.Set().Where(x => x.UserCode == Entity.UserCode && x.TableName == this.Entity.TableName).Select(x => x.ID).ToListAsync(); } else { - oldIDs = DC.Set().Where(x => x.GroupCode == Entity.GroupCode && x.TableName == this.Entity.TableName).Select(x => x.ID).ToList(); + oldIDs = await DC.Set().Where(x => x.GroupCode == Entity.GroupCode && x.TableName == this.Entity.TableName).Select(x => x.ID).ToListAsync(); } foreach (var oldid in oldIDs) { @@ -213,7 +215,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = null; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } @@ -223,7 +225,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = null; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } @@ -238,8 +240,8 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = id; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; - DC.Set().Add(dp); + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; + await DC.Set().AddAsync(dp); } } @@ -251,8 +253,8 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = id; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; - DC.Set().Add(dp); + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; + await DC.Set().AddAsync(dp); } } } @@ -268,7 +270,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) } } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { List oldIDs = null; diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DpListVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DpListVM.cs index aae6714fe..abed19cad 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DpListVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataPrivilegeVMs/DpListVM.cs @@ -4,6 +4,7 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs @@ -15,20 +16,20 @@ public DpListVM() NeedPage = false; } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name), - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { var dps = Wtm.DataPrivilegeSettings.Where(x => x.ModelName == Searcher.TableName).SingleOrDefault(); if (dps != null) { - return dps.GetItemList(Wtm, Searcher.Filter).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); + return (await dps.GetItemList (Wtm, Searcher.Filter)).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); } else { @@ -36,12 +37,12 @@ public override IOrderedQueryable GetSearchQuery() } } - public override IOrderedQueryable GetBatchQuery() + public override async Task> GetBatchQuery() { var dps = Wtm.DataPrivilegeSettings.Where(x => x.ModelName == Searcher.TableName).SingleOrDefault(); if (dps != null) { - return dps.GetItemList(Wtm, null,Ids).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); + return (await dps.GetItemList (Wtm, null, Ids)).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); } else { diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataTableVMs/ActionLogListVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataTableVMs/ActionLogListVM.cs index ecd156bf8..223538e29 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataTableVMs/ActionLogListVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/DataTableVMs/ActionLogListVM.cs @@ -2,13 +2,14 @@ using System.Collections.Generic; using System.Data; using System.Data.Common; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Demo.ViewModels.DataTableVMs { public class DatatableListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { var actions = new List { @@ -18,10 +19,10 @@ protected override List InitGridAction() this.MakeAction("ActionLog","Details","详情(本窗口)","Details new window", GridActionParameterTypesEnum.SingleId,"_Admin").SetShowDialog(false).SetIsRedirect(true).SetShowInRow(true).SetQueryString("a=3"), this.MakeStandardAction("DataTable", GridActionStandardTypesEnum.ExportExcel, "导出","") }; - return actions; + return Task.FromResult (actions); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { var header = new List>(); var topheader = this.MakeGridHeaderParent("父表头"); @@ -53,7 +54,7 @@ protected override IEnumerable> InitGridHeader() header.Add(this.MakeGridHeaderAction(width: 320)); - return header; + return Task.FromResult>> (header); } public override DbCommand GetSearchCommand() diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkGroupVMs/FrameworkGroupListVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkGroupVMs/FrameworkGroupListVM.cs index 7ef3d7a1b..ac6b92506 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkGroupVMs/FrameworkGroupListVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkGroupVMs/FrameworkGroupListVM.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Core.Support.Json; @@ -15,9 +16,9 @@ public FrameworkGroupListVM() NeedPage = false; } - protected override List InitGridAction() + protected override async Task> InitGridAction() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return new List { @@ -39,9 +40,9 @@ protected override List InitGridAction() } } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.GroupName, 220), this.MakeGridHeader(x => x.GroupCode, 120), this.MakeGridHeader(x => x.ManagerName,220).SetFormat((a,b)=>{ @@ -59,12 +60,12 @@ protected override IEnumerable> InitGridHeader( this.MakeGridHeader(x => x.GroupRemark), this.MakeGridHeader(x => x.ParentId).SetHide(), this.MakeGridHeaderAction(width: 300) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { - return DC.Set() + return Task.FromResult (DC.Set() .CheckContain(Searcher.GroupCode, x => x.GroupCode) .CheckContain(Searcher.GroupName, x => x.GroupName) .GroupJoin(DC.Set(), ok => ok.Manager, ik => ik.ITCode, (group, user) => new { user = user, group = group }) @@ -77,9 +78,9 @@ public override IOrderedQueryable GetSearchQuery() Manager = a.group.Manager, ManagerName = b.Name, }) - .OrderBy(x => x.GroupCode); + .OrderBy(x => x.GroupCode)); } - public override void AfterDoSearcher() + public override Task AfterDoSearcher() { var topdata = EntityList.MakeTree(x => x.GroupCode).FlatTree(x => x.GroupCode); if (ControllerName.Contains("/api") == false) @@ -87,7 +88,7 @@ public override void AfterDoSearcher() topdata.ForEach((x) => { int l = x.GetLevel(); for (int i = 0; i < l; i++) { x.GroupName = "    " + x.GroupName; } }); } EntityList = topdata; - + return Task.CompletedTask; } } public class FrameworkGroup_View : TreePoco diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkGroupVMs/FrameworkGroupVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkGroupVMs/FrameworkGroupVM.cs index 30326329f..09328beb1 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkGroupVMs/FrameworkGroupVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkGroupVMs/FrameworkGroupVM.cs @@ -4,6 +4,7 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -18,44 +19,44 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - public override void Validate() + public override async Task Validate() { if (string.IsNullOrEmpty(Entity.Manager) == false) { - var user = DC.Set().Where(x => x.ITCode == Entity.Manager).FirstOrDefault(); + var user = await DC.Set().Where(x => x.ITCode == Entity.Manager).FirstOrDefaultAsync(); if (user == null) { MSD.AddModelError("Entity.Manager", Localizer["Sys.CannotFindUser", Entity.Manager]); } } - base.Validate(); + await base.Validate(); } - public override void DoAdd() - { - base.DoAdd(); - Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant).Wait(); - } + //public override async Task DoAddAsync() + //{ + // await await base.DoAddAsync(); + // Wtm.RemoveGroupCache((await GetLoginUserInfo ()).CurrentTenant).Wait(); + //} - public override void DoEdit(bool updateAllFields = false) - { - base.DoEdit(updateAllFields); - Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant).Wait(); - } + //public override async Task DoEdit(bool updateAllFields = false) + //{ + // await await base.DoEditAsync(updateAllFields); + // Wtm.RemoveGroupCache((await GetLoginUserInfo ()).CurrentTenant).Wait(); + //} - public override async Task DoDeleteAsync() + public override async Task DoDelete() { using (var tran = DC.BeginTransaction()) { try { - await base.DoDeleteAsync(); + await base.DoDelete(); var ur = DC.Set().Where(x => x.GroupCode == Entity.GroupCode); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); await Wtm.RemoveUserCacheByGroup(Entity.GroupCode); - await Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant); + await Wtm.RemoveGroupCache((await GetLoginUserInfo ()).CurrentTenant); } catch { diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkActionListVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkActionListVM.cs index c09b6ed63..a039decbb 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkActionListVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkActionListVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkMenuVMs @@ -15,15 +16,12 @@ public FrameworkActionListVM() NeedPage = false; } - protected override List InitGridAction() + protected override Task> InitGridAction() { - var actions = new List - { - }; - return actions; + return Task.FromResult (new List { }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { var header = new List>(); @@ -32,10 +30,10 @@ protected override IEnumerable> InitGridHe header.Add(this.MakeGridHeader(x => x.ClassName, 150)); header.Add(this.MakeGridHeader(x => x.MethodName, 150)); - return header; + return Task.FromResult>> (header); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var newdc = DC as FrameworkContext; List actions = new List(); @@ -84,7 +82,7 @@ public override IOrderedQueryable GetSearchQuery() } } toremove.ForEach(x => actions.Remove(x)); - return actions.AsQueryable().OrderBy(x=>x.AreaName).ThenBy(x=>x.ModuleName).ThenBy(x=>x.MethodName); + return Task.FromResult (actions.AsQueryable ().OrderBy (x => x.AreaName).ThenBy (x => x.ModuleName).ThenBy (x => x.MethodName)); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkMenuBatchVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkMenuBatchVM.cs index 0c52f2848..10c5df118 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkMenuBatchVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkMenuBatchVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -13,11 +14,12 @@ public class FrameworkMenuBatchVM : BaseBatchVM DoBatchDelete() { if (Ids != null) { @@ -27,7 +29,7 @@ public override bool DoBatchDelete() DC.CascadeDelete(f); } } - DC.SaveChanges(); + await DC.SaveChangesAsync(); return true; } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkMenuListVM2.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkMenuListVM2.cs index cb8bd000c..462f0916f 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkMenuListVM2.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkMenuListVM2.cs @@ -4,6 +4,7 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text.RegularExpressions; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -16,7 +17,7 @@ public FrameworkMenuListVM2() this.NeedPage = false; } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { List> rv = new List>(); rv.AddRange(new GridColumn[] { @@ -32,10 +33,10 @@ protected override IEnumerable> InitGridHead this.MakeGridHeader(x=>x.ParentId).SetHide(), this.MakeGridHeaderAction(width: 290) }); - return rv; + return Task.FromResult>> (rv); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { List data = new List(); using (var maindc = Wtm.CreateDC(false, "default")) diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkMenuVM2.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkMenuVM2.cs index 3550ccff2..8a263434c 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkMenuVM2.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkMenuVMs/FrameworkMenuVM2.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -27,9 +28,9 @@ public FrameworkMenuVM2() SelectedRolesCodes = new List(); } - protected override void InitVM() + protected override async Task InitVM() { - SelectedRolesCodes.AddRange(DC.Set().Where(x => x.MenuItemId == Entity.ID && x.RoleCode != null && x.Allowed == true).Select(x => x.RoleCode).ToList()); + SelectedRolesCodes.AddRange(await DC.Set().Where(x => x.MenuItemId == Entity.ID && x.RoleCode != null && x.Allowed == true).Select(x => x.RoleCode).ToListAsync()); SelectedRolesCodes = SelectedRolesCodes.Distinct().ToList(); var data = DC.Set().ToList(); @@ -42,7 +43,7 @@ protected override void InitVM() if (SelectedModule != null) { var urls = modules.Where(x => x.FullName == SelectedModule && x.IsApi == true).SelectMany(x => x.Actions).Where(x => x.IgnorePrivillege == false).Select(x => x.Url).ToList(); - SelectedActionIDs = DC.Set().Where(x => urls.Contains(x.Url) && x.IsInside == true && x.FolderOnly == false).Select(x => x.MethodName).ToList(); + SelectedActionIDs = await DC.Set().Where(x => urls.Contains(x.Url) && x.IsInside == true && x.FolderOnly == false).Select(x => x.MethodName).ToListAsync(); } else { @@ -51,7 +52,7 @@ protected override void InitVM() } } - public override void Validate() + public override async Task Validate() { if (Entity.IsInside == true && Entity.FolderOnly == false) { @@ -62,17 +63,17 @@ public override void Validate() else { var modules = Wtm.GlobaInfo.AllModule; - var test = DC.Set().Where(x => x.Url != null && x.Url.ToLower() == this.Entity.Url.ToLower() && x.ID != Entity.ID).FirstOrDefault(); + var test = await DC.Set().Where(x => x.Url != null && x.Url.ToLower() == this.Entity.Url.ToLower() && x.ID != Entity.ID).FirstOrDefaultAsync(); if (test != null) { MSD.AddModelError(" error", Localizer["_Admin.ModuleHasSet"]); } } } - base.Validate(); + await base.Validate(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { if (Entity.IsInside == false) { @@ -160,17 +161,17 @@ public override void DoEdit(bool updateAllFields = false) FC.Add("Entity.Children[0].MethodName", 0); FC.Add("Entity.Children[0].Url", 0); } - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); List guids = new List(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } - AddPrivilege(guids); + await AddPrivilege(guids); } - public override void DoAdd() + public override async Task DoAdd() { if (Entity.IsInside == false) { @@ -234,19 +235,19 @@ public override void DoAdd() } } - base.DoAdd(); + await base.DoAdd(); List guids = new List(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } - AddPrivilege(guids); + await AddPrivilege(guids); } - public void AddPrivilege(List menuids) + public async Task AddPrivilege(List menuids) { - var admin = DC.Set().Where(x => x.RoleCode == "001").SingleOrDefault(); + var admin = await DC.Set().Where(x => x.RoleCode == "001").SingleOrDefaultAsync(); if (admin != null && SelectedRolesCodes.Contains(admin.RoleCode) == false) { SelectedRolesCodes.Add(admin.RoleCode); @@ -264,21 +265,21 @@ public void AddPrivilege(List menuids) fp.MenuItemId = menuid; fp.RoleCode = code; fp.Allowed = true; - DC.Set().Add(fp); + await DC.Set().AddAsync(fp); } } } - DC.SaveChanges(); - Wtm.RemoveUserCacheByRole(SelectedRolesCodes.ToArray()).Wait(); + await DC.SaveChangesAsync(); + await Wtm.RemoveUserCacheByRole(SelectedRolesCodes.ToArray()); } - public override void DoDelete() + public override async Task DoDelete() { try { DC.CascadeDelete(Entity); - DC.SaveChanges(); + await DC.SaveChangesAsync(); } catch { } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkRoleVMs/FrameworkRoleListVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkRoleVMs/FrameworkRoleListVM.cs index d2d2f6ce5..cad654f22 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkRoleVMs/FrameworkRoleListVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkRoleVMs/FrameworkRoleListVM.cs @@ -1,6 +1,7 @@ // WTM默认页面 Wtm buidin page using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Core.Support.Json; @@ -9,9 +10,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkRoleVMs { public class FrameworkRoleListVM : BasePagedListVM { - protected override List InitGridAction() + protected override async Task> InitGridAction() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return new List { @@ -34,23 +35,23 @@ protected override List InitGridAction() } } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.RoleCode, 120), this.MakeGridHeader(x => x.RoleName, 120), this.MakeGridHeader(x => x.RoleRemark), this.MakeGridHeaderAction(width: 300) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.RoleCode, x => x.RoleCode) .CheckContain(Searcher.RoleName, x => x.RoleName) .OrderBy(x => x.RoleCode); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkRoleVMs/FrameworkRoleMDVM2.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkRoleVMs/FrameworkRoleMDVM2.cs index b79eb180a..1d3f22732 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkRoleVMs/FrameworkRoleMDVM2.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkRoleVMs/FrameworkRoleMDVM2.cs @@ -20,19 +20,19 @@ public FrameworkRoleMDVM2() } - protected override FrameworkRole GetById(object Id) + protected override async Task GetById(object Id) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Wtm.CallAPI("mainhost", $"/api/_frameworkrole/{Id}").Result.Data.Entity; + return (await Wtm.CallAPI("mainhost", $"/api/_frameworkrole/{Id}")).Data.Entity; } else { - return base.GetById(Id); + return await base.GetById(Id); } } - protected override void InitVM() + protected override async Task InitVM() { var allowedids = DC.Set() .Where(x => x.RoleCode == Entity.RoleCode && x.Allowed == true).Select(x => x.MenuItemId) @@ -44,9 +44,10 @@ protected override void InitVM() } var topdata = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder).Where(x => x.IsInside == false || x.FolderOnly == true || string.IsNullOrEmpty(x.MethodName)).ToList(); - if (Wtm.ConfigInfo.EnableTenant == true && LoginUserInfo.CurrentTenant != null) + if (Wtm.ConfigInfo.EnableTenant == true && (await GetLoginUserInfo ()).CurrentTenant != null) { - var ct = Wtm.GlobaInfo.AllTenant.Where(x => x.TCode == LoginUserInfo.CurrentTenant).FirstOrDefault(); + var _current_tenant = (await GetLoginUserInfo ()).CurrentTenant; + var ct = Wtm.GlobaInfo.AllTenant.Where(x => x.TCode == _current_tenant).FirstOrDefault(); for (int i = 0; i < topdata.Count; i++) { if (topdata[i].TenantAllowed == false || (topdata[i].Url != null && ct.EnableSub == false && topdata[i].Url.ToLower().Contains("frameworktenant"))) @@ -133,7 +134,7 @@ public async Task DoChangeAsync() FunctionPrivilege fp = new FunctionPrivilege(); fp.MenuItemId = menuid; fp.RoleCode = Entity.RoleCode; - fp.TenantCode = LoginUserInfo.CurrentTenant; + fp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; fp.Allowed = true; DC.Set().Add(fp); } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkRoleVMs/FrameworkRoleVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkRoleVMs/FrameworkRoleVM.cs index 8066549fb..63564aa4b 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkRoleVMs/FrameworkRoleVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkRoleVMs/FrameworkRoleVM.cs @@ -18,31 +18,31 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + await base.DoAdd(); + Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + await base.DoEdit(updateAllFields); + Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { using (var tran = DC.BeginTransaction()) { try { - await base.DoDeleteAsync(); + await base.DoDelete(); var ur = DC.Set().Where(x => x.RoleCode == Entity.RoleCode); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); await Wtm.RemoveUserCacheByRole(Entity.RoleCode); - await Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant); + await Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant); } catch { diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantBatchVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantBatchVM.cs index bdb64c7d0..06f59e10d 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantBatchVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantBatchVM.cs @@ -25,8 +25,9 @@ public FrameworkTenantBatchVM() public class FrameworkTenant_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantImportVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantImportVM.cs index c794112f1..c4f2950d7 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantImportVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantImportVM.cs @@ -28,7 +28,7 @@ public partial class FrameworkTenantTemplateVM : BaseTemplateVM [Display(Name = "Sys.Enable")] public ExcelPropety Enabled_Excel = ExcelPropety.CreateProperty(x => x.Enabled); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantListVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantListVM.cs index b8af97c35..5c5093f36 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantListVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantListVM.cs @@ -12,9 +12,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkTenantVMs { public partial class FrameworkTenantListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "_Admin", dialogWidth: 800), @@ -24,13 +24,13 @@ protected override List InitGridAction() this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], "_Admin"), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.TCode), this.MakeGridHeader(x => x.TName), this.MakeGridHeader(x => x.TDb), @@ -40,10 +40,10 @@ protected override IEnumerable> InitGridHeader this.MakeGridHeader(x => x.Enabled), this.MakeGridHeader(x => x.EnableSub), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.TCode, x=>x.TCode) @@ -62,7 +62,7 @@ public override IOrderedQueryable GetSearchQuery() EnableSub = x.EnableSub }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantSearcher.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantSearcher.cs index 20ec9071d..ded5def05 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantSearcher.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantSearcher.cs @@ -18,7 +18,7 @@ public partial class FrameworkTenantSearcher : BaseSearcher [Display(Name = "_Admin.TenantDomain")] public String TDomain { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantVM.cs index 2373a7081..a414351cc 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkTenantVMs/FrameworkTenantVM.cs @@ -26,39 +26,40 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); if (MSD.IsValid) { - TenantOperation(); + await TenantOperation(); Cache.Delete(nameof(GlobalData.AllTenant)); } } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); if (MSD.IsValid) { if (MSD.IsValid) { - TenantOperation(); + await TenantOperation(); Cache.Delete(nameof(GlobalData.AllTenant)); } } } - private void TenantOperation() + private async Task TenantOperation() { List fps = new List(); - using (var userdc = LoginUserInfo.GetUserDC(Wtm)) + using (var userdc = await (await GetLoginUserInfo ()).GetUserDC(Wtm)) { - fps = userdc.Set().AsNoTracking().Where(x => x.RoleCode == AdminRoleCode).ToList(); + fps = await userdc.Set().AsNoTracking().Where(x => x.RoleCode == AdminRoleCode).ToListAsync (); List tenantmenus = new List(); using (var defaultdc = Wtm.CreateDC(false, "default", false)) { @@ -129,9 +130,9 @@ private void AddTenantData(IDataContext dc, List fps) var key = $"{GlobalConstants.CacheKey.UserInfo}:{"admin" + "$`$" + Entity.TCode}"; Cache.DeleteAsync(key).Wait(); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); Cache.Delete(nameof(GlobalData.AllTenant)); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/ChangePasswordVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/ChangePasswordVM.cs index 47610e589..0f82fff5c 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/ChangePasswordVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/ChangePasswordVM.cs @@ -2,6 +2,8 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkUserVms @@ -26,10 +28,11 @@ public class ChangePasswordVM : BaseVM [StringLength(50, ErrorMessage = "Validate.{0}stringmax{1}")] public string NewPasswordComfirm { get; set; } - public override void Validate() + public override async Task Validate() { List rv = new List(); - if (DC.Set().Where(x => x.ITCode == LoginUserInfo.ITCode && x.Password == Utils.GetMD5String(OldPassword)).SingleOrDefault() == null) + var _itcode = (await GetLoginUserInfo ()).ITCode; + if (await DC.Set().Where(x => x.ITCode == _itcode && x.Password == Utils.GetMD5String(OldPassword)).SingleOrDefaultAsync() == null) { MSD.AddModelError("OldPassword", Localizer["Login.OldPasswrodWrong"]); } @@ -39,14 +42,15 @@ public override void Validate() } } - public void DoChange() + public async Task DoChange() { - var user = DC.Set().Where(x => x.ITCode == LoginUserInfo.ITCode).SingleOrDefault(); + var _itcode = (await GetLoginUserInfo ()).ITCode; + var user = await DC.Set().Where(x => x.ITCode == _itcode).SingleOrDefaultAsync(); if (user != null) { user.Password = Utils.GetMD5String(NewPassword); } - DC.SaveChanges(); + await DC.SaveChangesAsync(); } } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/FrameworkUserImportVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/FrameworkUserImportVM.cs index efba18b11..9b6c71fe0 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/FrameworkUserImportVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/FrameworkUserImportVM.cs @@ -1,5 +1,6 @@ // WTM默认页面 Wtm buidin page using System.Collections.Generic; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkUserVms @@ -15,23 +16,24 @@ public class FrameworkUserTemplateVM : BaseTemplateVM public ExcelPropety c8 = ExcelPropety.CreateProperty(x => x.Address); public ExcelPropety c9 = ExcelPropety.CreateProperty(x => x.ZipCode); - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } public class FrameworkUserImportVM : BaseImportVM { - public override bool BatchSaveData() + public override async Task BatchSaveData() { - SetEntityList(); + await SetEntityList(); foreach (var item in EntityList) { item.IsValid = true; item.Password = Utils.GetMD5String(item.Password); } - return base.BatchSaveData(); + return await base.BatchSaveData(); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/FrameworkUserListVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/FrameworkUserListVM.cs index f3625412c..e47ef0cda 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/FrameworkUserListVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/FrameworkUserListVM.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -11,9 +12,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkUserVms { public class FrameworkUserListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.Create, "", "_Admin",dialogWidth: 800), this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.Edit, "", "_Admin",dialogWidth: 800), @@ -23,12 +24,12 @@ protected override List InitGridAction() this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.BatchDelete, "","_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.Import, "","_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.ExportExcel, "","_Admin"), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.ITCode), this.MakeGridHeader(x => x.Name), this.MakeGridHeader(x => x.Gender,80), @@ -38,7 +39,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x=> x.PhotoId,170).SetFormat(PhotoIdFormat), this.MakeGridHeader(x => x.IsValid).SetHeader(Localizer["Sys.Enable"]).SetWidth(80), this.MakeGridHeaderAction(width: 280) - }; + }); } private List PhotoIdFormat(FrameworkUser_View entity, object val) @@ -50,7 +51,7 @@ private List PhotoIdFormat(FrameworkUser_View entity, object v }; } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.ITCode,x=>x.ITCode) @@ -71,7 +72,7 @@ public override IOrderedQueryable GetSearchQuery() Gender = x.Gender }) .OrderBy(x => x.ITCode); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/FrameworkUserVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/FrameworkUserVM.cs index 7a1c57b8a..73a143a5a 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/FrameworkUserVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/FrameworkUserVms/FrameworkUserVM.cs @@ -29,13 +29,13 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - protected override void InitVM() + protected override async Task InitVM() { SelectedRolesCodes = DC.Set().Where(x => x.UserCode == Entity.ITCode).Select(x => x.RoleCode).ToList(); SelectedGroupCodes = DC.Set().Where(x => x.UserCode == Entity.ITCode).Select(x => x.GroupCode).ToList(); } - public override async Task DoAddAsync() + public override async Task DoAdd() { using (var trans = DC.BeginTransaction()) { @@ -47,7 +47,7 @@ public override async Task DoAddAsync() { RoleCode = rolecode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(r); } @@ -60,14 +60,14 @@ public override async Task DoAddAsync() { GroupCode = groupcode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(g); } } Entity.IsValid = true; Entity.Password = Utils.GetMD5String(Entity.Password); - await base.DoAddAsync(); + await base.DoAdd(); if (MSD.IsValid) { trans.Commit(); @@ -79,7 +79,7 @@ public override async Task DoAddAsync() } } - public override async Task DoEditAsync(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { using (var trans = DC.BeginTransaction()) { @@ -109,7 +109,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) { RoleCode = rolecode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(r); } @@ -122,12 +122,12 @@ public override async Task DoEditAsync(bool updateAllFields = false) { GroupCode = groupcode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(g); } } - await base.DoEditAsync(updateAllFields); + await base.DoEdit(updateAllFields); if (MSD.IsValid) { trans.Commit(); @@ -140,18 +140,18 @@ public override async Task DoEditAsync(bool updateAllFields = false) } } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { using (var tran = DC.BeginTransaction()) { try { - await base.DoDeleteAsync(); + await base.DoDelete(); var ur = DC.Set().Where(x => x.UserCode == Entity.ITCode); DC.Set().RemoveRange(ur); var ug = DC.Set().Where(x => x.UserCode == Entity.ITCode); DC.Set().RemoveRange(ug); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); } catch @@ -162,11 +162,11 @@ public override async Task DoDeleteAsync() await Wtm.RemoveUserCache(Entity.ITCode); } - public void ChangePassword() + public async Task ChangePassword() { Entity.Password = Utils.GetMD5String(Entity.Password); DC.UpdateProperty(Entity, x => x.Password); - DC.SaveChanges(); + await DC.SaveChangesAsync(); } } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientBatchVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientBatchVM.cs index 625dcf01a..6ff119b98 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientBatchVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -26,8 +26,9 @@ public PatientBatchVM() public class Patient_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientImportVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientImportVM.cs index bfc28d4de..8827d07df 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientImportVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -28,12 +28,12 @@ public partial class PatientTemplateVM : BaseTemplateVM [Display(Name = "所属医院")] public ExcelPropety Hospital_Excel = ExcelPropety.CreateProperty(x => x.HospitalId); - protected override void InitVM() + protected override async Task InitVM() { Location_Excel.DataType = ColumnDataType.ComboBox; - Location_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Location_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); Hospital_Excel.DataType = ColumnDataType.ComboBox; - Hospital_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Hospital_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientListVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientListVM.cs index d556097ed..610d8f4bf 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientListVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -15,9 +15,9 @@ namespace WalkingTec.Mvvm.BlazorDemo.ViewModel.VirusData.PatientVMs public partial class PatientListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.PatientName), this.MakeGridHeader(x => x.IdNumber), this.MakeGridHeader(x => x.Gender), @@ -28,7 +28,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.PhotoId).SetFormat(PhotoIdFormat), this.MakeGridHeader(x => x.VirtusName_view), this.MakeGridHeaderAction(width: 200) - }; + }); } private List PhotoIdFormat(Patient_View entity, object val) { @@ -40,7 +40,7 @@ private List PhotoIdFormat(Patient_View entity, object val) } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.PatientName, x=>x.PatientName) @@ -65,7 +65,7 @@ public override IOrderedQueryable GetSearchQuery() VirtusName_view = x.Viruses.Select(y=>y.Virus.VirtusName).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientSearcher.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientSearcher.cs index 8010b52ac..5c71874be 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientSearcher.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientSearcher.cs @@ -30,7 +30,7 @@ public partial class PatientSearcher : BaseSearcher [Display(Name = "病毒")] public List SelectedVirusesIDs { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientVM.cs index ffbc4e2da..0f6264c77 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/PatientVMs/PatientVM.cs @@ -23,12 +23,12 @@ public PatientVM() SetInclude(x => x.Viruses); } - protected override void InitVM() + protected override async Task InitVM() { SelectedVirusesIDs = Entity.Viruses?.Select(x => x.VirusId.ToString()).ToList(); } - public override void DoAdd() + public override async Task DoAdd() { Entity.Viruses = new List(); if (SelectedVirusesIDs != null) @@ -41,10 +41,10 @@ public override void DoAdd() } } - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { Entity.Viruses = new List(); if(SelectedVirusesIDs != null ) @@ -57,12 +57,12 @@ public override void DoEdit(bool updateAllFields = false) } } - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusBatchVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusBatchVM.cs index a2f009eb4..75e6d9556 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusBatchVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -26,8 +26,9 @@ public VirusBatchVM() public class Virus_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusImportVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusImportVM.cs index 81ff12611..41a8b063e 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusImportVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusImportVM.cs @@ -21,7 +21,7 @@ public partial class VirusTemplateVM : BaseTemplateVM [Display(Name = "病毒种类")] public ExcelPropety VirtusType_Excel = ExcelPropety.CreateProperty(x => x.VirtusType); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusListVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusListVM.cs index 469d2fe49..0c7e5aa20 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusListVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,19 +14,19 @@ namespace WalkingTec.Mvvm.BlazorDemo.ViewModel.VirusData.VirusVMs public partial class VirusListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.VirtusName), this.MakeGridHeader(x => x.VirtusCode), this.MakeGridHeader(x => x.Remark), this.MakeGridHeader(x => x.VirtusType), this.MakeGridHeader(x => x.PatientName_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.VirtusName, x=>x.VirtusName) @@ -43,7 +43,7 @@ public override IOrderedQueryable GetSearchQuery() PatientName_view = x.Patients.Where(y=>y.Patient.IsValid==true).Select(y=>y.Patient.PatientName).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusSearcher.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusSearcher.cs index 81b4c86b0..b549ebd9d 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusSearcher.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusSearcher.cs @@ -21,7 +21,7 @@ public partial class VirusSearcher : BaseSearcher [Display(Name = "患者")] public List SelectedPatientsIDs { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusVM.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusVM.cs index 2e0fcccef..23cf226e9 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusVM.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/VirusData/VirusVMs/VirusVM.cs @@ -20,12 +20,12 @@ public VirusVM() SetInclude(x => x.Patients); } - protected override void InitVM() + protected override async Task InitVM() { SelectedPatientsIDs = Entity.Patients?.Select(x => x.PatientId.ToString()).ToList(); } - public override void DoAdd() + public override async Task DoAdd() { Entity.Patients = new List(); if (SelectedPatientsIDs != null) @@ -38,10 +38,10 @@ public override void DoAdd() } } - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { Entity.Patients = new List(); if(SelectedPatientsIDs != null ) @@ -54,12 +54,12 @@ public override void DoEdit(bool updateAllFields = false) } } - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git "a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215BatchVM.cs" "b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215BatchVM.cs" index 03ed541f5..fa037a587 100644 --- "a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215BatchVM.cs" +++ "b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215BatchVM.cs" @@ -26,7 +26,7 @@ public 不要用中文模型名BatchVM() public class 不要用中文模型名_BatchEdit : BaseVM { - protected override void InitVM() + protected override async Task InitVM() { } diff --git "a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ImportVM.cs" "b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ImportVM.cs" index a5022a1c4..9888bf0ce 100644 --- "a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ImportVM.cs" +++ "b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ImportVM.cs" @@ -17,7 +17,7 @@ public partial class 不要用中文模型名TemplateVM : BaseTemplateVM public ExcelPropety 中文_Excel = ExcelPropety.CreateProperty<不要用中文模型名>(x => x.中文); public ExcelPropety 模型名_Excel = ExcelPropety.CreateProperty<不要用中文模型名>(x => x.模型名); - protected override void InitVM() + protected override async Task InitVM() { } diff --git "a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ListVM.cs" "b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ListVM.cs" index 5947598e4..827a372f0 100644 --- "a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ListVM.cs" +++ "b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ListVM.cs" @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.不要用中文模型名VMs { public partial class 不要用中文模型名ListVM : BasePagedListVM<不要用中文模型名_View, 不要用中文模型名Searcher> { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("不要用中文模型名", GridActionStandardTypesEnum.Create, "新建","", dialogWidth: 800), this.MakeStandardAction("不要用中文模型名", GridActionStandardTypesEnum.Edit, "修改","", dialogWidth: 800), @@ -25,21 +25,21 @@ protected override List InitGridAction() this.MakeStandardAction("不要用中文模型名", GridActionStandardTypesEnum.BatchDelete, "批量删除","", dialogWidth: 800), this.MakeStandardAction("不要用中文模型名", GridActionStandardTypesEnum.Import, "导入","", dialogWidth: 800), this.MakeStandardAction("不要用中文模型名", GridActionStandardTypesEnum.ExportExcel, "导出",""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.不要), this.MakeGridHeader(x => x.用), this.MakeGridHeader(x => x.中文), this.MakeGridHeader(x => x.模型名), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable<不要用中文模型名_View> GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set<不要用中文模型名>() .CheckContain(Searcher.不要, x=>x.不要) @@ -55,7 +55,7 @@ public override IOrderedQueryable<不要用中文模型名_View> GetSearchQuery( 模型名 = x.模型名, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git "a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Searcher.cs" "b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Searcher.cs" index c99d2bbf1..abe3ca827 100644 --- "a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Searcher.cs" +++ "b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Searcher.cs" @@ -17,7 +17,7 @@ public partial class 不要用中文模型名Searcher : BaseSearcher public DateTime? 中文 { get; set; } public Boolean? 模型名 { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git "a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VM.cs" "b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VM.cs" index bf2f58056..6722fb198 100644 --- "a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VM.cs" +++ "b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo.ViewModel/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VM.cs" @@ -17,23 +17,23 @@ public 不要用中文模型名VM() { } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/ChartController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/ChartController.cs index c16445398..cafd17e93 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/ChartController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/ChartController.cs @@ -19,9 +19,9 @@ namespace WalkingTec.Mvvm.BlazorDemo.Controllers public partial class ChartController : BaseApiController { [HttpGet("GetCitys")] - public ActionResult GetCitys() + public async Task GetCitys() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } [HttpGet("GetCharts")] diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/CityController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/CityController.cs index 69bd58658..81f8bbda3 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/CityController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/CityController.cs @@ -20,7 +20,7 @@ public partial class CityController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(CitySearcher searcher) + public async Task Search(CitySearcher searcher) { if (ModelState.IsValid) { @@ -53,7 +53,7 @@ public GroupVMTest GetGroup(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(CityVM vm) + public async Task Add(CityVM vm) { if (!ModelState.IsValid) { @@ -61,7 +61,7 @@ public IActionResult Add(CityVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -121,7 +121,7 @@ public IActionResult EditGroupVM(GroupVMTest vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(CityVM vm) + public async Task Edit(CityVM vm) { if (!ModelState.IsValid) { @@ -129,7 +129,7 @@ public IActionResult Edit(CityVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -143,7 +143,7 @@ public IActionResult Edit(CityVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -167,7 +167,7 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(CitySearcher searcher) + public async Task ExportExcel(CitySearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; @@ -177,7 +177,7 @@ public IActionResult ExportExcel(CitySearcher searcher) [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -205,7 +205,7 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(CityImportVM vm) + public async Task Import(CityImportVM vm) { if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) @@ -220,9 +220,9 @@ public ActionResult Import(CityImportVM vm) [HttpGet("GetCitys")] - public ActionResult GetCitys() + public async Task GetCitys() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/MajorController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/MajorController.cs index 37d80bd8c..452bd3a55 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/MajorController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/MajorController.cs @@ -20,7 +20,7 @@ public partial class MajorController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(MajorSearcher searcher) + public async Task Search(MajorSearcher searcher) { if (ModelState.IsValid) { @@ -44,7 +44,7 @@ public MajorVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(MajorVM vm) + public async Task Add(MajorVM vm) { if (!ModelState.IsValid) { @@ -52,7 +52,7 @@ public IActionResult Add(MajorVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -67,7 +67,7 @@ public IActionResult Add(MajorVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(MajorVM vm) + public async Task Edit(MajorVM vm) { if (!ModelState.IsValid) { @@ -75,7 +75,7 @@ public IActionResult Edit(MajorVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -89,7 +89,7 @@ public IActionResult Edit(MajorVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -100,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -113,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(MajorSearcher searcher) + public async Task ExportExcel(MajorSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -131,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -151,10 +151,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(MajorImportVM vm) + public async Task Import(MajorImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -166,9 +166,9 @@ public ActionResult Import(MajorImportVM vm) [HttpPost("BatchEdit")] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(MajorBatchVM vm) + public async Task DoBatchEdit(MajorBatchVM vm) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return BadRequest(ModelState.GetErrorJson()); } @@ -182,13 +182,13 @@ public ActionResult DoBatchEdit(MajorBatchVM vm) [HttpGet("GetSchools")] public ActionResult GetSchools() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.SchoolName)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.SchoolName)); } [HttpGet("GetStudents")] public ActionResult GetStudents() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/SchoolController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/SchoolController.cs index 2367b16a5..a60477fbb 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/SchoolController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/SchoolController.cs @@ -20,7 +20,7 @@ public partial class SchoolController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(SchoolSearcher searcher) + public async Task Search(SchoolSearcher searcher) { if (ModelState.IsValid) { @@ -44,7 +44,7 @@ public SchoolVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(SchoolVM vm) + public async Task Add(SchoolVM vm) { if (!ModelState.IsValid) { @@ -52,7 +52,7 @@ public IActionResult Add(SchoolVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -67,7 +67,7 @@ public IActionResult Add(SchoolVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(SchoolVM vm) + public async Task Edit(SchoolVM vm) { if (!ModelState.IsValid) { @@ -75,7 +75,7 @@ public IActionResult Edit(SchoolVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -89,7 +89,7 @@ public IActionResult Edit(SchoolVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -100,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -113,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(SchoolSearcher searcher) + public async Task ExportExcel(SchoolSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -131,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -151,10 +151,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(SchoolImportVM vm) + public async Task Import(SchoolImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/StudentController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/StudentController.cs index da0a54a50..5665b1d5f 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/StudentController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/BasicData/Controllers/StudentController.cs @@ -20,7 +20,7 @@ public partial class StudentController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(StudentSearcher searcher) + public async Task Search(StudentSearcher searcher) { if (ModelState.IsValid) { @@ -44,7 +44,7 @@ public StudentVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(StudentVM vm) + public async Task Add(StudentVM vm) { if (!ModelState.IsValid) { @@ -52,7 +52,7 @@ public IActionResult Add(StudentVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -67,7 +67,7 @@ public IActionResult Add(StudentVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(StudentVM vm) + public async Task Edit(StudentVM vm) { if (!ModelState.IsValid) { @@ -75,7 +75,7 @@ public IActionResult Edit(StudentVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -89,7 +89,7 @@ public IActionResult Edit(StudentVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -100,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -113,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(StudentSearcher searcher) + public async Task ExportExcel(StudentSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -131,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -151,10 +151,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(StudentImportVM vm) + public async Task Import(StudentImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -166,9 +166,9 @@ public ActionResult Import(StudentImportVM vm) [HttpGet("GetMajors")] - public ActionResult GetMajors() + public async Task GetMajors() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.MajorName)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.MajorName)); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/VirusData/Controllers/PatientController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/VirusData/Controllers/PatientController.cs index 2a876262e..5462e4b29 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/VirusData/Controllers/PatientController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/VirusData/Controllers/PatientController.cs @@ -21,7 +21,7 @@ public partial class PatientController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(PatientSearcher searcher) + public async Task Search(PatientSearcher searcher) { if (ModelState.IsValid) { @@ -45,7 +45,7 @@ public PatientVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(PatientVM vm) + public async Task Add(PatientVM vm) { if (!ModelState.IsValid) { @@ -53,7 +53,7 @@ public IActionResult Add(PatientVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -68,7 +68,7 @@ public IActionResult Add(PatientVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(PatientVM vm) + public async Task Edit(PatientVM vm) { if (!ModelState.IsValid) { @@ -76,7 +76,7 @@ public IActionResult Edit(PatientVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -90,7 +90,7 @@ public IActionResult Edit(PatientVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -101,7 +101,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -114,17 +114,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(PatientSearcher searcher) + public async Task ExportExcel(PatientSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -132,7 +132,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -152,10 +152,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(PatientImportVM vm) + public async Task Import(PatientImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -167,21 +167,21 @@ public ActionResult Import(PatientImportVM vm) [HttpGet("GetCitys")] - public ActionResult GetCitys() + public async Task GetCitys() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } [HttpGet("GetHospitals")] - public ActionResult GetHospitals() + public async Task GetHospitals() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } [HttpGet("GetViruss")] - public ActionResult GetViruss() + public async Task GetViruss() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.VirtusName)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.VirtusName)); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/VirusData/Controllers/VirusController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/VirusData/Controllers/VirusController.cs index 8d1c8ae0f..20be28143 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/VirusData/Controllers/VirusController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/Areas/VirusData/Controllers/VirusController.cs @@ -20,7 +20,7 @@ public partial class VirusController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(VirusSearcher searcher) + public async Task Search(VirusSearcher searcher) { if (ModelState.IsValid) { @@ -44,7 +44,7 @@ public VirusVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(VirusVM vm) + public async Task Add(VirusVM vm) { if (!ModelState.IsValid) { @@ -52,7 +52,7 @@ public IActionResult Add(VirusVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -67,7 +67,7 @@ public IActionResult Add(VirusVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(VirusVM vm) + public async Task Edit(VirusVM vm) { if (!ModelState.IsValid) { @@ -75,7 +75,7 @@ public IActionResult Edit(VirusVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -89,7 +89,7 @@ public IActionResult Edit(VirusVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -100,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -113,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(VirusSearcher searcher) + public async Task ExportExcel(VirusSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -131,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -151,9 +151,9 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(VirusImportVM vm) + public async Task Import(VirusImportVM vm) { - if (vm!=null && (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData())) + if (vm!=null && (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData())) { return BadRequest(vm.GetErrorJson()); } @@ -167,7 +167,7 @@ public ActionResult Import(VirusImportVM vm) [HttpGet("GetPatients")] public ActionResult GetPatients() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.PatientName)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.PatientName)); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/AccountController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/AccountController.cs index 0388c1f4e..62f507324 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/AccountController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/AccountController.cs @@ -10,6 +10,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -32,7 +33,7 @@ public class AccountController : BaseApiController public async Task Login([FromForm] string account, [FromForm] string password, [FromForm] string tenant = null, [FromForm] bool rememberLogin = false) { - var user = Wtm.DoLogin(account, password, tenant); + var user = await Wtm.DoLogin(account, password, tenant); if (user == null) { return BadRequest(Localizer["Sys.LoginFailed"].Value); @@ -40,7 +41,7 @@ public async Task Login([FromForm] string account, [FromForm] str //其他属性可以通过user.Attributes["aaa"] = "bbb"方式赋值 - Wtm.LoginUserInfo = user; + Wtm.SetLoginUserInfo (user); AuthenticationProperties properties = null; if (rememberLogin) @@ -52,9 +53,9 @@ public async Task Login([FromForm] string account, [FromForm] str }; } - var principal = Wtm.LoginUserInfo.CreatePrincipal(); + var principal = user.CreatePrincipal(); await Wtm.HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, properties); - return CheckUserInfo(); + return await CheckUserInfo(); } @@ -62,7 +63,7 @@ public async Task Login([FromForm] string account, [FromForm] str [HttpPost("[action]")] public async Task LoginJwt(SimpleLogin loginInfo) { - var user = Wtm.DoLogin(loginInfo.Account, loginInfo.Password, loginInfo.Tenant); + var user = await Wtm.DoLogin(loginInfo.Account, loginInfo.Password, loginInfo.Tenant); if (user == null) { ModelState.AddModelError(" ", Localizer["Sys.LoginFailed"]); @@ -71,9 +72,9 @@ public async Task LoginJwt(SimpleLogin loginInfo) //其他属性可以通过user.Attributes["aaa"] = "bbb"方式赋值 - Wtm.LoginUserInfo = user; + Wtm.SetLoginUserInfo (user); var authService = HttpContext.RequestServices.GetService(typeof(ITokenService)) as ITokenService; - var token = await authService.IssueTokenAsync(Wtm.LoginUserInfo); + var token = await authService.IssueTokenAsync(user); return Content(JsonSerializer.Serialize(token), "application/json"); } @@ -81,28 +82,29 @@ public async Task LoginJwt(SimpleLogin loginInfo) [HttpGet("[action]")] public async Task LoginRemote([FromQuery] string _remotetoken) { - if (Wtm?.LoginUserInfo != null) + var _user = await Wtm?.GetLoginUserInfo (); + if (_user != null) { - var principal = Wtm.LoginUserInfo.CreatePrincipal(); + var principal = _user.CreatePrincipal(); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, null); } - return CheckUserInfo(); + return await CheckUserInfo(); } [AllRights] [HttpGet("[action]")] - public IActionResult SetTenant([FromQuery] string tenant) + public async Task SetTenant([FromQuery] string tenant) { - bool rv = Wtm.SetCurrentTenant(tenant == "" ? null : tenant); + bool rv = await Wtm.SetCurrentTenant(tenant == "" ? null : tenant); return Ok(rv); } [AllowAnonymous] [HttpPost("[action]")] - public IActionResult Reg(SimpleReg regInfo) + public async Task Reg(SimpleReg regInfo) { - var exist = DC.Set().Any(x => x.ITCode.ToLower() == regInfo.ITCode.ToLower()); + var exist = await DC.Set().AnyAsync(x => x.ITCode.ToLower() == regInfo.ITCode.ToLower()); if (exist == true) { @@ -110,7 +112,7 @@ public IActionResult Reg(SimpleReg regInfo) return BadRequest(ModelState.GetErrorJson()); } - var hasuserrole = DC.Set().Where(x => x.RoleCode == "002").FirstOrDefault(); + var hasuserrole = await DC.Set().Where(x => x.RoleCode == "002").FirstOrDefaultAsync(); FrameworkUser user = new FrameworkUser { ITCode = regInfo.ITCode, @@ -129,7 +131,7 @@ public IActionResult Reg(SimpleReg regInfo) DC.Set().Add(userrole); } DC.Set().Add(user); - DC.SaveChanges(); + await DC.SaveChangesAsync(); return Ok(); } @@ -152,15 +154,15 @@ public IActionResult RefreshToken(string refreshToken) [AllRights] [HttpGet("[action]")] - public IActionResult CheckUserInfo(bool IsApi = true) + public async Task CheckUserInfo(bool IsApi = true) { - if (Wtm.LoginUserInfo == null) + if ((await Wtm.GetLoginUserInfo ()) == null) { return BadRequest(); } else { - var forapi = Wtm.LoginUserInfo; + var forapi = (await Wtm.GetLoginUserInfo ()); if (IsApi) { forapi.SetAttributesForApi(Wtm); @@ -175,7 +177,7 @@ public IActionResult CheckUserInfo(bool IsApi = true) { forapi.Attributes.Remove("IsMainHost"); } - if (ConfigInfo.HasMainHost && string.IsNullOrEmpty(Wtm.LoginUserInfo.TenantCode) == true) + if (ConfigInfo.HasMainHost && string.IsNullOrEmpty((await Wtm.GetLoginUserInfo ()).TenantCode) == true) { forapi.Attributes.Add("IsMainHost", true); } @@ -190,9 +192,9 @@ public IActionResult CheckUserInfo(bool IsApi = true) [AllRights] [HttpPost("[action]")] - public IActionResult ChangePassword(ChangePasswordVM vm) + public async Task ChangePassword(ChangePasswordVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -219,7 +221,7 @@ public IActionResult ChangePassword(ChangePasswordVM vm) [HttpGet("[action]")] public async Task Logout() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { await Wtm.CallAPI("mainhost", "/api/_account/logout", HttpMethodEnum.GET, new { }, 10); return Ok(ConfigInfo.MainHost); @@ -235,73 +237,73 @@ public async Task Logout() [HttpGet("GetFrameworkRoles")] [ActionDescription("GetRoles")] [AllRights] - public IActionResult GetFrameworkRoles() + public async Task GetFrameworkRoles() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetFrameworkRoles").Result; } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); } [HttpGet("GetFrameworkGroups")] [ActionDescription("GetGroups")] [AllRights] - public IActionResult GetFrameworkGroups() + public async Task GetFrameworkGroups () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetFrameworkGroups").Result; } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetFrameworkGroupsTree")] [ActionDescription("GetGroupsTree")] [AllRights] - public IActionResult GetFrameworkGroupsTree() + public async Task GetFrameworkGroupsTree () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetFrameworkGroupsTree").Result; } - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetUserById")] [AllRights] - public IActionResult GetUserById(string keywords) + public async Task GetUserById (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetUserById").Result; } - var users = DC.Set().Where(x => x.ITCode.ToLower().StartsWith(keywords.ToLower())).GetSelectListItems(Wtm, x => x.Name + "(" + x.ITCode + ")", x => x.ITCode); + var users = await DC.Set().Where(x => x.ITCode.ToLower().StartsWith(keywords.ToLower())).GetSelectListItems(Wtm, x => x.Name + "(" + x.ITCode + ")", x => x.ITCode); return Ok(users); } [HttpGet("GetUserByGroup")] [AllRights] - public IActionResult GetUserByGroup(string keywords) + public async Task GetUserByGroup (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetUserByGroup").Result; } - var users = DC.Set().Where(x => x.GroupCode == keywords).Select(x => x.UserCode).ToList(); + var users = await DC.Set().Where(x => x.GroupCode == keywords).Select(x => x.UserCode).ToListAsync(); return Ok(users); } [HttpGet("GetUserByRole")] [AllRights] - public IActionResult GetUserByRole(string keywords) + public async Task GetUserByRole (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetUserByRole").Result; } - var users = DC.Set().Where(x => x.RoleCode == keywords).Select(x => x.UserCode).ToList(); + var users = await DC.Set().Where(x => x.RoleCode == keywords).Select(x => x.UserCode).ToListAsync(); return Ok(users); } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/ActionLogController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/ActionLogController.cs index 122b7bd26..c03b20850 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/ActionLogController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/ActionLogController.cs @@ -18,7 +18,7 @@ public class ActionLogController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(ActionLogSearcher searcher) + public async Task Search(ActionLogSearcher searcher) { if (ModelState.IsValid) { @@ -42,7 +42,7 @@ public ActionLogVM Get(Guid id) [HttpPost("[action]")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -53,7 +53,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -66,17 +66,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(ActionLogSearcher searcher) + public async Task ExportExcel(ActionLogSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -84,7 +84,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/DataPrivilegeController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/DataPrivilegeController.cs index 0521d7d46..d8d081fc1 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/DataPrivilegeController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/DataPrivilegeController.cs @@ -59,7 +59,7 @@ public async Task Add(DataPrivilegeVM vm) } else { - await vm.DoAddAsync(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -82,7 +82,7 @@ public async Task Edit(DataPrivilegeVM vm) } else { - await vm.DoEditAsync(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -108,7 +108,7 @@ public async Task Delete(SimpleDpModel dp) { vm = Wtm.CreateVM(values: x => x.Entity.TableName == dp.ModelName && x.Entity.GroupCode == dp.Id && x.DpType == dp.Type); } - await vm.DoDeleteAsync(); + await vm.DoDelete(); return Ok(1); } @@ -139,22 +139,22 @@ public ActionResult GetPrivileges() [HttpGet("[action]")] public IActionResult GetUserGroups() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_DataPrivilege/GetUserGroups").Result; } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [AllRights] [HttpGet("[action]")] public IActionResult GetUserGroupsTree() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_DataPrivilege/GetUserGroupsTree").Result; } - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FileApiController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FileApiController.cs index f3549f710..5d15d1dda 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FileApiController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FileApiController.cs @@ -55,7 +55,7 @@ public IActionResult UploadImage([FromServices] WtmFileProvider fp, int? width = } MemoryStream ms = new MemoryStream(); oimage.Mutate(x => x.Resize(width.Value, height.Value)); - oimage.SaveAsJpeg(ms); + await oimage.SaveAsJpegAsync (ms); ms.Position = 0; var file = fp.Upload(FileData.FileName, FileData.Length, ms, groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); oimage.Dispose(); @@ -106,7 +106,7 @@ public async Task GetFile([FromServices] WtmFileProvider fp, stri } var ms = new MemoryStream(); oimage.Mutate(x => x.Resize(width.Value, height.Value)); - oimage.SaveAsJpeg(ms); + await oimage.SaveAsJpegAsync (ms); ms.Position = 0; await ms?.CopyToAsync(Response.Body); file.DataStream.Dispose(); @@ -149,7 +149,7 @@ public IActionResult GetFileInfo([FromServices] WtmFileProvider fp, string id, s [Public] public async Task GetUserPhoto([FromServices] WtmFileProvider fp, string id, string csName = null, int? width = null, int? height = null) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Redirect(Wtm.ConfigInfo.MainHost+ Request.Path); } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkGroupController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkGroupController.cs index 607479b1e..16c58f2f7 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkGroupController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkGroupController.cs @@ -19,9 +19,9 @@ public class FrameworkGroupController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkGroupSearcher searcher) + public async Task Search(FrameworkGroupSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -47,9 +47,9 @@ public FrameworkGroupVM Get(Guid id) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkGroupVM vm) + public async Task Add(FrameworkGroupVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -59,7 +59,7 @@ public IActionResult Add(FrameworkGroupVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -74,9 +74,9 @@ public IActionResult Add(FrameworkGroupVM vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkGroupVM vm) + public async Task Edit(FrameworkGroupVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -86,7 +86,7 @@ public IActionResult Edit(FrameworkGroupVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -102,7 +102,7 @@ public IActionResult Edit(FrameworkGroupVM vm) [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -117,7 +117,7 @@ public async Task BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -126,32 +126,32 @@ public async Task BatchDelete(string[] ids) var gr = DC.Set().Where(x => GroupCode.Contains(x.GroupCode)).ToList(); var itcodes = gr.Select(x => x.UserCode).ToArray(); DC.Set().RemoveRange(gr); - DC.SaveChanges(); + await DC.SaveChangesAsync(); await Wtm.RemoveUserCacheByGroup(GroupCode.ToArray()); - Wtm.RemoveGroupCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + Wtm.RemoveGroupCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); return Ok(ids.Count()); } } [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkGroupSearcher searcher) + public async Task ExportExcel(FrameworkGroupSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -161,14 +161,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] public IActionResult GetExcelTemplate() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -185,20 +185,20 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkGroupImportVM vm) + public async Task Import(FrameworkGroupImportVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } else { - Wtm.RemoveGroupCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + Wtm.RemoveGroupCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); return Ok(vm.EntityList.Count); } } @@ -207,7 +207,7 @@ public ActionResult Import(FrameworkGroupImportVM vm) [HttpGet("[action]")] public IActionResult GetParents() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkgroup/GetParents").Result; } @@ -219,7 +219,7 @@ public IActionResult GetParents() [HttpGet("[action]")] public IActionResult GetParentsTree() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkgroup/GetParentsTree").Result; } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkMenuController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkMenuController.cs index 37d9f8c22..558a13e94 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkMenuController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkMenuController.cs @@ -45,7 +45,7 @@ public FrameworkMenuVM2 Get(Guid id) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkMenuVM2 vm) + public async Task Add(FrameworkMenuVM2 vm) { if (!ModelState.IsValid) { @@ -53,7 +53,7 @@ public IActionResult Add(FrameworkMenuVM2 vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -68,7 +68,7 @@ public IActionResult Add(FrameworkMenuVM2 vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkMenuVM2 vm) + public async Task Edit(FrameworkMenuVM2 vm) { if (!ModelState.IsValid) { @@ -90,7 +90,7 @@ public IActionResult Edit(FrameworkMenuVM2 vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -101,7 +101,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -113,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(BaseSearcher searcher) + public async Task ExportExcel(BaseSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -131,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("_Admin.UnsetPages")] diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkRoleController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkRoleController.cs index 62724cfde..db8eacc05 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkRoleController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkRoleController.cs @@ -19,9 +19,9 @@ public class FrameworkRoleController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkRoleSearcher searcher) + public async Task Search(FrameworkRoleSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -78,9 +78,9 @@ public async Task EditPrivilege(FrameworkRoleMDVM2 vm) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkRoleVM vm) + public async Task Add(FrameworkRoleVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -90,7 +90,7 @@ public IActionResult Add(FrameworkRoleVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -105,9 +105,9 @@ public IActionResult Add(FrameworkRoleVM vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkRoleVM vm) + public async Task Edit(FrameworkRoleVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -117,7 +117,7 @@ public IActionResult Edit(FrameworkRoleVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -133,7 +133,7 @@ public IActionResult Edit(FrameworkRoleVM vm) [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -148,7 +148,7 @@ public async Task BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -157,32 +157,32 @@ public async Task BatchDelete(string[] ids) var ur = DC.Set().Where(x => RoleCode.Contains(x.RoleCode)).ToList(); var itcodes = ur.Select(x => x.UserCode).ToArray(); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); await Wtm.RemoveUserCacheByRole(itcodes); - await Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant); + await Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant); return Ok(ids.Count()); } } [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkRoleSearcher searcher) + public async Task ExportExcel(FrameworkRoleSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -192,14 +192,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] public IActionResult GetExcelTemplate() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -216,20 +216,20 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkRoleImportVM vm) + public async Task Import(FrameworkRoleImportVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } else { - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); return Ok(vm.EntityList.Count); } } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkTenantController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkTenantController.cs index 659455da6..570f10375 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkTenantController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkTenantController.cs @@ -20,9 +20,9 @@ public class FrameworkTenantController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkTenantSearcher searcher) + public async Task Search(FrameworkTenantSearcher searcher) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -50,9 +50,9 @@ public FrameworkTenantVM Get(Guid id) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkTenantVM vm) + public async Task Add(FrameworkTenantVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -64,7 +64,7 @@ public IActionResult Add(FrameworkTenantVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -79,9 +79,9 @@ public IActionResult Add(FrameworkTenantVM vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkTenantVM vm) + public async Task Edit(FrameworkTenantVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -93,7 +93,7 @@ public IActionResult Edit(FrameworkTenantVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -107,9 +107,9 @@ public IActionResult Edit(FrameworkTenantVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -124,7 +124,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -137,9 +137,9 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkTenantSearcher searcher) + public async Task ExportExcel(FrameworkTenantSearcher searcher) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -148,14 +148,14 @@ public IActionResult ExportExcel(FrameworkTenantSearcher searcher) var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -167,14 +167,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] public IActionResult GetExcelTemplate() { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -193,16 +193,16 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkTenantImportVM vm) + public async Task Import(FrameworkTenantImportVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); return BadRequest(ModelState.GetErrorJson()); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -226,9 +226,9 @@ public IActionResult GetFrameworkTenants(string parent) - private bool CanUseTenant() + private async Task CanUseTenant() { - if (Wtm.LoginUserInfo != null && (Wtm.LoginUserInfo.CurrentTenant == null || Wtm.GlobaInfo.AllTenant.Any(x => x.TCode == Wtm.LoginUserInfo.CurrentTenant && x.Enabled == true && x.EnableSub == true))) + if ((await Wtm.GetLoginUserInfo ()) != null && ((await Wtm.GetLoginUserInfo ()).CurrentTenant == null || Wtm.GlobaInfo.AllTenant.Any(x => x.TCode == (await Wtm.GetLoginUserInfo ()).CurrentTenant && x.Enabled == true && x.EnableSub == true))) { return true; } diff --git a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkUserController.cs b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkUserController.cs index e213fe8dd..d91aa2ff6 100644 --- a/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkUserController.cs +++ b/demo/WalkingTec.Mvvm.BlazorDemo/WalkingTec.Mvvm.BlazorDemo/_Admin/Controllers/FrameworkUserController.cs @@ -20,9 +20,9 @@ public class FrameworkUserController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkUserSearcher searcher) + public async Task Search(FrameworkUserSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -50,7 +50,7 @@ public FrameworkUserVM Get(Guid id) [HttpPost("[action]")] public async Task Add(FrameworkUserVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -60,7 +60,7 @@ public async Task Add(FrameworkUserVM vm) } else { - await vm.DoAddAsync(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -77,7 +77,7 @@ public async Task Add(FrameworkUserVM vm) [HttpPut("[action]")] public async Task Edit(FrameworkUserVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -88,7 +88,7 @@ public async Task Edit(FrameworkUserVM vm) } else { - await vm.DoEditAsync(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -104,7 +104,7 @@ public async Task Edit(FrameworkUserVM vm) [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -119,7 +119,7 @@ public async Task BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -133,7 +133,7 @@ public async Task BatchDelete(string[] ids) DC.Set().RemoveRange(ur); var ug = DC.Set().Where(x => itcode.Contains(x.UserCode)); DC.Set().RemoveRange(ug); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); } catch @@ -149,23 +149,23 @@ public async Task BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkUserSearcher searcher) + public async Task ExportExcel(FrameworkUserSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -175,14 +175,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] public IActionResult GetExcelTemplate() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -202,14 +202,14 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkUserImportVM vm) + public async Task Import(FrameworkUserImportVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -224,11 +224,11 @@ public ActionResult Import(FrameworkUserImportVM vm) [AllRights] public IActionResult GetFrameworkRoles() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkRoles").Result; } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); } [HttpGet("GetFrameworkGroups")] @@ -236,11 +236,11 @@ public IActionResult GetFrameworkRoles() [AllRights] public IActionResult GetFrameworkGroups() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkGroups").Result; } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetFrameworkGroupsTree")] @@ -248,11 +248,11 @@ public IActionResult GetFrameworkGroups() [AllRights] public IActionResult GetFrameworkGroupsTree() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkGroupsTree").Result; } - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } @@ -260,7 +260,7 @@ public IActionResult GetFrameworkGroupsTree() [AllRights] public IActionResult GetUserById(string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserById").Result; } @@ -272,7 +272,7 @@ public IActionResult GetUserById(string keywords) [AllRights] public IActionResult GetUserByGroup(string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserByGroup").Result; } @@ -284,7 +284,7 @@ public IActionResult GetUserByGroup(string keywords) [AllRights] public IActionResult GetUserByRole(string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserByRole").Result; } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/Program.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/Program.cs index 9806ce2d0..6a9db39f6 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/Program.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/Program.cs @@ -22,7 +22,7 @@ class Program { public static ServiceProvider Provider { get; set; } - static void Main(string[] args) + static async Task Main(string[] args) { Console.WriteLine("Start..."); DateTime check = DateTime.Now; @@ -31,8 +31,8 @@ static void Main(string[] args) //var context = GetWtmContext(); //var test = context.CallAPI("baidu","/").Result; List ids = new List(); - ids.Add( AddSchool("111","111","111")); - ids.Add(AddSchool("222", "222", "222")); + ids.Add(await AddSchool("111","111","111")); + ids.Add(await AddSchool("222", "222", "222")); BatchEditSchool(ids); //Upload(); Console.ReadLine(); @@ -59,7 +59,7 @@ static WtmFileProvider GetFileProvider() return rv; } - static int AddSchool(string name,string code,string remark) + static async Task AddSchool(string name,string code,string remark) { SchoolVM vm = GetWtmContext().CreateVM(); @@ -93,10 +93,10 @@ static int AddSchool(string name,string code,string remark) } } }; - vm.Validate(); + await vm.Validate(); if(vm.MSD.IsValid == true) { - vm.DoAdd(); + await vm.DoAdd(); vm.Wtm.DoLog("lalala"); Console.WriteLine($"添加成功"); return vm.Entity.ID; diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityBatchVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityBatchVM.cs index 13ee55495..87f009e71 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityBatchVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -26,8 +26,9 @@ public CityBatchVM() public class City_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityImportVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityImportVM.cs index 9257ad9fb..884d6ad8b 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityImportVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityImportVM.cs @@ -17,10 +17,10 @@ public partial class CityTemplateVM : BaseTemplateVM [Display(Name = "父级")] public ExcelPropety Parent_Excel = ExcelPropety.CreateProperty(x => x.ParentId); - protected override void InitVM() + protected override async Task InitVM() { Parent_Excel.DataType = ColumnDataType.ComboBox; - Parent_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Parent_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityListVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityListVM.cs index cdd99adce..0fb48673d 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityListVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityListVM.cs @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.CityVMs { public partial class CityListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("City", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"", dialogWidth: 800), this.MakeStandardAction("City", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"],"", dialogWidth: 800), @@ -25,10 +25,10 @@ protected override List InitGridAction() this.MakeStandardAction("City", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"],"", dialogWidth: 800), this.MakeStandardAction("City", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"],"", dialogWidth: 800), this.MakeStandardAction("City", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"],""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { var rv = new List>(); rv.Add(this.MakeGridHeader(x => x.Name)); @@ -41,14 +41,14 @@ protected override IEnumerable> InitGridHeader() } rv.Add(this.MakeGridHeaderAction(width: 200)); - return rv; + return Task.FromResult>> (rv); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { - var query = DC.Set() + var query = (await DC.Set() .CheckEqual(Searcher.ParentId, x=>x.ParentId) - .DPWhere(Wtm, x=>x.ID) + .DPWhere(Wtm, x=>x.ID)) .Select(x => new City_View { ID = x.ID, diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CitySearcher.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CitySearcher.cs index f954abd3a..2f28142f5 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CitySearcher.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CitySearcher.cs @@ -16,9 +16,9 @@ public partial class CitySearcher : BaseSearcher [Display(Name = "父级")] public int? ParentId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - AllParents = DC.Set().GetSelectListItems(Wtm, y => y.Name); + AllParents = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityVM.cs index 9882b7973..de1e11a84 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/CityVMs/CityVM.cs @@ -19,24 +19,9 @@ public CityVM() SetInclude(x => x.Parent); } - protected override void InitVM() + protected override async Task InitVM() { - AllParents = DC.Set().GetSelectListItems(Wtm, y => y.Name); - } - - public override void DoAdd() - { - base.DoAdd(); - } - - public override void DoEdit(bool updateAllFields = false) - { - base.DoEdit(updateAllFields); - } - - public override void DoDelete() - { - base.DoDelete(); + AllParents = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/DataTableVMs/ActionLogListVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/DataTableVMs/ActionLogListVM.cs index ecd156bf8..223538e29 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/DataTableVMs/ActionLogListVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/DataTableVMs/ActionLogListVM.cs @@ -2,13 +2,14 @@ using System.Collections.Generic; using System.Data; using System.Data.Common; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Demo.ViewModels.DataTableVMs { public class DatatableListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { var actions = new List { @@ -18,10 +19,10 @@ protected override List InitGridAction() this.MakeAction("ActionLog","Details","详情(本窗口)","Details new window", GridActionParameterTypesEnum.SingleId,"_Admin").SetShowDialog(false).SetIsRedirect(true).SetShowInRow(true).SetQueryString("a=3"), this.MakeStandardAction("DataTable", GridActionStandardTypesEnum.ExportExcel, "导出","") }; - return actions; + return Task.FromResult (actions); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { var header = new List>(); var topheader = this.MakeGridHeaderParent("父表头"); @@ -53,7 +54,7 @@ protected override IEnumerable> InitGridHeader() header.Add(this.MakeGridHeaderAction(width: 320)); - return header; + return Task.FromResult>> (header); } public override DbCommand GetSearchCommand() diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorBatchVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorBatchVM.cs index fc095fc8c..d389f8945 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorBatchVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorBatchVM.cs @@ -29,9 +29,9 @@ public class Major_BatchEdit : BaseVM [Display(Name = "所属学校")] public int? SchoolId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - AllSchools = DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); + AllSchools = await DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorDetailListVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorDetailListVM.cs index 0fb6aea4f..6d1ca69b7 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorDetailListVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorDetailListVM.cs @@ -18,32 +18,32 @@ public MajorDetailListVM() NeedPage = false; } - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("Major", GridActionStandardTypesEnum.AddRow, "新建","", dialogWidth: 800), this.MakeStandardAction("Major", GridActionStandardTypesEnum.RemoveRow, "删除","", dialogWidth: 800), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.MajorCode).SetEditType(EditTypeEnum.TextBox), this.MakeGridHeader(x => x.MajorType).SetEditType(EditTypeEnum.ComboBox,typeof(MajorTypeEnum).ToListItems(null,true)), this.MakeGridHeader(x => x.MajorName).SetEditType(EditTypeEnum.TextBox).SetEditType(EditTypeEnum.TextBox), this.MakeGridHeader(x => "click").SetHeader("单击单元格事件").SetEditType(EditTypeEnum.TextBox).SetEvent("setSign"), //SetEvent设置 事件名称,在layui数据表格进行事件监听 this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .Where(x=>Searcher.SchoolId == x.SchoolId) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorImportVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorImportVM.cs index 3fa47bf87..97592352f 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorImportVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorImportVM.cs @@ -23,10 +23,10 @@ public class MajorTemplateVM : BaseTemplateVM [Display(Name = "所属学校")] public ExcelPropety SchoolId_Excel = ExcelPropety.CreateProperty(x => x.SchoolId); - protected override void InitVM() + protected override async Task InitVM() { SchoolId_Excel.DataType = ColumnDataType.ComboBox; - SchoolId_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); + SchoolId_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorListVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorListVM.cs index f2cba15d4..0da8429da 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorListVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorListVM.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; - +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.Models; @@ -12,9 +12,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.MajorVMs { public class MajorListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("Major", GridActionStandardTypesEnum.Create, "新建","", dialogWidth: 800), this.MakeStandardAction("Major", GridActionStandardTypesEnum.Edit, "修改","", dialogWidth: 800), @@ -24,29 +24,29 @@ protected override List InitGridAction() this.MakeStandardAction("Major", GridActionStandardTypesEnum.BatchDelete, "批量删除","", dialogWidth: 800), this.MakeStandardAction("Major", GridActionStandardTypesEnum.Import, "导入","", dialogWidth: 800), this.MakeStandardAction("Major", GridActionStandardTypesEnum.ExportExcel, "导出","") - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.MajorCode).SetSort(), this.MakeGridHeader(x => x.MajorName), this.MakeGridHeader(x => x.MajorType), this.MakeGridHeader(x => x.Remark), this.MakeGridHeader(x => x.SchoolName_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { - var query = DC.Set() + var query = (await (await DC.Set() .CheckContain(Searcher.MajorCode, x => x.MajorCode) .CheckContain(Searcher.MajorName, x => x.MajorName) .CheckEqual(Searcher.SchoolId, x => x.SchoolId) - .DPWhere(Wtm, x => x.SchoolId) - .DPWhere(Wtm, x=>x.ID) + .DPWhere(Wtm, x => x.SchoolId)) + .DPWhere(Wtm, x=>x.ID)) .Select(x => new Major_View { ID = x.ID, diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorSearcher.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorSearcher.cs index fc5877ff7..aeea6b322 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorSearcher.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorSearcher.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.Models; @@ -19,9 +20,9 @@ public class MajorSearcher : BaseSearcher [Display(Name = "所属学校")] public long? SchoolId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - AllSchools = DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); + AllSchools = await DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorVM.cs index 66aa331f5..04eed2766 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/MajorVMs/MajorVM.cs @@ -18,9 +18,9 @@ public MajorVM() SetInclude(x => x.School); } - protected override void InitVM() + protected override async Task InitVM() { - AllSchools = DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); + AllSchools = await DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiBatchVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiBatchVM.cs index 5de8d0791..13bb94937 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiBatchVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -26,8 +26,9 @@ public SchoolApiBatchVM() public class SchoolApi_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiImportVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiImportVM.cs index d451f3357..e968b1e35 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiImportVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiImportVM.cs @@ -21,7 +21,7 @@ public partial class SchoolApiTemplateVM : BaseTemplateVM [Display(Name = "备注")] public ExcelPropety Remark_Excel = ExcelPropety.CreateProperty(x => x.Remark); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiListVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiListVM.cs index 46e61c0f9..395a582eb 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiListVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.SchoolVMs { public partial class SchoolApiListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("School", GridActionStandardTypesEnum.Create, "新建","", dialogWidth: 800), this.MakeStandardAction("School", GridActionStandardTypesEnum.Edit, "修改","", dialogWidth: 800), @@ -25,21 +25,21 @@ protected override List InitGridAction() this.MakeStandardAction("School", GridActionStandardTypesEnum.BatchDelete, "批量删除","", dialogWidth: 800), this.MakeStandardAction("School", GridActionStandardTypesEnum.Import, "导入","", dialogWidth: 800), this.MakeStandardAction("School", GridActionStandardTypesEnum.ExportExcel, "导出",""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.SchoolCode), this.MakeGridHeader(x => x.SchoolName), this.MakeGridHeader(x => x.SchoolType), this.MakeGridHeader(x => x.Remark), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.SchoolCode, x=>x.SchoolCode) @@ -53,7 +53,7 @@ public override IOrderedQueryable GetSearchQuery() Remark = x.Remark, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiSearcher.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiSearcher.cs index 505f3c865..bdf1ce180 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiSearcher.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiSearcher.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -17,8 +17,9 @@ public partial class SchoolApiSearcher : BaseSearcher [Display(Name = "学校名称")] public String SchoolName { get; set; } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiVM.cs index 97053b096..b098e721e 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolApiVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -17,23 +17,24 @@ public SchoolApiVM() { } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolBatchVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolBatchVM.cs index e62354f33..82dfa86cd 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolBatchVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolBatchVM.cs @@ -30,8 +30,9 @@ public class School_BatchEdit : BaseVM public string SchoolCode { get; set; } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolImportVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolImportVM.cs index 462f9dd8d..f2031e3a0 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolImportVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolImportVM.cs @@ -36,8 +36,9 @@ public class SchoolTemplateVM : BaseTemplateVM [Display(Name = "专业类型")] public ExcelPropety MajorType_Excel = ExcelPropety.CreateProperty(x => x.Majors[0].MajorType); - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolListVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolListVM.cs index 3dc606374..89426d53a 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolListVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolListVM.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.Models; @@ -29,9 +30,9 @@ public override string SetFullRowBgColor(object entity) } } - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("School", GridActionStandardTypesEnum.Create, "新建","", dialogWidth: 800), this.MakeStandardAction("School", GridActionStandardTypesEnum.Edit, "修改","", dialogWidth: 800).SetHideOnToolBar(false).SetPromptMessage("你确定要修改么?").SetButtonClass("layui-btn-normal"), @@ -52,12 +53,12 @@ protected override List InitGridAction() this.MakeStandardAction("School", GridActionStandardTypesEnum.BatchEdit, "批量修改","", dialogWidth: 800), this.MakeStandardAction("School", GridActionStandardTypesEnum.BatchDelete, "批量删除","", dialogWidth: 800), }) - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.SchoolCode), this.MakeGridHeader(x => x.SchoolName), this.MakeGridHeader(x => x.SchoolType), @@ -66,16 +67,16 @@ protected override IEnumerable> InitGridHeader() }).SetHeader("测试").SetDisableExport(), this.MakeGridHeader(x => x.Remark), this.MakeGridHeaderAction(width: 500) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { - var query = DC.Set() + var query = (await DC.Set() .CheckContain(Searcher.SchoolCode, x => x.SchoolCode) .CheckContain(Searcher.SchoolName, x => x.SchoolName) .CheckEqual(Searcher.SchoolType, x => x.SchoolType) - .DPWhere(Wtm, x=>x.ID) + .DPWhere(Wtm, x=>x.ID)) .Select(x => new School_View { ID = x.ID, diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolListVM2.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolListVM2.cs index e55847078..99de14861 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolListVM2.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolListVM2.cs @@ -18,18 +18,18 @@ public SchoolListVM2() DetailGridPrix = "EntityList"; } - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("School", GridActionStandardTypesEnum.AddRow, "新建","", dialogWidth: 800), this.MakeStandardAction("School", GridActionStandardTypesEnum.RemoveRow, "删除","", dialogWidth: 800), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.SchoolCode).SetEditType(EditTypeEnum.TextBox), this.MakeGridHeader(x => x.SchoolName).SetEditType(EditTypeEnum.TextBox), this.MakeGridHeader(x => x.SchoolType).SetEditType(EditTypeEnum.ComboBox,typeof(SchoolTypeEnum).ToListItems(null,true)), @@ -38,10 +38,10 @@ protected override IEnumerable> InitGridHeader() }).SetHeader("测试"), this.MakeGridHeader(x => x.Remark).SetEditType(EditTypeEnum.TextBox), this.MakeGridHeaderAction(width: 500) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.SchoolCode, x => x.SchoolCode) @@ -56,7 +56,7 @@ public override IOrderedQueryable GetSearchQuery() Remark = x.Remark, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolSearcher.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolSearcher.cs index 3745ff102..34641a52e 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolSearcher.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolSearcher.cs @@ -19,7 +19,7 @@ public class SchoolSearcher : BaseSearcher [Display(Name = "学校类型")] public SchoolTypeEnum? SchoolType { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolVM.cs index cd1c70499..2fa8a20c4 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/SchoolVMs/SchoolVM.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.Models; @@ -20,9 +21,10 @@ public SchoolVM() } - protected override void InitVM() + protected override Task InitVM() { MajorList.CopyContext(this); + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentBatchVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentBatchVM.cs index bc8feaf6d..c0733f381 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentBatchVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -26,8 +26,9 @@ public StudentBatchVM() public class Student_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentImportVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentImportVM.cs index 2281db0fc..eed8499bf 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentImportVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -33,8 +33,9 @@ public partial class StudentTemplateVM : BaseTemplateVM [Display(Name = "日期")] public ExcelPropety EnRollDate_Excel = ExcelPropety.CreateProperty(x => x.EnRollDate); - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentListVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentListVM.cs index 1522f0804..1337c8182 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentListVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentListVM.cs @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.StudentVMs { public partial class StudentListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("Student", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"", dialogWidth: 800), this.MakeStandardAction("Student", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"],"", dialogWidth: 800), @@ -25,12 +25,12 @@ protected override List InitGridAction() this.MakeStandardAction("Student", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"],"", dialogWidth: 800), this.MakeStandardAction("Student", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"],"", dialogWidth: 800), this.MakeStandardAction("Student", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"],""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.ID), this.MakeGridHeader(x => x.Password), this.MakeGridHeader(x => x.Email), @@ -44,7 +44,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.EnRollDate), this.MakeGridHeader(x => x.MajorName_view), this.MakeGridHeaderAction(width: 200) - }; + }); } private List PhotoIdFormat(Student_View entity, object val) { @@ -56,7 +56,7 @@ private List PhotoIdFormat(Student_View entity, object val) } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.Name, x => x.Name) @@ -78,7 +78,7 @@ public override IOrderedQueryable GetSearchQuery() MajorName_view = x.StudentMajor.Select(y=>y.Major.MajorName).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentSearchVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentSearchVM.cs index 801086535..41167d9ee 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentSearchVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentSearchVM.cs @@ -17,7 +17,7 @@ public StudentSearchVM() InValidList = new StudentListVM(); } - protected override void InitVM() + protected override async Task InitVM() { ValidList.CopyContext(this); InValidList.CopyContext(this); diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentSearcher.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentSearcher.cs index 40be3864e..26c4384a7 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentSearcher.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentSearcher.cs @@ -26,9 +26,9 @@ public partial class StudentSearcher : BaseSearcher [Display(Name = "专业")] public List SelectedStudentMajorIDs { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - AllStudentMajors = DC.Set().GetSelectListItems(Wtm, y => y.MajorName); + AllStudentMajors = await DC.Set().GetSelectListItems(Wtm, y => y.MajorName); } } diff --git a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentVM.cs b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentVM.cs index 0e0e6a2ef..6958ed310 100644 --- a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentVM.cs +++ b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/StudentVMs/StudentVM.cs @@ -21,14 +21,14 @@ public StudentVM() MajorList = new MajorListVM(); } - protected override void InitVM() + protected override async Task InitVM() { - AllStudentMajors = DC.Set().GetSelectListItems(Wtm, y => y.MajorName); + AllStudentMajors = await DC.Set().GetSelectListItems(Wtm, y => y.MajorName); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git "a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215BatchVM.cs" "b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215BatchVM.cs" index 03ed541f5..fa037a587 100644 --- "a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215BatchVM.cs" +++ "b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215BatchVM.cs" @@ -26,7 +26,7 @@ public 不要用中文模型名BatchVM() public class 不要用中文模型名_BatchEdit : BaseVM { - protected override void InitVM() + protected override async Task InitVM() { } diff --git "a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ImportVM.cs" "b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ImportVM.cs" index a5022a1c4..9888bf0ce 100644 --- "a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ImportVM.cs" +++ "b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ImportVM.cs" @@ -17,7 +17,7 @@ public partial class 不要用中文模型名TemplateVM : BaseTemplateVM public ExcelPropety 中文_Excel = ExcelPropety.CreateProperty<不要用中文模型名>(x => x.中文); public ExcelPropety 模型名_Excel = ExcelPropety.CreateProperty<不要用中文模型名>(x => x.模型名); - protected override void InitVM() + protected override async Task InitVM() { } diff --git "a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ListVM.cs" "b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ListVM.cs" index 5947598e4..827a372f0 100644 --- "a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ListVM.cs" +++ "b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ListVM.cs" @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.不要用中文模型名VMs { public partial class 不要用中文模型名ListVM : BasePagedListVM<不要用中文模型名_View, 不要用中文模型名Searcher> { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("不要用中文模型名", GridActionStandardTypesEnum.Create, "新建","", dialogWidth: 800), this.MakeStandardAction("不要用中文模型名", GridActionStandardTypesEnum.Edit, "修改","", dialogWidth: 800), @@ -25,21 +25,21 @@ protected override List InitGridAction() this.MakeStandardAction("不要用中文模型名", GridActionStandardTypesEnum.BatchDelete, "批量删除","", dialogWidth: 800), this.MakeStandardAction("不要用中文模型名", GridActionStandardTypesEnum.Import, "导入","", dialogWidth: 800), this.MakeStandardAction("不要用中文模型名", GridActionStandardTypesEnum.ExportExcel, "导出",""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.不要), this.MakeGridHeader(x => x.用), this.MakeGridHeader(x => x.中文), this.MakeGridHeader(x => x.模型名), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable<不要用中文模型名_View> GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set<不要用中文模型名>() .CheckContain(Searcher.不要, x=>x.不要) @@ -55,7 +55,7 @@ public override IOrderedQueryable<不要用中文模型名_View> GetSearchQuery( 模型名 = x.模型名, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git "a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Searcher.cs" "b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Searcher.cs" index c99d2bbf1..abe3ca827 100644 --- "a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Searcher.cs" +++ "b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Searcher.cs" @@ -17,7 +17,7 @@ public partial class 不要用中文模型名Searcher : BaseSearcher public DateTime? 中文 { get; set; } public Boolean? 模型名 { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git "a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VM.cs" "b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VM.cs" index bf2f58056..140197aa4 100644 --- "a/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VM.cs" +++ "b/demo/WalkingTec.Mvvm.ConsoleDemo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VM.cs" @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -17,23 +17,24 @@ public 不要用中文模型名VM() { } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo.Test/WalkingTec.Mvvm.Demo.Test.csproj b/demo/WalkingTec.Mvvm.Demo.Test/WalkingTec.Mvvm.Demo.Test.csproj index 07b5a13ff..c3beaf1ce 100644 --- a/demo/WalkingTec.Mvvm.Demo.Test/WalkingTec.Mvvm.Demo.Test.csproj +++ b/demo/WalkingTec.Mvvm.Demo.Test/WalkingTec.Mvvm.Demo.Test.csproj @@ -1,7 +1,7 @@ - + - net5.0 + net6.0 false diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/AccountController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/AccountController.cs index 0388c1f4e..00012af32 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/AccountController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/AccountController.cs @@ -32,7 +32,7 @@ public class AccountController : BaseApiController public async Task Login([FromForm] string account, [FromForm] string password, [FromForm] string tenant = null, [FromForm] bool rememberLogin = false) { - var user = Wtm.DoLogin(account, password, tenant); + var user = await Wtm.DoLogin(account, password, tenant); if (user == null) { return BadRequest(Localizer["Sys.LoginFailed"].Value); @@ -40,7 +40,7 @@ public async Task Login([FromForm] string account, [FromForm] str //其他属性可以通过user.Attributes["aaa"] = "bbb"方式赋值 - Wtm.LoginUserInfo = user; + Wtm.SetLoginUserInfo (user); AuthenticationProperties properties = null; if (rememberLogin) @@ -52,9 +52,9 @@ public async Task Login([FromForm] string account, [FromForm] str }; } - var principal = Wtm.LoginUserInfo.CreatePrincipal(); + var principal = (await Wtm.GetLoginUserInfo ()).CreatePrincipal(); await Wtm.HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, properties); - return CheckUserInfo(); + return await CheckUserInfo(); } @@ -62,7 +62,7 @@ public async Task Login([FromForm] string account, [FromForm] str [HttpPost("[action]")] public async Task LoginJwt(SimpleLogin loginInfo) { - var user = Wtm.DoLogin(loginInfo.Account, loginInfo.Password, loginInfo.Tenant); + var user = await Wtm.DoLogin(loginInfo.Account, loginInfo.Password, loginInfo.Tenant); if (user == null) { ModelState.AddModelError(" ", Localizer["Sys.LoginFailed"]); @@ -71,9 +71,9 @@ public async Task LoginJwt(SimpleLogin loginInfo) //其他属性可以通过user.Attributes["aaa"] = "bbb"方式赋值 - Wtm.LoginUserInfo = user; + Wtm.SetLoginUserInfo (user); var authService = HttpContext.RequestServices.GetService(typeof(ITokenService)) as ITokenService; - var token = await authService.IssueTokenAsync(Wtm.LoginUserInfo); + var token = await authService.IssueTokenAsync((await Wtm.GetLoginUserInfo ())); return Content(JsonSerializer.Serialize(token), "application/json"); } @@ -81,26 +81,26 @@ public async Task LoginJwt(SimpleLogin loginInfo) [HttpGet("[action]")] public async Task LoginRemote([FromQuery] string _remotetoken) { - if (Wtm?.LoginUserInfo != null) + if ((await Wtm?.GetLoginUserInfo ()) != null) { - var principal = Wtm.LoginUserInfo.CreatePrincipal(); + var principal = (await Wtm.GetLoginUserInfo ()).CreatePrincipal(); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, null); } - return CheckUserInfo(); + return await CheckUserInfo(); } [AllRights] [HttpGet("[action]")] - public IActionResult SetTenant([FromQuery] string tenant) + public async Task SetTenant([FromQuery] string tenant) { - bool rv = Wtm.SetCurrentTenant(tenant == "" ? null : tenant); + bool rv = await Wtm.SetCurrentTenant(tenant == "" ? null : tenant); return Ok(rv); } [AllowAnonymous] [HttpPost("[action]")] - public IActionResult Reg(SimpleReg regInfo) + public async Task Reg(SimpleReg regInfo) { var exist = DC.Set().Any(x => x.ITCode.ToLower() == regInfo.ITCode.ToLower()); @@ -129,7 +129,7 @@ public IActionResult Reg(SimpleReg regInfo) DC.Set().Add(userrole); } DC.Set().Add(user); - DC.SaveChanges(); + await DC.SaveChangesAsync(); return Ok(); } @@ -152,18 +152,18 @@ public IActionResult RefreshToken(string refreshToken) [AllRights] [HttpGet("[action]")] - public IActionResult CheckUserInfo(bool IsApi = true) + public async Task CheckUserInfo(bool IsApi = true) { - if (Wtm.LoginUserInfo == null) + if ((await Wtm.GetLoginUserInfo ()) == null) { return BadRequest(); } else { - var forapi = Wtm.LoginUserInfo; + var forapi = (await Wtm.GetLoginUserInfo ()); if (IsApi) { - forapi.SetAttributesForApi(Wtm); + await forapi.SetAttributesForApi(Wtm); } forapi.DataPrivileges = null; forapi.FunctionPrivileges = null; @@ -175,7 +175,7 @@ public IActionResult CheckUserInfo(bool IsApi = true) { forapi.Attributes.Remove("IsMainHost"); } - if (ConfigInfo.HasMainHost && string.IsNullOrEmpty(Wtm.LoginUserInfo.TenantCode) == true) + if (ConfigInfo.HasMainHost && string.IsNullOrEmpty((await Wtm.GetLoginUserInfo ()).TenantCode) == true) { forapi.Attributes.Add("IsMainHost", true); } @@ -190,9 +190,9 @@ public IActionResult CheckUserInfo(bool IsApi = true) [AllRights] [HttpPost("[action]")] - public IActionResult ChangePassword(ChangePasswordVM vm) + public async Task ChangePassword(ChangePasswordVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -219,7 +219,7 @@ public IActionResult ChangePassword(ChangePasswordVM vm) [HttpGet("[action]")] public async Task Logout() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { await Wtm.CallAPI("mainhost", "/api/_account/logout", HttpMethodEnum.GET, new { }, 10); return Ok(ConfigInfo.MainHost); @@ -235,45 +235,45 @@ public async Task Logout() [HttpGet("GetFrameworkRoles")] [ActionDescription("GetRoles")] [AllRights] - public IActionResult GetFrameworkRoles() + public async Task GetFrameworkRoles () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetFrameworkRoles").Result; } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); } [HttpGet("GetFrameworkGroups")] [ActionDescription("GetGroups")] [AllRights] - public IActionResult GetFrameworkGroups() + public async Task GetFrameworkGroups () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetFrameworkGroups").Result; } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetFrameworkGroupsTree")] [ActionDescription("GetGroupsTree")] [AllRights] - public IActionResult GetFrameworkGroupsTree() + public async Task GetFrameworkGroupsTree () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetFrameworkGroupsTree").Result; } - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetUserById")] [AllRights] - public IActionResult GetUserById(string keywords) + public async Task GetUserById (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetUserById").Result; } @@ -283,9 +283,9 @@ public IActionResult GetUserById(string keywords) [HttpGet("GetUserByGroup")] [AllRights] - public IActionResult GetUserByGroup(string keywords) + public async Task GetUserByGroup (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetUserByGroup").Result; } @@ -295,9 +295,9 @@ public IActionResult GetUserByGroup(string keywords) [HttpGet("GetUserByRole")] [AllRights] - public IActionResult GetUserByRole(string keywords) + public async Task GetUserByRole (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetUserByRole").Result; } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/ActionLogController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/ActionLogController.cs index 122b7bd26..aa77c2ed1 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/ActionLogController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/ActionLogController.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -18,7 +19,7 @@ public class ActionLogController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(ActionLogSearcher searcher) + public async Task Search(ActionLogSearcher searcher) { if (ModelState.IsValid) { @@ -42,7 +43,7 @@ public ActionLogVM Get(Guid id) [HttpPost("[action]")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -53,7 +54,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -66,17 +67,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(ActionLogSearcher searcher) + public async Task ExportExcel(ActionLogSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -84,7 +85,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/DataPrivilegeController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/DataPrivilegeController.cs index 0521d7d46..4d8e71434 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/DataPrivilegeController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/DataPrivilegeController.cs @@ -59,7 +59,7 @@ public async Task Add(DataPrivilegeVM vm) } else { - await vm.DoAddAsync(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -82,7 +82,7 @@ public async Task Edit(DataPrivilegeVM vm) } else { - await vm.DoEditAsync(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -108,7 +108,7 @@ public async Task Delete(SimpleDpModel dp) { vm = Wtm.CreateVM(values: x => x.Entity.TableName == dp.ModelName && x.Entity.GroupCode == dp.Id && x.DpType == dp.Type); } - await vm.DoDeleteAsync(); + await vm.DoDelete(); return Ok(1); } @@ -116,13 +116,13 @@ public async Task Delete(SimpleDpModel dp) [AllRights] [HttpGet("[action]")] - public ActionResult GetPrivilegeByTableName(string table) + public async Task GetPrivilegeByTableName(string table) { var AllItems = new List(); - var dps =Wtm.DataPrivilegeSettings.Where(x => x.ModelName == table).SingleOrDefault(); + var dps = Wtm.DataPrivilegeSettings.Where(x => x.ModelName == table).SingleOrDefault(); if (dps != null) { - AllItems = dps.GetItemList(Wtm); + AllItems = await dps.GetItemList(Wtm); } return Ok(AllItems); } @@ -137,24 +137,24 @@ public ActionResult GetPrivileges() [AllRights] [HttpGet("[action]")] - public IActionResult GetUserGroups() + public async Task GetUserGroups () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_DataPrivilege/GetUserGroups").Result; } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [AllRights] [HttpGet("[action]")] - public IActionResult GetUserGroupsTree() + public async Task GetUserGroupsTree () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_DataPrivilege/GetUserGroupsTree").Result; } - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FileApiController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FileApiController.cs index f3549f710..85a634fbb 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FileApiController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FileApiController.cs @@ -23,20 +23,20 @@ public class FileApiController : BaseApiController { [HttpPost("[action]")] [ActionDescription("UploadFile")] - public IActionResult Upload([FromServices] WtmFileProvider fp, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) + public async Task Upload ([FromServices] WtmFileProvider fp, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) { var FileData = Request.Form.Files[0]; - var file = fp.Upload(FileData.FileName, FileData.Length, FileData.OpenReadStream(), groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); + var file = await fp.Upload(FileData.FileName, FileData.Length, FileData.OpenReadStream(), groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); return Ok(new { Id = file.GetID(), Name = file.FileName }); } [HttpPost("[action]")] [ActionDescription("UploadPic")] - public IActionResult UploadImage([FromServices] WtmFileProvider fp, int? width = null, int? height = null, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) + public async Task UploadImage ([FromServices] WtmFileProvider fp, int? width = null, int? height = null, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) { if (width == null && height == null) { - return Upload(fp, sm, groupName, csName); + return await Upload(fp, sm, groupName, csName); } var FileData = Request.Form.Files[0]; @@ -55,9 +55,9 @@ public IActionResult UploadImage([FromServices] WtmFileProvider fp, int? width = } MemoryStream ms = new MemoryStream(); oimage.Mutate(x => x.Resize(width.Value, height.Value)); - oimage.SaveAsJpeg(ms); + await oimage.SaveAsJpegAsync (ms); ms.Position = 0; - var file = fp.Upload(FileData.FileName, FileData.Length, ms, groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); + var file = await fp.Upload(FileData.FileName, FileData.Length, ms, groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); oimage.Dispose(); ms.Dispose(); @@ -106,7 +106,7 @@ public async Task GetFile([FromServices] WtmFileProvider fp, stri } var ms = new MemoryStream(); oimage.Mutate(x => x.Resize(width.Value, height.Value)); - oimage.SaveAsJpeg(ms); + await oimage.SaveAsJpegAsync (ms); ms.Position = 0; await ms?.CopyToAsync(Response.Body); file.DataStream.Dispose(); @@ -149,7 +149,7 @@ public IActionResult GetFileInfo([FromServices] WtmFileProvider fp, string id, s [Public] public async Task GetUserPhoto([FromServices] WtmFileProvider fp, string id, string csName = null, int? width = null, int? height = null) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Redirect(Wtm.ConfigInfo.MainHost+ Request.Path); } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkGroupController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkGroupController.cs index 607479b1e..3881185e2 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkGroupController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkGroupController.cs @@ -19,9 +19,9 @@ public class FrameworkGroupController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkGroupSearcher searcher) + public async Task Search(FrameworkGroupSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -47,9 +47,9 @@ public FrameworkGroupVM Get(Guid id) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkGroupVM vm) + public async Task Add(FrameworkGroupVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -59,7 +59,7 @@ public IActionResult Add(FrameworkGroupVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -74,9 +74,9 @@ public IActionResult Add(FrameworkGroupVM vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkGroupVM vm) + public async Task Edit(FrameworkGroupVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -86,7 +86,7 @@ public IActionResult Edit(FrameworkGroupVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -102,7 +102,7 @@ public IActionResult Edit(FrameworkGroupVM vm) [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -117,7 +117,7 @@ public async Task BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -126,32 +126,32 @@ public async Task BatchDelete(string[] ids) var gr = DC.Set().Where(x => GroupCode.Contains(x.GroupCode)).ToList(); var itcodes = gr.Select(x => x.UserCode).ToArray(); DC.Set().RemoveRange(gr); - DC.SaveChanges(); + await DC.SaveChangesAsync(); await Wtm.RemoveUserCacheByGroup(GroupCode.ToArray()); - Wtm.RemoveGroupCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + Wtm.RemoveGroupCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); return Ok(ids.Count()); } } [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkGroupSearcher searcher) + public async Task ExportExcel(FrameworkGroupSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -161,14 +161,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -185,29 +185,29 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkGroupImportVM vm) + public async Task Import(FrameworkGroupImportVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } else { - Wtm.RemoveGroupCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + Wtm.RemoveGroupCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); return Ok(vm.EntityList.Count); } } [AllRights] [HttpGet("[action]")] - public IActionResult GetParents() + public async Task GetParents () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkgroup/GetParents").Result; } @@ -217,9 +217,9 @@ public IActionResult GetParents() [AllRights] [HttpGet("[action]")] - public IActionResult GetParentsTree() + public async Task GetParentsTree () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkgroup/GetParentsTree").Result; } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkMenuController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkMenuController.cs index 971a7eb07..1cbd7f701 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkMenuController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkMenuController.cs @@ -45,7 +45,7 @@ public FrameworkMenuVM2 Get(Guid id) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkMenuVM2 vm) + public async Task Add(FrameworkMenuVM2 vm) { if (!ModelState.IsValid) { @@ -53,7 +53,7 @@ public IActionResult Add(FrameworkMenuVM2 vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -68,7 +68,7 @@ public IActionResult Add(FrameworkMenuVM2 vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkMenuVM2 vm) + public async Task Edit(FrameworkMenuVM2 vm) { if (!ModelState.IsValid) { @@ -76,7 +76,7 @@ public IActionResult Edit(FrameworkMenuVM2 vm) } else { - vm.DoEdit(true); + await vm.DoEdit(true); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -90,7 +90,7 @@ public IActionResult Edit(FrameworkMenuVM2 vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -101,7 +101,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -113,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(BaseSearcher searcher) + public async Task ExportExcel(BaseSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -131,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("_Admin.UnsetPages")] @@ -173,9 +173,9 @@ public ActionResult GetActionsByModel(string ModelName) [ActionDescription("GetFolders")] [HttpGet("GetFolders")] [AllRights] - public ActionResult GetFolders() + public async Task GetFolders () { - var AllParents = DC.Set().Where(x => x.FolderOnly == true).OrderBy(x => x.DisplayOrder).GetSelectListItems(Wtm, x => x.PageName); + var AllParents = await DC.Set().Where(x => x.FolderOnly == true).OrderBy(x => x.DisplayOrder).GetSelectListItems(Wtm, x => x.PageName); foreach (var p in AllParents) { if (p.Text.StartsWith("MenuKey.")) diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkRoleController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkRoleController.cs index 62724cfde..f9ad8d5b6 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkRoleController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkRoleController.cs @@ -19,9 +19,9 @@ public class FrameworkRoleController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkRoleSearcher searcher) + public async Task Search(FrameworkRoleSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -78,9 +78,9 @@ public async Task EditPrivilege(FrameworkRoleMDVM2 vm) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkRoleVM vm) + public async Task Add(FrameworkRoleVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -90,7 +90,7 @@ public IActionResult Add(FrameworkRoleVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -105,9 +105,9 @@ public IActionResult Add(FrameworkRoleVM vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkRoleVM vm) + public async Task Edit(FrameworkRoleVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -117,7 +117,7 @@ public IActionResult Edit(FrameworkRoleVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -133,7 +133,7 @@ public IActionResult Edit(FrameworkRoleVM vm) [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -148,7 +148,7 @@ public async Task BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -157,32 +157,32 @@ public async Task BatchDelete(string[] ids) var ur = DC.Set().Where(x => RoleCode.Contains(x.RoleCode)).ToList(); var itcodes = ur.Select(x => x.UserCode).ToArray(); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); await Wtm.RemoveUserCacheByRole(itcodes); - await Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant); + await Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant); return Ok(ids.Count()); } } [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkRoleSearcher searcher) + public async Task ExportExcel(FrameworkRoleSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -192,14 +192,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -216,20 +216,20 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkRoleImportVM vm) + public async Task Import(FrameworkRoleImportVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } else { - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); return Ok(vm.EntityList.Count); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkTenantController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkTenantController.cs index 659455da6..be05dbabe 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkTenantController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkTenantController.cs @@ -20,9 +20,9 @@ public class FrameworkTenantController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkTenantSearcher searcher) + public async Task Search (FrameworkTenantSearcher searcher) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -50,9 +50,9 @@ public FrameworkTenantVM Get(Guid id) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkTenantVM vm) + public async Task Add (FrameworkTenantVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -64,7 +64,7 @@ public IActionResult Add(FrameworkTenantVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -79,9 +79,9 @@ public IActionResult Add(FrameworkTenantVM vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkTenantVM vm) + public async Task Edit (FrameworkTenantVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -93,7 +93,7 @@ public IActionResult Edit(FrameworkTenantVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -107,9 +107,9 @@ public IActionResult Edit(FrameworkTenantVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -124,7 +124,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -137,9 +137,9 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkTenantSearcher searcher) + public async Task ExportExcel (FrameworkTenantSearcher searcher) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -148,14 +148,14 @@ public IActionResult ExportExcel(FrameworkTenantSearcher searcher) var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -167,14 +167,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate() { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -193,16 +193,16 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkTenantImportVM vm) + public async Task Import (FrameworkTenantImportVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); return BadRequest(ModelState.GetErrorJson()); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -226,9 +226,10 @@ public IActionResult GetFrameworkTenants(string parent) - private bool CanUseTenant() + private async Task CanUseTenant() { - if (Wtm.LoginUserInfo != null && (Wtm.LoginUserInfo.CurrentTenant == null || Wtm.GlobaInfo.AllTenant.Any(x => x.TCode == Wtm.LoginUserInfo.CurrentTenant && x.Enabled == true && x.EnableSub == true))) + var _loginUserInfo = await Wtm.GetLoginUserInfo (); + if (_loginUserInfo != null && (_loginUserInfo.CurrentTenant == null || Wtm.GlobaInfo.AllTenant.Any(x => x.TCode == _loginUserInfo.CurrentTenant && x.Enabled == true && x.EnableSub == true))) { return true; } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkUserController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkUserController.cs index e213fe8dd..6eac32ec6 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkUserController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ApiControllers/FrameworkUserController.cs @@ -20,9 +20,9 @@ public class FrameworkUserController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkUserSearcher searcher) + public async Task Search(FrameworkUserSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -50,7 +50,7 @@ public FrameworkUserVM Get(Guid id) [HttpPost("[action]")] public async Task Add(FrameworkUserVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -60,7 +60,7 @@ public async Task Add(FrameworkUserVM vm) } else { - await vm.DoAddAsync(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -77,7 +77,7 @@ public async Task Add(FrameworkUserVM vm) [HttpPut("[action]")] public async Task Edit(FrameworkUserVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -88,7 +88,7 @@ public async Task Edit(FrameworkUserVM vm) } else { - await vm.DoEditAsync(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -104,7 +104,7 @@ public async Task Edit(FrameworkUserVM vm) [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -119,7 +119,7 @@ public async Task BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -133,7 +133,7 @@ public async Task BatchDelete(string[] ids) DC.Set().RemoveRange(ur); var ug = DC.Set().Where(x => itcode.Contains(x.UserCode)); DC.Set().RemoveRange(ug); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); } catch @@ -149,23 +149,23 @@ public async Task BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkUserSearcher searcher) + public async Task ExportExcel(FrameworkUserSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -175,14 +175,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -202,14 +202,14 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkUserImportVM vm) + public async Task Import(FrameworkUserImportVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -222,45 +222,45 @@ public ActionResult Import(FrameworkUserImportVM vm) [HttpGet("GetFrameworkRoles")] [ActionDescription("GetRoles")] [AllRights] - public IActionResult GetFrameworkRoles() + public async Task GetFrameworkRoles () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkRoles").Result; } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); } [HttpGet("GetFrameworkGroups")] [ActionDescription("GetGroups")] [AllRights] - public IActionResult GetFrameworkGroups() + public async Task GetFrameworkGroups () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkGroups").Result; } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetFrameworkGroupsTree")] [ActionDescription("GetGroupsTree")] [AllRights] - public IActionResult GetFrameworkGroupsTree() + public async Task GetFrameworkGroupsTree () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkGroupsTree").Result; } - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetUserById")] [AllRights] - public IActionResult GetUserById(string keywords) + public async Task GetUserById (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserById").Result; } @@ -270,9 +270,9 @@ public IActionResult GetUserById(string keywords) [HttpGet("GetUserByGroup")] [AllRights] - public IActionResult GetUserByGroup(string keywords) + public async Task GetUserByGroup (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserByGroup").Result; } @@ -282,9 +282,9 @@ public IActionResult GetUserByGroup(string keywords) [HttpGet("GetUserByRole")] [AllRights] - public IActionResult GetUserByRole(string keywords) + public async Task GetUserByRole (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserByRole").Result; } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/ActionLogController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/ActionLogController.cs index f0a040988..36f6fc00b 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/ActionLogController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/ActionLogController.cs @@ -48,14 +48,14 @@ public IActionResult Details(string id) [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(ActionLogListVM vm) + public async Task ExportExcel(ActionLogListVM vm) { - return vm.GetExportData(); + return await vm.GetExportData(); } [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(string[] IDs) + public async Task BatchDelete(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -63,9 +63,9 @@ public ActionResult BatchDelete(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult DoBatchDelete(ActionLogBatchVM vm, IFormCollection nouse) + public async Task DoBatchDelete(ActionLogBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete", vm); } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/DataPrivilegeController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/DataPrivilegeController.cs index d8bf17704..3f22bbb88 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/DataPrivilegeController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/DataPrivilegeController.cs @@ -15,7 +15,7 @@ namespace WalkingTec.Mvvm.Mvc.Admin.Controllers public class DataPrivilegeController : BaseController { [ActionDescription("Sys.Search")] - public ActionResult Index() + public IActionResult Index () { var vm = Wtm.CreateVM(); vm.Searcher.TableNames = Wtm.DataPrivilegeSettings.ToListItems(x => x.PrivillegeName, x => x.ModelName); @@ -23,7 +23,7 @@ public ActionResult Index() } [HttpPost] - public ActionResult Index(DataPrivilegeListVM vm) + public IActionResult Index (DataPrivilegeListVM vm) { vm.Searcher.TableNames = Wtm.DataPrivilegeSettings.ToListItems(x => x.PrivillegeName, x => x.ModelName); return PartialView(vm); @@ -47,7 +47,7 @@ public string Search(DataPrivilegeSearcher searcher) } [ActionDescription("Sys.Create")] - public ActionResult Create(DpTypeEnum Type) + public IActionResult Create (DpTypeEnum Type) { var vm = Wtm.CreateVM(values:x=>x.DpType == Type); return PartialView(vm); @@ -63,13 +63,13 @@ public async Task Create(DataPrivilegeVM vm) } else { - await vm.DoAddAsync(); + await vm.DoAdd(); return FFResult().CloseDialog().RefreshGrid(); } } [ActionDescription("Sys.Edit")] - public ActionResult Edit(string ModelName, string Id, DpTypeEnum Type) + public IActionResult Edit (string ModelName, string Id, DpTypeEnum Type) { DataPrivilegeVM vm = null; if (Type == DpTypeEnum.User) @@ -93,7 +93,7 @@ public async Task Edit(DataPrivilegeVM vm) } else { - await vm.DoEditAsync(); + await vm.DoEdit(); return FFResult().CloseDialog().RefreshGrid(); } } @@ -110,34 +110,34 @@ public async Task Delete(string ModelName, string Id, DpTypeEnum T { vm = Wtm.CreateVM(values: x => x.Entity.TableName == ModelName && x.Entity.GroupCode == Id && x.DpType == Type); } - await vm.DoDeleteAsync(); + await vm.DoDelete(); return FFResult().RefreshGrid(); } [AllRights] - public ActionResult GetPrivilegeByTableName(string table) + public async Task GetPrivilegeByTableName (string table) { var AllItems = new List(); var dps = Wtm.DataPrivilegeSettings.Where(x => x.ModelName == table).SingleOrDefault(); if (dps != null) { - AllItems = dps.GetItemList(Wtm); + AllItems = await dps.GetItemList(Wtm); } return JsonMore(AllItems); } [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(DataPrivilegeListVM vm) + public async Task ExportExcel(DataPrivilegeListVM vm) { - return vm.GetExportData(); + return await vm.GetExportData(); } [AllRights] - public IActionResult GetUserGroups() + public async Task GetUserGroups () { WalkingTec.Mvvm.Admin.Api.DataPrivilegeController userapi = new Mvvm.Admin.Api.DataPrivilegeController(); userapi.Wtm = Wtm; - var rv = userapi.GetUserGroupsTree() as OkObjectResult; + var rv = await userapi.GetUserGroupsTree() as OkObjectResult; List users = new List(); if (rv != null && rv.Value is string && rv.Value != null) { diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkGroupController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkGroupController.cs index e0f76adea..592455464 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkGroupController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkGroupController.cs @@ -18,7 +18,7 @@ public class FrameworkGroupController : BaseController { #region 查询 [ActionDescription("Sys.Search")] - public ActionResult Index() + public IActionResult Index () { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -26,9 +26,9 @@ public ActionResult Index() [ActionDescription("Sys.Search")] [HttpPost] - public IActionResult Search(FrameworkGroupSearcher searcher) + public async Task Search(FrameworkGroupSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { searcher.IsPlainText = false; return Wtm.CallAPI("mainhost", "/api/_frameworkgroup/search", HttpMethodEnum.POST, searcher).Result.ToActionResult(); @@ -47,9 +47,9 @@ public IActionResult Search(FrameworkGroupSearcher searcher) #endregion [ActionDescription("Sys.Create")] - public ActionResult Create() + public async Task Create() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -59,9 +59,9 @@ public ActionResult Create() [HttpPost] [ActionDescription("Sys.Create")] - public ActionResult Create(FrameworkGroupVM vm) + public async Task Create(FrameworkGroupVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -71,15 +71,15 @@ public ActionResult Create(FrameworkGroupVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); return FFResult().CloseDialog().RefreshGrid(); } } [ActionDescription("Sys.Edit")] - public ActionResult Edit(Guid id) + public async Task Edit(Guid id) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -90,9 +90,9 @@ public ActionResult Edit(Guid id) [HttpPost] [ActionDescription("Sys.Edit")] [ValidateFormItemOnly] - public ActionResult Edit(FrameworkGroupVM vm) + public async Task Edit(FrameworkGroupVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -102,15 +102,15 @@ public ActionResult Edit(FrameworkGroupVM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); return FFResult().CloseDialog().RefreshGrid(); } } [ActionDescription("Sys.Delete")] - public ActionResult Delete(Guid id) + public async Task Delete(Guid id) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -122,12 +122,12 @@ public ActionResult Delete(Guid id) [ActionDescription("Sys.Delete")] public async Task Delete(Guid id, IFormCollection noUse) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(id); - await vm.DoDeleteAsync(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -140,9 +140,9 @@ public async Task Delete(Guid id, IFormCollection noUse) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(Guid[] ids) + public async Task BatchDelete(Guid[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -154,12 +154,12 @@ public ActionResult BatchDelete(Guid[] ids) [ActionDescription("Sys.BatchDelete")] public async Task DoBatchDelete(FrameworkGroupBatchVM vm, IFormCollection noUse) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } List GroupCode = DC.Set().CheckIDs(new List(vm.Ids)).Select(x => x.GroupCode).ToList(); - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete", vm); } @@ -168,17 +168,17 @@ public async Task DoBatchDelete(FrameworkGroupBatchVM vm, IFormCol var gr = DC.Set().Where(x => GroupCode.Contains(x.GroupCode)).ToList(); var itcodes = gr.Select(x => x.UserCode).ToArray(); DC.Set().RemoveRange(gr); - DC.SaveChanges(); + await DC.SaveChangesAsync(); await Wtm.RemoveUserCacheByGroup(GroupCode.ToArray()); - await Wtm.RemoveGroupCache(Wtm.LoginUserInfo?.CurrentTenant); + await Wtm.RemoveGroupCache((await Wtm.GetLoginUserInfo ())?.CurrentTenant); return FFResult().CloseDialog().RefreshGrid().Alert(Localizer["Sys.OprationSuccess"]); } } [ActionDescription("Sys.Import")] - public ActionResult Import() + public async Task Import() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -188,19 +188,19 @@ public ActionResult Import() [HttpPost] [ActionDescription("Sys.Import")] - public ActionResult Import(FrameworkGroupImportVM vm, IFormCollection nouse) + public async Task Import(FrameworkGroupImportVM vm, IFormCollection nouse) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } else { - Wtm.RemoveGroupCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + Wtm.RemoveGroupCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); return FFResult().CloseDialog().RefreshGrid().Alert(Localizer["Sys.ImportSuccess", vm.EntityList.Count.ToString()]); } } @@ -222,21 +222,21 @@ public ActionResult DataFunction(FrameworkGroupMDVM vm, IFormCollection noUse) [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(FrameworkGroupListVM vm) + public async Task ExportExcel(FrameworkGroupListVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - return vm.GetExportData(); + return await vm.GetExportData(); } [AllRights] - public IActionResult GetParents() + public async Task GetParents () { WalkingTec.Mvvm.Admin.Api.FrameworkGroupController userapi = new Mvvm.Admin.Api.FrameworkGroupController(); userapi.Wtm = Wtm; - var rv = userapi.GetParentsTree() as OkObjectResult; + var rv = await userapi.GetParentsTree() as OkObjectResult; List users = new List(); if (rv != null && rv.Value is string && rv.Value != null) { diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkMenuController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkMenuController.cs index e59af2fb9..3962f7569 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkMenuController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkMenuController.cs @@ -19,7 +19,7 @@ namespace WalkingTec.Mvvm.Mvc.Admin.Controllers public class FrameworkMenuController : BaseController { [ActionDescription("Sys.Search")] - public ActionResult Index() + public async Task Index() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -42,7 +42,7 @@ public string Search(FrameworkMenuSearcher searcher) } [ActionDescription("Sys.Create")] - public ActionResult Create(Guid? id) + public async Task Create(Guid? id) { var vm = Wtm.CreateVM(); if (id != null) @@ -59,7 +59,7 @@ public ActionResult Create(Guid? id) [HttpPost] [Public] [ActionDescription("Sys.Create")] - public ActionResult Create(FrameworkMenuVM vm) + public async Task Create(FrameworkMenuVM vm) { if (!ModelState.IsValid) { @@ -67,10 +67,10 @@ public ActionResult Create(FrameworkMenuVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -81,7 +81,7 @@ public ActionResult Create(FrameworkMenuVM vm) } [ActionDescription("Sys.Edit")] - public ActionResult Edit(Guid id) + public async Task Edit(Guid id) { var vm = Wtm.CreateVM(id); vm.IconSelectItems = !string.IsNullOrEmpty(vm.IconFont) && IconFontsHelper @@ -102,7 +102,7 @@ public ActionResult Edit(Guid id) [ActionDescription("Sys.Edit")] [HttpPost] - public ActionResult Edit(FrameworkMenuVM vm) + public async Task Edit(FrameworkMenuVM vm) { if (!ModelState.IsValid) { @@ -122,10 +122,10 @@ public ActionResult Edit(FrameworkMenuVM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -136,7 +136,7 @@ public ActionResult Edit(FrameworkMenuVM vm) } [ActionDescription("Sys.Delete")] - public ActionResult Delete(Guid id) + public async Task Delete(Guid id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -144,10 +144,10 @@ public ActionResult Delete(Guid id) [ActionDescription("Sys.Delete")] [HttpPost] - public ActionResult Delete(Guid id, IFormCollection noUser) + public async Task Delete(Guid id, IFormCollection noUser) { var vm = Wtm.CreateVM(id); - vm.DoDelete(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkRoleController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkRoleController.cs index c15e1f29d..0a4484405 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkRoleController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkRoleController.cs @@ -16,16 +16,16 @@ namespace WalkingTec.Mvvm.Mvc.Admin.Controllers public class FrameworkRoleController : BaseController { [ActionDescription("Sys.Search")] - public ActionResult Index() + public async Task Index() { var vm = Wtm.CreateVM(); return PartialView(vm); } [ActionDescription("Sys.Search")] [HttpPost] - public IActionResult Search(FrameworkRoleSearcher searcher) + public async Task Search(FrameworkRoleSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { searcher.IsPlainText = false; return Wtm.CallAPI("mainhost", "/api/_frameworkrole/search", HttpMethodEnum.POST, searcher).Result.ToActionResult(); @@ -43,9 +43,9 @@ public IActionResult Search(FrameworkRoleSearcher searcher) } [ActionDescription("Sys.Create")] - public ActionResult Create() + public async Task Create() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -55,9 +55,9 @@ public ActionResult Create() [HttpPost] [ActionDescription("Sys.Create")] - public ActionResult Create(FrameworkRoleVM vm) + public async Task Create(FrameworkRoleVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -67,15 +67,15 @@ public ActionResult Create(FrameworkRoleVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); return FFResult().CloseDialog().RefreshGrid(); } } [ActionDescription("Sys.Edit")] - public ActionResult Edit(Guid id) + public async Task Edit(Guid id) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -86,9 +86,9 @@ public ActionResult Edit(Guid id) [HttpPost] [ActionDescription("Sys.Edit")] [ValidateFormItemOnly] - public ActionResult Edit(FrameworkRoleVM vm) + public async Task Edit(FrameworkRoleVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -98,15 +98,15 @@ public ActionResult Edit(FrameworkRoleVM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); return FFResult().CloseDialog().RefreshGrid(); } } [ActionDescription("Sys.Delete")] - public ActionResult Delete(Guid id) + public async Task Delete(Guid id) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -118,12 +118,12 @@ public ActionResult Delete(Guid id) [ActionDescription("Sys.Delete")] public async Task Delete(Guid id, IFormCollection noUse) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(id); - await vm.DoDeleteAsync(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -136,9 +136,9 @@ public async Task Delete(Guid id, IFormCollection noUse) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(Guid[] ids) + public async Task BatchDelete(Guid[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -150,12 +150,12 @@ public ActionResult BatchDelete(Guid[] ids) [ActionDescription("Sys.BatchDelete")] public async Task DoBatchDelete(FrameworkRoleBatchVM vm, IFormCollection noUse) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } List RoleCode = DC.Set().CheckIDs(new List(vm.Ids)).Select(x => x.RoleCode).ToList(); - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete", vm); } @@ -164,17 +164,17 @@ public async Task DoBatchDelete(FrameworkRoleBatchVM vm, IFormColl var ur = DC.Set().Where(x => RoleCode.Contains(x.RoleCode)).ToList(); var itcodes = ur.Select(x => x.UserCode).ToArray(); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); await Wtm.RemoveUserCacheByRole(RoleCode.ToArray()); - await Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant); + await Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant); return FFResult().CloseDialog().RefreshGrid(); } } [ActionDescription("Sys.Import")] - public ActionResult Import() + public async Task Import() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -184,19 +184,19 @@ public ActionResult Import() [HttpPost] [ActionDescription("Sys.Import")] - public ActionResult Import(FrameworkRoleImportVM vm, IFormCollection nouse) + public async Task Import(FrameworkRoleImportVM vm, IFormCollection nouse) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } else { - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); return FFResult().CloseDialog().RefreshGrid().Alert(Localizer["Sys.ImportSuccess", vm.EntityList.Count.ToString()]); } } @@ -231,13 +231,13 @@ public async Task PageFunction(FrameworkRoleMDVM vm, IFormCollecti [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(FrameworkRoleListVM vm) + public async Task ExportExcel(FrameworkRoleListVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - return vm.GetExportData(); + return await vm.GetExportData(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkTenantController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkTenantController.cs index a9a762e05..d03be78c6 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkTenantController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkTenantController.cs @@ -6,6 +6,7 @@ using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkTenantVMs; using System.Linq; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Mvc.Admin.Controllers { @@ -16,9 +17,9 @@ public partial class FrameworkTenantController : BaseController { #region Search [ActionDescription("Sys.Search")] - public ActionResult Index() + public async Task Index() { - if(CanUseTenant() == false) + if(await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } @@ -28,9 +29,9 @@ public ActionResult Index() [ActionDescription("Sys.Search")] [HttpPost] - public IActionResult Search(FrameworkTenantSearcher searcher) + public async Task Search(FrameworkTenantSearcher searcher) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } @@ -50,9 +51,9 @@ public IActionResult Search(FrameworkTenantSearcher searcher) #region Create [ActionDescription("Sys.Create")] - public ActionResult Create() + public async Task Create() { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } @@ -62,9 +63,9 @@ public ActionResult Create() [HttpPost] [ActionDescription("Sys.Create")] - public ActionResult Create(FrameworkTenantVM vm) + public async Task Create(FrameworkTenantVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } @@ -74,10 +75,10 @@ public ActionResult Create(FrameworkTenantVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -90,9 +91,9 @@ public ActionResult Create(FrameworkTenantVM vm) #region Edit [ActionDescription("Sys.Edit")] - public ActionResult Edit(string id) + public async Task Edit(string id) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } @@ -103,9 +104,9 @@ public ActionResult Edit(string id) [ActionDescription("Sys.Edit")] [HttpPost] [ValidateFormItemOnly] - public ActionResult Edit(FrameworkTenantVM vm) + public async Task Edit(FrameworkTenantVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } @@ -115,10 +116,10 @@ public ActionResult Edit(FrameworkTenantVM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -131,9 +132,9 @@ public ActionResult Edit(FrameworkTenantVM vm) #region Delete [ActionDescription("Sys.Delete")] - public ActionResult Delete(string id) + public async Task Delete(string id) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } @@ -143,14 +144,14 @@ public ActionResult Delete(string id) [ActionDescription("Sys.Delete")] [HttpPost] - public ActionResult Delete(string id, IFormCollection nouse) + public async Task Delete(string id, IFormCollection nouse) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } var vm = Wtm.CreateVM(id); - vm.DoDelete(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -164,9 +165,9 @@ public ActionResult Delete(string id, IFormCollection nouse) #region Details [ActionDescription("Sys.Details")] - public ActionResult Details(string id) + public async Task Details(string id) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } @@ -178,9 +179,9 @@ public ActionResult Details(string id) #region BatchEdit [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult BatchEdit(string[] IDs) + public async Task BatchEdit(string[] IDs) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } @@ -190,13 +191,13 @@ public ActionResult BatchEdit(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(FrameworkTenantBatchVM vm, IFormCollection nouse) + public async Task DoBatchEdit(FrameworkTenantBatchVM vm, IFormCollection nouse) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return PartialView("BatchEdit",vm); } @@ -210,9 +211,9 @@ public ActionResult DoBatchEdit(FrameworkTenantBatchVM vm, IFormCollection nouse #region BatchDelete [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(string[] IDs) + public async Task BatchDelete(string[] IDs) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } @@ -222,13 +223,13 @@ public ActionResult BatchDelete(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult DoBatchDelete(FrameworkTenantBatchVM vm, IFormCollection nouse) + public async Task DoBatchDelete(FrameworkTenantBatchVM vm, IFormCollection nouse) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete",vm); } @@ -242,9 +243,9 @@ public ActionResult DoBatchDelete(FrameworkTenantBatchVM vm, IFormCollection nou #region Import [ActionDescription("Sys.Import")] - public ActionResult Import() + public async Task Import() { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } @@ -254,13 +255,13 @@ public ActionResult Import() [HttpPost] [ActionDescription("Sys.Import")] - public ActionResult Import(FrameworkTenantImportVM vm, IFormCollection nouse) + public async Task Import(FrameworkTenantImportVM vm, IFormCollection nouse) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } @@ -273,18 +274,19 @@ public ActionResult Import(FrameworkTenantImportVM vm, IFormCollection nouse) [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(FrameworkTenantListVM vm) + public async Task ExportExcel(FrameworkTenantListVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } - return vm.GetExportData(); + return await vm.GetExportData(); } - private bool CanUseTenant() + private async Task CanUseTenant() { - if(Wtm.LoginUserInfo != null && (Wtm.LoginUserInfo.CurrentTenant == null || Wtm.GlobaInfo.AllTenant.Any(x=>x.TCode == Wtm.LoginUserInfo.CurrentTenant && x.Enabled==true && x.EnableSub == true))) + var _loginUserInfo = await Wtm.GetLoginUserInfo (); + if (_loginUserInfo != null && (_loginUserInfo.CurrentTenant == null || Wtm.GlobaInfo.AllTenant.Any(x=>x.TCode == _loginUserInfo.CurrentTenant && x.Enabled==true && x.EnableSub == true))) { return true; } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkUserController.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkUserController.cs index 818f697a8..1b82beeb3 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkUserController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/Controllers/FrameworkUserController.cs @@ -17,9 +17,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.Controllers public class FrameworkUserController : BaseController { [ActionDescription("Sys.Search", IsPage = true)] - public ActionResult Index() + public async Task Index() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -30,9 +30,9 @@ public ActionResult Index() [ActionDescription("Sys.Search")] [HttpPost] - public string Search(FrameworkUserSearcher searcher) + public async Task Search(FrameworkUserSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Localizer["_Admin.HasMainHost"]; } @@ -50,9 +50,9 @@ public string Search(FrameworkUserSearcher searcher) [ActionDescription("Sys.Create")] - public ActionResult Create() + public async Task Create() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -64,7 +64,7 @@ public ActionResult Create() [ActionDescription("Sys.Create")] public async Task Create(FrameworkUserVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -74,10 +74,10 @@ public async Task Create(FrameworkUserVM vm) } else { - await vm.DoAddAsync(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -88,9 +88,9 @@ public async Task Create(FrameworkUserVM vm) } [ActionDescription("Sys.Edit")] - public ActionResult Edit(string id) + public async Task Edit(string id) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -104,7 +104,7 @@ public ActionResult Edit(string id) [ValidateFormItemOnly] public async Task Edit(FrameworkUserVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -115,10 +115,10 @@ public async Task Edit(FrameworkUserVM vm) else { ModelState.Clear(); - await vm.DoEditAsync(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -129,9 +129,9 @@ public async Task Edit(FrameworkUserVM vm) } [ActionDescription("Login.ChangePassword")] - public ActionResult Password(Guid id) + public async Task Password (Guid id) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -142,9 +142,9 @@ public ActionResult Password(Guid id) [ActionDescription("Login.ChangePassword")] [HttpPost] - public ActionResult Password(FrameworkUserVM vm) + public async Task Password (FrameworkUserVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -165,7 +165,7 @@ public ActionResult Password(FrameworkUserVM vm) vm.ChangePassword(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -176,9 +176,9 @@ public ActionResult Password(FrameworkUserVM vm) } [ActionDescription("Sys.Delete")] - public ActionResult Delete(Guid id) + public async Task Delete(Guid id) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -190,12 +190,12 @@ public ActionResult Delete(Guid id) [HttpPost] public async Task Delete(Guid id, IFormCollection nouse) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(id); - await vm.DoDeleteAsync(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -215,9 +215,9 @@ public PartialViewResult Details(Guid id) [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult BatchEdit(string[] IDs) + public async Task BatchEdit(string[] IDs) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -227,13 +227,13 @@ public ActionResult BatchEdit(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(FrameworkUserBatchVM vm, IFormCollection nouse) + public async Task DoBatchEdit(FrameworkUserBatchVM vm, IFormCollection nouse) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return PartialView("BatchEdit", vm); } @@ -245,9 +245,9 @@ public ActionResult DoBatchEdit(FrameworkUserBatchVM vm, IFormCollection nouse) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(string[] IDs) + public async Task BatchDelete(string[] IDs) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -259,13 +259,13 @@ public ActionResult BatchDelete(string[] IDs) [ActionDescription("Sys.BatchDelete")] public async Task DoBatchDelete(FrameworkUserBatchVM vm, IFormCollection nouse) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } List itcode = new List(); itcode = DC.Set().CheckIDs(new List(vm.Ids)).Select(x => x.ITCode).ToList(); - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete", vm); } @@ -279,7 +279,7 @@ public async Task DoBatchDelete(FrameworkUserBatchVM vm, IFormColl DC.Set().RemoveRange(ur); var ug = DC.Set().Where(x => itcode.Contains(x.UserCode)); DC.Set().RemoveRange(ug); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); } catch @@ -294,9 +294,9 @@ public async Task DoBatchDelete(FrameworkUserBatchVM vm, IFormColl } [ActionDescription("Sys.Import")] - public ActionResult Import() + public async Task Import() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -306,13 +306,13 @@ public ActionResult Import() [HttpPost] [ActionDescription("Sys.Import")] - public ActionResult Import(FrameworkUserImportVM vm, IFormCollection nouse) + public async Task Import(FrameworkUserImportVM vm, IFormCollection nouse) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } @@ -323,25 +323,25 @@ public ActionResult Import(FrameworkUserImportVM vm, IFormCollection nouse) } [ActionDescription("Sys.Enable")] - public ActionResult Enable(Guid id, bool enable) + public async Task Enable (Guid id, bool enable) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } FrameworkUser user = new FrameworkUser { ID = id }; user.IsValid = enable; DC.UpdateProperty(user, x => x.IsValid); - DC.SaveChanges(); + await DC.SaveChangesAsync(); return FFResult().RefreshGrid(CurrentWindowId); } [AllRights] - public ActionResult GetUserById(string keywords) + public async Task GetUserById (string keywords) { WalkingTec.Mvvm.Admin.Api.AccountController userapi = new WalkingTec.Mvvm.Admin.Api.AccountController(); userapi.Wtm = Wtm; - var rv = userapi.GetUserById(keywords) as OkObjectResult; + var rv = await userapi.GetUserById(keywords) as OkObjectResult; List users = new List(); if (rv != null && rv.Value is string && rv.Value != null) { @@ -357,21 +357,21 @@ public ActionResult GetUserById(string keywords) [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(FrameworkUserListVM vm) + public async Task ExportExcel(FrameworkUserListVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - return vm.GetExportData(); + return await vm.GetExportData(); } [AllRights] - public IActionResult GetFrameworkRoles() + public async Task GetFrameworkRoles () { WalkingTec.Mvvm.Admin.Api.AccountController userapi = new WalkingTec.Mvvm.Admin.Api.AccountController(); userapi.Wtm = Wtm; - var rv = userapi.GetFrameworkRoles() as OkObjectResult; + var rv = await userapi.GetFrameworkRoles() as OkObjectResult; List users = new List(); if (rv != null && rv.Value is string && rv.Value != null) { @@ -385,11 +385,11 @@ public IActionResult GetFrameworkRoles() } [AllRights] - public IActionResult GetFrameworkGroups() + public async Task GetFrameworkGroups () { WalkingTec.Mvvm.Admin.Api.AccountController userapi = new WalkingTec.Mvvm.Admin.Api.AccountController(); userapi.Wtm = Wtm; - var rv = userapi.GetFrameworkGroupsTree() as OkObjectResult; + var rv = await userapi.GetFrameworkGroupsTree() as OkObjectResult; List users = new List(); if (rv != null && rv.Value is string && rv.Value != null) { diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs index eedc0218e..e7a3a374f 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs @@ -1,5 +1,6 @@ // WTM默认页面 Wtm buidin page using System; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; @@ -18,8 +19,9 @@ public ActionLogBatchVM() public class ActionLog_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs index 691ec6ed4..6a97f76ff 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs @@ -1,6 +1,7 @@ // WTM默认页面 Wtm buidin page using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -8,7 +9,7 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.ActionLogVMs { public class ActionLogListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { var actions = new List { @@ -16,10 +17,10 @@ protected override List InitGridAction() this.MakeStandardAction("ActionLog", GridActionStandardTypesEnum.Details, "","_Admin", dialogWidth: 800).SetHideOnToolBar(true), this.MakeStandardAction("ActionLog", GridActionStandardTypesEnum.ExportExcel, "","_Admin"), }; - return actions; + return Task.FromResult (actions); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { var header = new List>(); @@ -62,10 +63,10 @@ protected override IEnumerable> InitGridHeader() })); header.Add(this.MakeGridHeaderAction(width: 120)); - return header; + return Task.FromResult>> (header); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.ITCode, x=>x.ITCode) @@ -76,7 +77,7 @@ public override IOrderedQueryable GetSearchQuery() .CheckWhere(Searcher.Duration,x=>x.Duration >= Searcher.Duration) .OrderByDescending(x=>x.ActionTime); - return query; + return Task.FromResult (query); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs index 6b9464eac..ffbbc0cab 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -11,7 +12,7 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs public class DataPrivilegeListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { string tp = ""; if (Searcher.DpType == DpTypeEnum.User) @@ -23,16 +24,16 @@ protected override List InitGridAction() tp = "UserGroup"; } - return new List + return Task.FromResult (new List { this.MakeStandardAction("DataPrivilege", GridActionStandardTypesEnum.Create, "","_Admin", dialogWidth: 800).SetQueryString($"Type={tp}"), this.MakeStandardAction("DataPrivilege", GridActionStandardTypesEnum.ExportExcel, "","_Admin"), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name, 200), this.MakeGridHeader(x => x.PName).SetFormat((entity,val)=>GetPrivilegeName(entity)), this.MakeGridHeader(x => x.TableName), @@ -40,7 +41,7 @@ protected override IEnumerable> InitGridHead this.MakeGridHeader(x=>x.Edit,200).SetFormat((entity,val)=>GetOperation(entity)).SetHeader(Localizer["Sys.Operation"]).SetDisableExport(), this.MakeGridHeader(x => x.DpType).SetHide(true), this.MakeGridHeader(x => x.TargetId).SetHide(true) - }; + }); } @@ -81,7 +82,7 @@ public List GetOperation(DataPrivilege_ListView item) /// /// 查询结果 /// - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { IOrderedQueryable query = null; if (Searcher.DpType == DpTypeEnum.User) @@ -117,10 +118,10 @@ public override IOrderedQueryable GetSearchQuery() .OrderByDescending(x => x.Name).OrderByDescending(x => x.TableName); } - return query; + return Task.FromResult (query); } - public override void AfterDoSearcher() + public override async Task AfterDoSearcher() { if (Searcher.DpType == DpTypeEnum.User) { @@ -128,7 +129,7 @@ public override void AfterDoSearcher() } var groupIDs = EntityList.Select(x=>x.TargetId).ToList(); Dictionary groupdata = new Dictionary(); - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { var dd = Wtm.CallAPI>("mainhost", "/api/_account/GetFrameworkGroups").Result; if(dd.Data != null) @@ -141,7 +142,7 @@ public override void AfterDoSearcher() } else { - var ag = Wtm.GetTenantGroups(Wtm.LoginUserInfo?.CurrentTenant); + var ag = Wtm.GetTenantGroups((await Wtm.GetLoginUserInfo ())?.CurrentTenant); foreach (var item in ag) { groupdata.TryAdd(item.GroupCode, item.GroupName); @@ -151,7 +152,7 @@ public override void AfterDoSearcher() { item.Name = groupdata.ContainsKey(item.TargetId) ? groupdata[item.TargetId] : ""; } - base.AfterDoSearcher(); + await base.AfterDoSearcher(); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs index c5968f602..744ba6356 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs @@ -26,9 +27,10 @@ public class DataPrivilegeSearcher : BaseSearcher public DpTypeEnum DpType { get; set; } public Guid? DomainID { get; set; } public List AllDomains { get; set; } - protected override void InitVM() + protected override Task InitVM() { TableNames = new List(); + return Task.CompletedTask; } } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs index aa3564868..5257d6e1e 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs @@ -29,7 +29,7 @@ public DataPrivilegeVM() IsAll = false; } - protected override void InitVM() + protected override async Task InitVM() { TableNames = new List(); if (ControllerName.Contains("/api") == false) @@ -57,14 +57,14 @@ protected override void InitVM() } - protected override void ReInitVM() + protected override async Task ReInitVM() { TableNames = new List(); AllItems = new List(); TableNames = Wtm.DataPrivilegeSettings.ToListItems(x => x.PrivillegeName, x => x.ModelName); } - public override void Validate() + public override async Task Validate() { if (DpType == DpTypeEnum.User) { @@ -75,7 +75,7 @@ public override void Validate() else { string user = null; - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { var check = Wtm.CallAPI>("mainhost", "/api/_account/GetUserById").Result; if (check.Data != null) @@ -104,7 +104,7 @@ public override void Validate() base.Validate(); } - public override async Task DoAddAsync() + public override async Task DoAdd() { if (SelectedItemsID == null && IsAll == false) { @@ -134,7 +134,7 @@ public override async Task DoAddAsync() dp.RelateId = null; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } @@ -146,7 +146,7 @@ public override async Task DoAddAsync() dp.RelateId = id; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } @@ -159,7 +159,7 @@ public override async Task DoAddAsync() dp.RelateId = null; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } else @@ -170,7 +170,7 @@ public override async Task DoAddAsync() dp.RelateId = id; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } @@ -187,7 +187,7 @@ public override async Task DoAddAsync() } - public override async Task DoEditAsync(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { List oldIDs = null; @@ -213,7 +213,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = null; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } @@ -223,7 +223,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = null; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } @@ -238,7 +238,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = id; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } @@ -251,7 +251,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = id; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } @@ -268,7 +268,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) } } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { List oldIDs = null; diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs index aae6714fe..abed19cad 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs @@ -4,6 +4,7 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs @@ -15,20 +16,20 @@ public DpListVM() NeedPage = false; } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name), - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { var dps = Wtm.DataPrivilegeSettings.Where(x => x.ModelName == Searcher.TableName).SingleOrDefault(); if (dps != null) { - return dps.GetItemList(Wtm, Searcher.Filter).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); + return (await dps.GetItemList (Wtm, Searcher.Filter)).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); } else { @@ -36,12 +37,12 @@ public override IOrderedQueryable GetSearchQuery() } } - public override IOrderedQueryable GetBatchQuery() + public override async Task> GetBatchQuery() { var dps = Wtm.DataPrivilegeSettings.Where(x => x.ModelName == Searcher.TableName).SingleOrDefault(); if (dps != null) { - return dps.GetItemList(Wtm, null,Ids).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); + return (await dps.GetItemList (Wtm, null, Ids)).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); } else { diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs index 7ef3d7a1b..ac6b92506 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Core.Support.Json; @@ -15,9 +16,9 @@ public FrameworkGroupListVM() NeedPage = false; } - protected override List InitGridAction() + protected override async Task> InitGridAction() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return new List { @@ -39,9 +40,9 @@ protected override List InitGridAction() } } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.GroupName, 220), this.MakeGridHeader(x => x.GroupCode, 120), this.MakeGridHeader(x => x.ManagerName,220).SetFormat((a,b)=>{ @@ -59,12 +60,12 @@ protected override IEnumerable> InitGridHeader( this.MakeGridHeader(x => x.GroupRemark), this.MakeGridHeader(x => x.ParentId).SetHide(), this.MakeGridHeaderAction(width: 300) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { - return DC.Set() + return Task.FromResult (DC.Set() .CheckContain(Searcher.GroupCode, x => x.GroupCode) .CheckContain(Searcher.GroupName, x => x.GroupName) .GroupJoin(DC.Set(), ok => ok.Manager, ik => ik.ITCode, (group, user) => new { user = user, group = group }) @@ -77,9 +78,9 @@ public override IOrderedQueryable GetSearchQuery() Manager = a.group.Manager, ManagerName = b.Name, }) - .OrderBy(x => x.GroupCode); + .OrderBy(x => x.GroupCode)); } - public override void AfterDoSearcher() + public override Task AfterDoSearcher() { var topdata = EntityList.MakeTree(x => x.GroupCode).FlatTree(x => x.GroupCode); if (ControllerName.Contains("/api") == false) @@ -87,7 +88,7 @@ public override void AfterDoSearcher() topdata.ForEach((x) => { int l = x.GetLevel(); for (int i = 0; i < l; i++) { x.GroupName = "    " + x.GroupName; } }); } EntityList = topdata; - + return Task.CompletedTask; } } public class FrameworkGroup_View : TreePoco diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupMDVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupMDVM.cs index 0a1452829..1260b6cb5 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupMDVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupMDVM.cs @@ -4,6 +4,7 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs; using WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkMenuVMs; @@ -21,7 +22,7 @@ public FrameworkGroupMDVM() { } - protected override void InitVM() + protected override async Task InitVM() { DpLists = new List(); foreach (var item in Wtm.DataPrivilegeSettings) @@ -31,7 +32,7 @@ protected override void InitVM() list.Searcher.TableName = item.ModelName; DpLists.Add(new GroupDp { DpName = item.PrivillegeName, List = list, SelectedIds = new List() }); } - var alldp = DC.Set().Where(x => x.GroupCode == GroupCode).ToList(); + var alldp = await DC.Set().Where(x => x.GroupCode == GroupCode).ToListAsync(); foreach (var item in DpLists) { var select = alldp.Where(x => x.TableName == item.List.Searcher.TableName).Select(x => x.RelateId).ToList(); @@ -51,7 +52,7 @@ protected override void InitVM() } } - public bool DoChange() + public async Task DoChange() { List oldIDs = DC.Set().Where(x => x.GroupCode == GroupCode).Select(x => x.ID).ToList(); @@ -69,7 +70,7 @@ public bool DoChange() dp.RelateId = null; dp.GroupCode = GroupCode; dp.TableName = item.List.Searcher.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } if (item.IsAll == false && item.SelectedIds != null) @@ -80,13 +81,13 @@ public bool DoChange() dp.RelateId = id; dp.GroupCode = GroupCode; dp.TableName = item.List.Searcher.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } } - DC.SaveChanges(); + await DC.SaveChangesAsync(); Wtm.RemoveUserCacheByGroup(GroupCode).Wait(); return true; } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs index 30326329f..8d9485f5c 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs @@ -18,7 +18,7 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - public override void Validate() + public override async Task Validate() { if (string.IsNullOrEmpty(Entity.Manager) == false) { @@ -31,31 +31,31 @@ public override void Validate() base.Validate(); } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); - Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant).Wait(); + await base.DoAdd (); + Wtm.RemoveGroupCache((await GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); - Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant).Wait(); + await base.DoEdit (updateAllFields); + Wtm.RemoveGroupCache((await GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { using (var tran = DC.BeginTransaction()) { try { - await base.DoDeleteAsync(); + await base.DoDelete(); var ur = DC.Set().Where(x => x.GroupCode == Entity.GroupCode); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); await Wtm.RemoveUserCacheByGroup(Entity.GroupCode); - await Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant); + await Wtm.RemoveGroupCache((await GetLoginUserInfo ()).CurrentTenant); } catch { diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs index fe14b0a80..e16cdea12 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkMenuVMs @@ -15,15 +16,15 @@ public FrameworkActionListVM() NeedPage = false; } - protected override List InitGridAction() + protected override Task> InitGridAction() { var actions = new List { }; - return actions; + return Task.FromResult (actions); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { var header = new List>(); @@ -32,13 +33,13 @@ protected override IEnumerable> InitGridHe header.Add(this.MakeGridHeader(x => x.ClassName, 150)); header.Add(this.MakeGridHeader(x => x.MethodName, 150)); - return header; + return Task.FromResult>> (header); } /// /// 查询结果 /// - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var newdc = DC as FrameworkContext; List actions = new List(); @@ -87,7 +88,7 @@ public override IOrderedQueryable GetSearchQuery() } } toremove.ForEach(x => actions.Remove(x)); - return actions.AsQueryable().OrderBy(x=>x.AreaName).ThenBy(x=>x.ModuleName).ThenBy(x=>x.MethodName); + return Task.FromResult (actions.AsQueryable ().OrderBy (x => x.AreaName).ThenBy (x => x.ModuleName).ThenBy (x => x.MethodName)); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs index f8c070e71..dc7e18ff8 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -13,11 +14,12 @@ public class FrameworkMenuBatchVM : BaseBatchVM DoBatchDelete() { if (Ids != null) { @@ -27,7 +29,7 @@ public override bool DoBatchDelete() DC.CascadeDelete(f); } } - DC.SaveChanges(); + await DC.SaveChangesAsync(); return true; } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM.cs index 1bc245921..1b10f4752 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Text; using System.Text.RegularExpressions; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -17,7 +18,7 @@ public FrameworkMenuListVM() this.NeedPage = false; } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { List> rv = new List>(); switch (SearcherMode) @@ -54,7 +55,7 @@ protected override IEnumerable> InitGridHead }); break; } - return rv; + return Task.FromResult>> (rv); } private object GenerateCheckBox(FrameworkMenu_ListView item) @@ -90,22 +91,22 @@ private object GenerateCheckBox(FrameworkMenu_ListView item) } - protected override List InitGridAction() + protected override Task> InitGridAction() { if (SearcherMode == ListVMSearchModeEnum.Search) { - return new List{ + return Task.FromResult (new List{ this.MakeAction("FrameworkMenu", "Create",Localizer["Sys.Create"], Localizer["Sys.Create"], GridActionParameterTypesEnum.SingleIdWithNull,"_Admin").SetIconCls("layui-icon layui-icon-add-1"), this.MakeStandardAction("FrameworkMenu", GridActionStandardTypesEnum.Edit, "", "_Admin"), this.MakeStandardAction("FrameworkMenu", GridActionStandardTypesEnum.Delete, "", "_Admin"), this.MakeStandardAction("FrameworkMenu", GridActionStandardTypesEnum.Details, "", "_Admin"), this.MakeAction( "FrameworkMenu", "UnsetPages", Localizer["_Admin.CheckPage"], Localizer["_Admin.UnsetPages"],GridActionParameterTypesEnum.NoId, "_Admin").SetIconCls("layui-icon layui-icon-ok"), this.MakeAction("FrameworkMenu", "RefreshMenu", Localizer["_Admin.RefreshMenu"], Localizer["_Admin.RefreshMenu"], GridActionParameterTypesEnum.NoId,"_Admin").SetShowDialog(false).SetIconCls("layui-icon layui-icon-refresh"), - }; + }); } else { - return new List(); + return Task.FromResult (new List()); } } @@ -122,7 +123,7 @@ private string PhotoIdFormat(FrameworkMenu_ListView entity, object val) } } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { List data = new List(); using (var maindc = Wtm.CreateDC(false, "default")) @@ -141,9 +142,10 @@ public override IOrderedQueryable GetSearchQuery() item.ModuleName = Localizer[item.ModuleName]; } } - if(Wtm.ConfigInfo.EnableTenant == true && LoginUserInfo.CurrentTenant != null) + var _current_tenant = (await GetLoginUserInfo ()).CurrentTenant; + if (Wtm.ConfigInfo.EnableTenant == true && _current_tenant != null) { - var ct = Wtm.GlobaInfo.AllTenant.Where(x => x.TCode == LoginUserInfo.CurrentTenant).FirstOrDefault(); + var ct = Wtm.GlobaInfo.AllTenant.Where(x => x.TCode == _current_tenant).FirstOrDefault(); for(int i = 0; i < topdata.Count; i++) { if (topdata[i].TenantAllowed == false || (topdata[i].Url != null && ct.EnableSub == false && topdata[i].Url.ToLower().Contains("frameworktenant"))) diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs index cb8bd000c..4444ac8e2 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs @@ -4,6 +4,8 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text.RegularExpressions; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -16,7 +18,7 @@ public FrameworkMenuListVM2() this.NeedPage = false; } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { List> rv = new List>(); rv.AddRange(new GridColumn[] { @@ -32,15 +34,15 @@ protected override IEnumerable> InitGridHead this.MakeGridHeader(x=>x.ParentId).SetHide(), this.MakeGridHeaderAction(width: 290) }); - return rv; + return Task.FromResult>> (rv); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { List data = new List(); using (var maindc = Wtm.CreateDC(false, "default")) { - data = maindc.Set().ToList(); + data = await maindc.Set().ToListAsync(); } var topdata = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder).Where(x => x.IsInside == false || x.FolderOnly == true || x.Url.EndsWith("/Index") || string.IsNullOrEmpty(x.MethodName)).ToList(); foreach (var item in topdata) diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM.cs index f39579737..6d243b999 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM.cs @@ -5,6 +5,7 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text.Json.Serialization; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Core.Support.Json; @@ -50,7 +51,7 @@ public FrameworkMenuVM() SelectedRolesIds = new List(); } - protected override void InitVM() + protected override async Task InitVM() { if (!string.IsNullOrEmpty(Entity.Icon)) { @@ -59,9 +60,9 @@ protected override void InitVM() IconFontItem = res[1]; } - SelectedRolesIds.AddRange(DC.Set().Where(x => x.MenuItemId == Entity.ID && x.RoleCode != null && x.Allowed == true).Select(x => x.RoleCode).ToList()); + SelectedRolesIds.AddRange(await DC.Set().Where(x => x.MenuItemId == Entity.ID && x.RoleCode != null && x.Allowed == true).Select(x => x.RoleCode).ToListAsync()); SelectedRolesIds = SelectedRolesIds.Distinct().ToList(); - var data = DC.Set().AsNoTracking().ToList(); + var data = await DC.Set().AsNoTracking().ToListAsync(); var topMenu = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder); var pids = Entity.GetAllChildrenIDs(DC); AllParents = data.Where(x => x.ID != Entity.ID && !pids.Contains(x.ID) && x.FolderOnly == true).ToList().ToListItems(y => y.PageName, x => x.ID); @@ -125,14 +126,14 @@ protected override void InitVM() AllActions = mm.ToListItems(y => y.ActionName, y => y.Url); if (SelectedActionIDs == null) { - SelectedActionIDs = DC.Set().Where(x => AllActions.Select(y => y.Value).Contains(x.Url) && x.IsInside == true && x.FolderOnly == false).Select(x => x.Url).ToList(); + SelectedActionIDs = await DC.Set().Where(x => AllActions.Select(y => y.Value).Contains(x.Url) && x.IsInside == true && x.FolderOnly == false).Select(x => x.Url).ToListAsync(); } } } - public override void Validate() + public override async Task Validate() { if (Entity.IsInside == true && Entity.FolderOnly == false) { @@ -141,17 +142,17 @@ public override void Validate() MSD.AddModelError("SelectedModule", Localizer["Validate.{0}required", Localizer["_Admin.Module"]]); } var modules = Wtm.GlobaInfo.AllModule; - var test = DC.Set().Where(x => x.ClassName == this.SelectedModule && (string.IsNullOrEmpty(x.MethodName) || x.MethodName == "Index") && x.ID != Entity.ID).FirstOrDefault(); + var test = await DC.Set().Where(x => x.ClassName == this.SelectedModule && (string.IsNullOrEmpty(x.MethodName) || x.MethodName == "Index") && x.ID != Entity.ID).FirstOrDefaultAsync(); if (test != null) { MSD.AddModelError(" error", Localizer["_Admin.ModuleHasSet"]); } } - base.Validate(); + await base.Validate(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { Entity.Icon = $"{IconFont} {IconFontItem}"; FC.Add("Entity.Icon", " "); @@ -260,17 +261,17 @@ public override void DoEdit(bool updateAllFields = false) } } FC.Add("Entity.ModuleName", 0); - base.DoEdit(); + await base.DoEdit(); List guids = new List(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } - AddPrivilege(guids); + await AddPrivilege(guids); } - public override void DoAdd() + public override async Task DoAdd() { Entity.Icon = $"{IconFont} {IconFontItem}"; if (Entity.IsInside == false) @@ -355,17 +356,17 @@ public override void DoAdd() } } - base.DoAdd(); + await base.DoAdd(); List guids = new List(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } - AddPrivilege(guids); + await AddPrivilege(guids); } - public void AddPrivilege(List menuids) + public async Task AddPrivilege(List menuids) { var admin = DC.Set().Where(x => x.RoleCode == "001").SingleOrDefault(); if (admin != null && SelectedRolesIds.Contains(admin.RoleCode) == false) @@ -386,22 +387,22 @@ public void AddPrivilege(List menuids) fp.MenuItemId = menuid; fp.RoleCode = code; fp.Allowed = true; - fp.TenantCode = LoginUserInfo?.CurrentTenant; - DC.Set().Add(fp); + fp.TenantCode = (await GetLoginUserInfo ())?.CurrentTenant; + await DC.Set().AddAsync(fp); } } } - DC.SaveChanges(); + await DC.SaveChangesAsync(); Wtm.RemoveUserCacheByRole(SelectedRolesIds.ToArray()).Wait(); } - public override void DoDelete() + public override async Task DoDelete() { try { DC.CascadeDelete(Entity); - DC.SaveChanges(); + await DC.SaveChangesAsync(); } catch { } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs index 3550ccff2..7a172939f 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -27,7 +28,7 @@ public FrameworkMenuVM2() SelectedRolesCodes = new List(); } - protected override void InitVM() + protected override Task InitVM() { SelectedRolesCodes.AddRange(DC.Set().Where(x => x.MenuItemId == Entity.ID && x.RoleCode != null && x.Allowed == true).Select(x => x.RoleCode).ToList()); SelectedRolesCodes = SelectedRolesCodes.Distinct().ToList(); @@ -49,9 +50,10 @@ protected override void InitVM() SelectedModule = Entity.Url; } } + return Task.CompletedTask; } - public override void Validate() + public override async Task Validate() { if (Entity.IsInside == true && Entity.FolderOnly == false) { @@ -69,10 +71,10 @@ public override void Validate() } } } - base.Validate(); + await base.Validate(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { if (Entity.IsInside == false) { @@ -160,17 +162,17 @@ public override void DoEdit(bool updateAllFields = false) FC.Add("Entity.Children[0].MethodName", 0); FC.Add("Entity.Children[0].Url", 0); } - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); List guids = new List(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } - AddPrivilege(guids); + await AddPrivilege(guids); } - public override void DoAdd() + public override async Task DoAdd() { if (Entity.IsInside == false) { @@ -234,24 +236,24 @@ public override void DoAdd() } } - base.DoAdd(); + await base.DoAdd(); List guids = new List(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } - AddPrivilege(guids); + await AddPrivilege(guids); } - public void AddPrivilege(List menuids) + public async Task AddPrivilege(List menuids) { - var admin = DC.Set().Where(x => x.RoleCode == "001").SingleOrDefault(); + var admin = await DC.Set().Where(x => x.RoleCode == "001").SingleOrDefaultAsync(); if (admin != null && SelectedRolesCodes.Contains(admin.RoleCode) == false) { SelectedRolesCodes.Add(admin.RoleCode); } - var toremove = DC.Set().Where(x => SelectedRolesCodes.Contains(x.RoleCode) && menuids.Contains(x.MenuItemId)).ToList(); + var toremove = await DC.Set().Where(x => SelectedRolesCodes.Contains(x.RoleCode) && menuids.Contains(x.MenuItemId)).ToListAsync(); toremove.ForEach(x => DC.DeleteEntity(x)); foreach (var menuid in menuids) { @@ -264,21 +266,21 @@ public void AddPrivilege(List menuids) fp.MenuItemId = menuid; fp.RoleCode = code; fp.Allowed = true; - DC.Set().Add(fp); + await DC.Set().AddAsync(fp); } } } - DC.SaveChanges(); + await DC.SaveChangesAsync(); Wtm.RemoveUserCacheByRole(SelectedRolesCodes.ToArray()).Wait(); } - public override void DoDelete() + public override async Task DoDelete() { try { DC.CascadeDelete(Entity); - DC.SaveChanges(); + await DC.SaveChangesAsync(); } catch { } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs index d2d2f6ce5..cad654f22 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs @@ -1,6 +1,7 @@ // WTM默认页面 Wtm buidin page using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Core.Support.Json; @@ -9,9 +10,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkRoleVMs { public class FrameworkRoleListVM : BasePagedListVM { - protected override List InitGridAction() + protected override async Task> InitGridAction() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return new List { @@ -34,23 +35,23 @@ protected override List InitGridAction() } } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.RoleCode, 120), this.MakeGridHeader(x => x.RoleName, 120), this.MakeGridHeader(x => x.RoleRemark), this.MakeGridHeaderAction(width: 300) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.RoleCode, x => x.RoleCode) .CheckContain(Searcher.RoleName, x => x.RoleName) .OrderBy(x => x.RoleCode); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM.cs index 44b668fc6..f317b2b7f 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM.cs @@ -17,22 +17,23 @@ public FrameworkRoleMDVM() { ListVM = new FrameworkMenuListVM(); } - protected override FrameworkRole GetById(object Id) + protected override async Task GetById(object Id) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Wtm.CallAPI("mainhost", $"/api/_frameworkrole/{Id}").Result.Data.Entity; + return (await Wtm.CallAPI("mainhost", $"/api/_frameworkrole/{Id}")).Data.Entity; } else { - return base.GetById(Id); + return await base.GetById(Id); } } - protected override void InitVM() + protected override Task InitVM() { ListVM.CopyContext(this); ListVM.Searcher.RoleCode = Entity.RoleCode; + return Task.CompletedTask; } public async Task DoChangeAsync() @@ -53,7 +54,7 @@ public async Task DoChangeAsync() FunctionPrivilege fp = new FunctionPrivilege(); fp.MenuItemId = menuid; fp.RoleCode = Entity.RoleCode; - fp.TenantCode = LoginUserInfo.CurrentTenant; + fp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; fp.Allowed = true; DC.Set().Add(fp); } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs index fa81f98cd..ae60551d3 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs @@ -20,19 +20,19 @@ public FrameworkRoleMDVM2() } - protected override FrameworkRole GetById(object Id) + protected override async Task GetById(object Id) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Wtm.CallAPI("mainhost", $"/api/_frameworkrole/{Id}").Result.Data.Entity; + return (await Wtm.CallAPI("mainhost", $"/api/_frameworkrole/{Id}")).Data.Entity; } else { - return base.GetById(Id); + return await base.GetById(Id); } } - protected override void InitVM() + protected override async Task InitVM() { var allowedids = DC.Set() .Where(x => x.RoleCode == Entity.RoleCode && x.Allowed == true).Select(x => x.MenuItemId) @@ -44,7 +44,7 @@ protected override void InitVM() } var topdata = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder).Where(x => x.IsInside == false || x.FolderOnly == true || string.IsNullOrEmpty(x.MethodName)).ToList(); - if (Wtm.ConfigInfo.EnableTenant == true && LoginUserInfo.CurrentTenant != null) + if (Wtm.ConfigInfo.EnableTenant == true && (await GetLoginUserInfo ()).CurrentTenant != null) { var hostonly = Wtm.GlobaInfo.AllMainTenantOnlyUrls; for (int i = 0; i < topdata.Count; i++) @@ -124,7 +124,7 @@ public async Task DoChangeAsync() FunctionPrivilege fp = new FunctionPrivilege(); fp.MenuItemId = menuid; fp.RoleCode = Entity.RoleCode; - fp.TenantCode = LoginUserInfo.CurrentTenant; + fp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; fp.Allowed = true; DC.Set().Add(fp); } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs index 8066549fb..63564aa4b 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs @@ -18,31 +18,31 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + await base.DoAdd(); + Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + await base.DoEdit(updateAllFields); + Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { using (var tran = DC.BeginTransaction()) { try { - await base.DoDeleteAsync(); + await base.DoDelete(); var ur = DC.Set().Where(x => x.RoleCode == Entity.RoleCode); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); await Wtm.RemoveUserCacheByRole(Entity.RoleCode); - await Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant); + await Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant); } catch { diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs index bdb64c7d0..1894031ed 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs @@ -25,7 +25,7 @@ public FrameworkTenantBatchVM() public class FrameworkTenant_BatchEdit : BaseVM { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs index c794112f1..c4f2950d7 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs @@ -28,7 +28,7 @@ public partial class FrameworkTenantTemplateVM : BaseTemplateVM [Display(Name = "Sys.Enable")] public ExcelPropety Enabled_Excel = ExcelPropety.CreateProperty(x => x.Enabled); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs index b8af97c35..5c5093f36 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs @@ -12,9 +12,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkTenantVMs { public partial class FrameworkTenantListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "_Admin", dialogWidth: 800), @@ -24,13 +24,13 @@ protected override List InitGridAction() this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], "_Admin"), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.TCode), this.MakeGridHeader(x => x.TName), this.MakeGridHeader(x => x.TDb), @@ -40,10 +40,10 @@ protected override IEnumerable> InitGridHeader this.MakeGridHeader(x => x.Enabled), this.MakeGridHeader(x => x.EnableSub), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.TCode, x=>x.TCode) @@ -62,7 +62,7 @@ public override IOrderedQueryable GetSearchQuery() EnableSub = x.EnableSub }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs index 20ec9071d..ded5def05 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs @@ -18,7 +18,7 @@ public partial class FrameworkTenantSearcher : BaseSearcher [Display(Name = "_Admin.TenantDomain")] public String TDomain { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs index 2373a7081..dfdc6c43c 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs @@ -26,37 +26,38 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); if (MSD.IsValid) { - TenantOperation(); + await TenantOperation(); Cache.Delete(nameof(GlobalData.AllTenant)); } } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); if (MSD.IsValid) { if (MSD.IsValid) { - TenantOperation(); + await TenantOperation(); Cache.Delete(nameof(GlobalData.AllTenant)); } } } - private void TenantOperation() + private async Task TenantOperation() { List fps = new List(); - using (var userdc = LoginUserInfo.GetUserDC(Wtm)) + using (var userdc = await (await GetLoginUserInfo ()).GetUserDC(Wtm)) { fps = userdc.Set().AsNoTracking().Where(x => x.RoleCode == AdminRoleCode).ToList(); List tenantmenus = new List(); @@ -129,9 +130,9 @@ private void AddTenantData(IDataContext dc, List fps) var key = $"{GlobalConstants.CacheKey.UserInfo}:{"admin" + "$`$" + Entity.TCode}"; Cache.DeleteAsync(key).Wait(); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); Cache.Delete(nameof(GlobalData.AllTenant)); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs index 47610e589..e6b721c1a 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs @@ -2,6 +2,8 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkUserVms @@ -26,10 +28,11 @@ public class ChangePasswordVM : BaseVM [StringLength(50, ErrorMessage = "Validate.{0}stringmax{1}")] public string NewPasswordComfirm { get; set; } - public override void Validate() + public override async Task Validate() { List rv = new List(); - if (DC.Set().Where(x => x.ITCode == LoginUserInfo.ITCode && x.Password == Utils.GetMD5String(OldPassword)).SingleOrDefault() == null) + var _itcode = (await GetLoginUserInfo ()).ITCode; + if (DC.Set().Where(x => x.ITCode == _itcode && x.Password == Utils.GetMD5String(OldPassword)).SingleOrDefault() == null) { MSD.AddModelError("OldPassword", Localizer["Login.OldPasswrodWrong"]); } @@ -39,14 +42,15 @@ public override void Validate() } } - public void DoChange() + public async Task DoChange () { - var user = DC.Set().Where(x => x.ITCode == LoginUserInfo.ITCode).SingleOrDefault(); + var _itcode = (await GetLoginUserInfo ()).ITCode; + var user = DC.Set().Where(x => x.ITCode == _itcode).SingleOrDefault(); if (user != null) { user.Password = Utils.GetMD5String(NewPassword); } - DC.SaveChanges(); + await DC.SaveChangesAsync(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserBatchVM.cs index c96fb2410..4d508ffdb 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserBatchVM.cs @@ -4,6 +4,7 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text.Json.Serialization; +using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -22,18 +23,19 @@ public FrameworkUserBatchVM() LinkedVM = new FrameworkUser_BatchEdit(); } - protected override void InitVM() + protected override Task InitVM() { RoleListVM = Wtm.CreateVM(); + return Task.CompletedTask; } - public override bool DoBatchEdit() + public override async Task DoBatchEdit() { - var entityList = DC.Set().AsNoTracking().CheckIDs(Ids.ToList()).ToList(); + var entityList = await DC.Set().AsNoTracking().CheckIDs(Ids.ToList()).ToListAsync(); foreach (var entity in entityList) { List todelete = new List(); - todelete.AddRange(DC.Set().AsNoTracking().Where(x => x.UserCode == entity.ITCode).Select(x => x.ID)); + todelete.AddRange(await DC.Set().AsNoTracking().Where(x => x.UserCode == entity.ITCode).Select(x => x.ID).ToListAsync ()); foreach (var item in todelete) { DC.DeleteEntity(new FrameworkUserRole { ID = item }); @@ -52,7 +54,7 @@ public override bool DoBatchEdit() } } } - return base.DoBatchEdit(); + return await base.DoBatchEdit(); } } @@ -62,9 +64,9 @@ public class FrameworkUser_BatchEdit : BaseVM public List SelectedRolesCodes { get; set; } public List AllRoles { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - AllRoles = DC.Set().GetSelectListItems(Wtm, y => y.RoleName, y => y.RoleCode); + AllRoles = await DC.Set().GetSelectListItems(Wtm, y => y.RoleName, y => y.RoleCode); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs index efba18b11..7e912d193 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs @@ -1,5 +1,6 @@ // WTM默认页面 Wtm buidin page using System.Collections.Generic; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkUserVms @@ -15,7 +16,7 @@ public class FrameworkUserTemplateVM : BaseTemplateVM public ExcelPropety c8 = ExcelPropety.CreateProperty(x => x.Address); public ExcelPropety c9 = ExcelPropety.CreateProperty(x => x.ZipCode); - protected override void InitVM() + protected override async Task InitVM() { } @@ -23,15 +24,15 @@ protected override void InitVM() public class FrameworkUserImportVM : BaseImportVM { - public override bool BatchSaveData() + public override async Task BatchSaveData() { - SetEntityList(); + await SetEntityList(); foreach (var item in EntityList) { item.IsValid = true; item.Password = Utils.GetMD5String(item.Password); } - return base.BatchSaveData(); + return await base.BatchSaveData(); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs index 5768162ee..709c3410e 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -11,9 +12,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkUserVms { public class FrameworkUserListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.Create, "", "_Admin",dialogWidth: 800), this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.Edit, "", "_Admin",dialogWidth: 800), @@ -24,12 +25,12 @@ protected override List InitGridAction() this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.BatchDelete, "","_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.Import, "","_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.ExportExcel, "","_Admin"), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.ITCode), this.MakeGridHeader(x => x.Name), this.MakeGridHeader(x => x.Gender,80), @@ -39,7 +40,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x=> x.PhotoId,170).SetFormat(PhotoIdFormat), this.MakeGridHeader(x => x.IsValid).SetHeader(Localizer["Sys.Enable"]).SetWidth(80), this.MakeGridHeaderAction(width: 280) - }; + }); } private List PhotoIdFormat(FrameworkUser_View entity, object val) @@ -51,7 +52,7 @@ private List PhotoIdFormat(FrameworkUser_View entity, object v }; } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.ITCode,x=>x.ITCode) @@ -72,7 +73,7 @@ public override IOrderedQueryable GetSearchQuery() Gender = x.Gender }) .OrderBy(x => x.ITCode); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs index 7a1c57b8a..73a143a5a 100644 --- a/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs @@ -29,13 +29,13 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - protected override void InitVM() + protected override async Task InitVM() { SelectedRolesCodes = DC.Set().Where(x => x.UserCode == Entity.ITCode).Select(x => x.RoleCode).ToList(); SelectedGroupCodes = DC.Set().Where(x => x.UserCode == Entity.ITCode).Select(x => x.GroupCode).ToList(); } - public override async Task DoAddAsync() + public override async Task DoAdd() { using (var trans = DC.BeginTransaction()) { @@ -47,7 +47,7 @@ public override async Task DoAddAsync() { RoleCode = rolecode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(r); } @@ -60,14 +60,14 @@ public override async Task DoAddAsync() { GroupCode = groupcode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(g); } } Entity.IsValid = true; Entity.Password = Utils.GetMD5String(Entity.Password); - await base.DoAddAsync(); + await base.DoAdd(); if (MSD.IsValid) { trans.Commit(); @@ -79,7 +79,7 @@ public override async Task DoAddAsync() } } - public override async Task DoEditAsync(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { using (var trans = DC.BeginTransaction()) { @@ -109,7 +109,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) { RoleCode = rolecode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(r); } @@ -122,12 +122,12 @@ public override async Task DoEditAsync(bool updateAllFields = false) { GroupCode = groupcode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(g); } } - await base.DoEditAsync(updateAllFields); + await base.DoEdit(updateAllFields); if (MSD.IsValid) { trans.Commit(); @@ -140,18 +140,18 @@ public override async Task DoEditAsync(bool updateAllFields = false) } } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { using (var tran = DC.BeginTransaction()) { try { - await base.DoDeleteAsync(); + await base.DoDelete(); var ur = DC.Set().Where(x => x.UserCode == Entity.ITCode); DC.Set().RemoveRange(ur); var ug = DC.Set().Where(x => x.UserCode == Entity.ITCode); DC.Set().RemoveRange(ug); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); } catch @@ -162,11 +162,11 @@ public override async Task DoDeleteAsync() await Wtm.RemoveUserCache(Entity.ITCode); } - public void ChangePassword() + public async Task ChangePassword() { Entity.Password = Utils.GetMD5String(Entity.Password); DC.UpdateProperty(Entity, x => x.Password); - DC.SaveChanges(); + await DC.SaveChangesAsync(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/CityApiController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/CityApiController.cs index 5cca6d07e..7c58fbd80 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/CityApiController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/CityApiController.cs @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Demo.ViewModels.CityVMs; using WalkingTec.Mvvm.Demo.Models; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -19,7 +20,7 @@ public partial class CityApiController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(CityApiSearcher searcher) + public async Task Search(CityApiSearcher searcher) { if (ModelState.IsValid) { @@ -43,7 +44,7 @@ public CityApiVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(CityApiVM vm) + public async Task Add(CityApiVM vm) { if (!ModelState.IsValid) { @@ -51,7 +52,7 @@ public IActionResult Add(CityApiVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -66,7 +67,7 @@ public IActionResult Add(CityApiVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(CityApiVM vm) + public async Task Edit(CityApiVM vm) { if (!ModelState.IsValid) { @@ -74,7 +75,7 @@ public IActionResult Edit(CityApiVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -88,7 +89,7 @@ public IActionResult Edit(CityApiVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -99,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -112,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(CityApiSearcher searcher) + public async Task ExportExcel(CityApiSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -131,7 +132,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -151,10 +152,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(CityApiImportVM vm) + public async Task Import(CityApiImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -166,9 +167,9 @@ public ActionResult Import(CityApiImportVM vm) [HttpGet("GetCitys")] - public ActionResult GetCitys() + public async Task GetCitys() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/CityController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/CityController.cs index 89c55e727..cbf20df2a 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/CityController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/CityController.cs @@ -6,6 +6,7 @@ using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.ViewModels.CityVMs; using WalkingTec.Mvvm.Demo.Models; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -14,18 +15,18 @@ public partial class CityController : BaseController { #region Search [ActionDescription("Sys.Search")] - public ActionResult Index() + public IActionResult Index () { var vm = Wtm.CreateVM(); return PartialView(vm); } [HttpPost] - public ActionResult Index(CitySearcher searcher) + public async Task Index(CitySearcher searcher) { var vm = Wtm.CreateVM(); searcher.CopyContext(vm); - searcher.DoInit(); + await searcher.DoInit(); vm.se = searcher; vm.list.Searcher = searcher; return PartialView(vm); @@ -75,7 +76,7 @@ public string Search(CitySearcher searcher) #region Create [ActionDescription("Sys.Create")] - public ActionResult Create() + public IActionResult Create () { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -83,7 +84,7 @@ public ActionResult Create() [HttpPost] [ActionDescription("Sys.Create")] - public ActionResult Create(CityVM vm) + public async Task Create(CityVM vm) { if (!ModelState.IsValid) { @@ -91,10 +92,10 @@ public ActionResult Create(CityVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -105,14 +106,14 @@ public ActionResult Create(CityVM vm) } [ActionDescription("Sys.Create")] - public ActionResult CreateGroup() + public IActionResult CreateGroup () { var vm = Wtm.CreateVM(); return PartialView(vm); } [HttpPost] [ActionDescription("Sys.Create")] - public ActionResult CreateGroup(GroupVMTest vm) + public async Task CreateGroup(GroupVMTest vm) { if (!ModelState.IsValid) { @@ -120,11 +121,11 @@ public ActionResult CreateGroup(GroupVMTest vm) } else { - vm.vm1.DoAdd(); - vm.vm2.DoAdd(); + await vm.vm1.DoAdd(); + await vm.vm2.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -138,7 +139,7 @@ public ActionResult CreateGroup(GroupVMTest vm) #region Edit [ActionDescription("Sys.Edit")] - public ActionResult Edit(string id) + public IActionResult Edit (string id) { var vm = Wtm.CreateVM(id); vm.CityChildrenList1.Searcher.ParentId = id; @@ -146,7 +147,7 @@ public ActionResult Edit(string id) } [ActionDescription("Sys.Edit")] - public ActionResult EditGroup(string id) + public IActionResult EditGroup (string id) { var vm = Wtm.CreateVM(values: x=>x.EntityId == id); return PartialView(vm); @@ -156,7 +157,7 @@ public ActionResult EditGroup(string id) [ActionDescription("Sys.Edit")] [HttpPost] [ValidateFormItemOnly] - public ActionResult Edit(CityVM vm) + public async Task Edit(CityVM vm) { if (!ModelState.IsValid) { @@ -164,10 +165,10 @@ public ActionResult Edit(CityVM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -179,7 +180,7 @@ public ActionResult Edit(CityVM vm) [ActionDescription("Sys.Edit")] [HttpPost] [ValidateFormItemOnly] - public ActionResult EditGroup(GroupVMTest vm) + public async Task EditGroup(GroupVMTest vm) { if (!ModelState.IsValid) { @@ -187,11 +188,11 @@ public ActionResult EditGroup(GroupVMTest vm) } else { - vm.vm1.DoEdit(); - vm.vm2.DoEdit(); + await vm.vm1.DoEdit(); + await vm.vm2.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -205,7 +206,7 @@ public ActionResult EditGroup(GroupVMTest vm) #region Delete [ActionDescription("Sys.Delete")] - public ActionResult Delete(string id) + public IActionResult Delete (string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -213,10 +214,10 @@ public ActionResult Delete(string id) [ActionDescription("Sys.Delete")] [HttpPost] - public ActionResult Delete(string id, IFormCollection nouse) + public async Task Delete(string id, IFormCollection nouse) { var vm = Wtm.CreateVM(id); - vm.DoDelete(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -230,7 +231,7 @@ public ActionResult Delete(string id, IFormCollection nouse) #region Details [ActionDescription("Sys.Details")] - public ActionResult Details(string id) + public IActionResult Details (string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -240,7 +241,7 @@ public ActionResult Details(string id) #region BatchEdit [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult BatchEdit(string[] IDs) + public IActionResult BatchEdit (string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -248,9 +249,9 @@ public ActionResult BatchEdit(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(CityBatchVM vm, IFormCollection nouse) + public async Task DoBatchEdit(CityBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return PartialView("BatchEdit", vm); } @@ -264,7 +265,7 @@ public ActionResult DoBatchEdit(CityBatchVM vm, IFormCollection nouse) #region BatchDelete [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(string[] IDs) + public IActionResult BatchDelete (string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -272,9 +273,9 @@ public ActionResult BatchDelete(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult DoBatchDelete(CityBatchVM vm, IFormCollection nouse) + public async Task DoBatchDelete(CityBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete", vm); } @@ -287,7 +288,7 @@ public ActionResult DoBatchDelete(CityBatchVM vm, IFormCollection nouse) #region Import [ActionDescription("Sys.Import")] - public ActionResult Import() + public IActionResult Import () { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -295,9 +296,9 @@ public ActionResult Import() [HttpPost] [ActionDescription("Sys.Import")] - public ActionResult Import(CityImportVM vm, IFormCollection nouse) + public async Task Import(CityImportVM vm, IFormCollection nouse) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } @@ -310,9 +311,9 @@ public ActionResult Import(CityImportVM vm, IFormCollection nouse) [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(CityListVM vm) + public async Task ExportExcel(CityListVM vm) { - return vm.GetExportData(); + return await vm.GetExportData(); } public IActionResult GetAllCities() { diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/DataTableController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/DataTableController.cs index a847940dd..b8e0e69b2 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/DataTableController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/DataTableController.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; @@ -198,10 +199,10 @@ public string Search(DatatableListVM vm) } [ActionDescription("Export")] [HttpPost] - public IActionResult ExportExcel(DatatableListVM vm) + public async Task ExportExcel(DatatableListVM vm) { vm.SearcherMode = vm.Ids != null && vm.Ids.Count > 0 ? ListVMSearchModeEnum.CheckExport : ListVMSearchModeEnum.Export; - var data = vm.GenerateExcel(); + var data = await vm.GenerateExcel(); return File(data, "application/vnd.ms-excel", $"Export_City_{DateTime.Now.ToString("yyyy-MM-dd")}.xls"); } diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/HospitalController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/HospitalController.cs index 2f0745f6c..4d02ae336 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/HospitalController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/HospitalController.cs @@ -1,10 +1,11 @@ -using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.ViewModels.HospitalVMs; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -14,7 +15,7 @@ public partial class HospitalController : BaseController { #region Search [ActionDescription("Sys.Search")] - public ActionResult Index() + public IActionResult Index () { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -40,7 +41,7 @@ public string Search(HospitalSearcher searcher) #region Create [ActionDescription("Sys.Create")] - public ActionResult Create() + public IActionResult Create () { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -48,7 +49,7 @@ public ActionResult Create() [HttpPost] [ActionDescription("Sys.Create")] - public ActionResult Create(HospitalVM vm) + public async Task Create(HospitalVM vm) { if (!ModelState.IsValid) { @@ -56,10 +57,10 @@ public ActionResult Create(HospitalVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -72,7 +73,7 @@ public ActionResult Create(HospitalVM vm) #region Edit [ActionDescription("Sys.Edit")] - public ActionResult Edit(string id) + public IActionResult Edit (string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -81,7 +82,7 @@ public ActionResult Edit(string id) [ActionDescription("Sys.Edit")] [HttpPost] [ValidateFormItemOnly] - public ActionResult Edit(HospitalVM vm) + public async Task Edit(HospitalVM vm) { if (!ModelState.IsValid) { @@ -89,10 +90,10 @@ public ActionResult Edit(HospitalVM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -105,7 +106,7 @@ public ActionResult Edit(HospitalVM vm) #region Delete [ActionDescription("Sys.Delete")] - public ActionResult Delete(string id) + public IActionResult Delete (string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -113,10 +114,10 @@ public ActionResult Delete(string id) [ActionDescription("Sys.Delete")] [HttpPost] - public ActionResult Delete(string id, IFormCollection nouse) + public async Task Delete(string id, IFormCollection nouse) { var vm = Wtm.CreateVM(id); - vm.DoDelete(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -130,7 +131,7 @@ public ActionResult Delete(string id, IFormCollection nouse) #region Details [ActionDescription("Sys.Details")] - public ActionResult Details(string id) + public IActionResult Details (string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -140,7 +141,7 @@ public ActionResult Details(string id) #region BatchEdit [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult BatchEdit(string[] IDs) + public IActionResult BatchEdit (string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -148,9 +149,9 @@ public ActionResult BatchEdit(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(HospitalBatchVM vm, IFormCollection nouse) + public async Task DoBatchEdit(HospitalBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return PartialView("BatchEdit",vm); } @@ -164,7 +165,7 @@ public ActionResult DoBatchEdit(HospitalBatchVM vm, IFormCollection nouse) #region BatchDelete [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(string[] IDs) + public IActionResult BatchDelete (string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -172,9 +173,9 @@ public ActionResult BatchDelete(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult DoBatchDelete(HospitalBatchVM vm, IFormCollection nouse) + public async Task DoBatchDelete(HospitalBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete",vm); } @@ -187,7 +188,7 @@ public ActionResult DoBatchDelete(HospitalBatchVM vm, IFormCollection nouse) #region Import [ActionDescription("Sys.Import")] - public ActionResult Import() + public IActionResult Import () { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -195,9 +196,9 @@ public ActionResult Import() [HttpPost] [ActionDescription("Sys.Import")] - public ActionResult Import(HospitalImportVM vm, IFormCollection nouse) + public async Task Import(HospitalImportVM vm, IFormCollection nouse) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } @@ -210,9 +211,9 @@ public ActionResult Import(HospitalImportVM vm, IFormCollection nouse) [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(HospitalListVM vm) + public async Task ExportExcel(HospitalListVM vm) { - return vm.GetExportData(); + return await vm.GetExportData(); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/ISOTypeController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/ISOTypeController.cs index a733bbe79..cc8235658 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/ISOTypeController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/ISOTypeController.cs @@ -1,10 +1,11 @@ -using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.ViewModels.ISOTypeVMs; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -14,7 +15,7 @@ public partial class ISOTypeController : BaseController { #region Search [ActionDescription("Sys.Search")] - public ActionResult Index() + public IActionResult Index () { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -40,7 +41,7 @@ public string Search(ISOTypeSearcher searcher) #region Create [ActionDescription("Sys.Create")] - public ActionResult Create() + public IActionResult Create () { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -48,7 +49,7 @@ public ActionResult Create() [HttpPost] [ActionDescription("Sys.Create")] - public ActionResult Create(ISOTypeVM vm) + public async Task Create(ISOTypeVM vm) { if (!ModelState.IsValid) { @@ -56,10 +57,10 @@ public ActionResult Create(ISOTypeVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -72,7 +73,7 @@ public ActionResult Create(ISOTypeVM vm) #region Edit [ActionDescription("Sys.Edit")] - public ActionResult Edit(string id) + public IActionResult Edit (string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -81,7 +82,7 @@ public ActionResult Edit(string id) [ActionDescription("Sys.Edit")] [HttpPost] [ValidateFormItemOnly] - public ActionResult Edit(ISOTypeVM vm) + public async Task Edit(ISOTypeVM vm) { if (!ModelState.IsValid) { @@ -89,10 +90,10 @@ public ActionResult Edit(ISOTypeVM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -105,7 +106,7 @@ public ActionResult Edit(ISOTypeVM vm) #region Delete [ActionDescription("Sys.Delete")] - public ActionResult Delete(string id) + public IActionResult Delete (string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -113,10 +114,10 @@ public ActionResult Delete(string id) [ActionDescription("Sys.Delete")] [HttpPost] - public ActionResult Delete(string id, IFormCollection nouse) + public async Task Delete(string id, IFormCollection nouse) { var vm = Wtm.CreateVM(id); - vm.DoDelete(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -130,7 +131,7 @@ public ActionResult Delete(string id, IFormCollection nouse) #region Details [ActionDescription("Sys.Details")] - public ActionResult Details(string id) + public IActionResult Details (string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -140,7 +141,7 @@ public ActionResult Details(string id) #region BatchEdit [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult BatchEdit(string[] IDs) + public IActionResult BatchEdit (string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -148,9 +149,9 @@ public ActionResult BatchEdit(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(ISOTypeBatchVM vm, IFormCollection nouse) + public async Task DoBatchEdit(ISOTypeBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return PartialView("BatchEdit",vm); } @@ -164,7 +165,7 @@ public ActionResult DoBatchEdit(ISOTypeBatchVM vm, IFormCollection nouse) #region BatchDelete [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(string[] IDs) + public IActionResult BatchDelete (string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -172,9 +173,9 @@ public ActionResult BatchDelete(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult DoBatchDelete(ISOTypeBatchVM vm, IFormCollection nouse) + public async Task DoBatchDelete(ISOTypeBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete",vm); } @@ -187,7 +188,7 @@ public ActionResult DoBatchDelete(ISOTypeBatchVM vm, IFormCollection nouse) #region Import [ActionDescription("Sys.Import")] - public ActionResult Import() + public IActionResult Import () { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -195,9 +196,9 @@ public ActionResult Import() [HttpPost] [ActionDescription("Sys.Import")] - public ActionResult Import(ISOTypeImportVM vm, IFormCollection nouse) + public async Task Import(ISOTypeImportVM vm, IFormCollection nouse) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } @@ -210,9 +211,9 @@ public ActionResult Import(ISOTypeImportVM vm, IFormCollection nouse) [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(ISOTypeListVM vm) + public async Task ExportExcel(ISOTypeListVM vm) { - return vm.GetExportData(); + return await vm.GetExportData(); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/LinkTest2Controller.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/LinkTest2Controller.cs index 246c91ed1..1a0d49235 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/LinkTest2Controller.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/LinkTest2Controller.cs @@ -1,10 +1,11 @@ -using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.ViewModels.LinkTest2VMs; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -14,7 +15,7 @@ public partial class LinkTest2Controller : BaseController { #region Search [ActionDescription("Sys.Search")] - public ActionResult Index() + public IActionResult Index () { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -40,7 +41,7 @@ public string Search(LinkTest2Searcher searcher) #region Create [ActionDescription("Sys.Create")] - public ActionResult Create() + public IActionResult Create () { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -48,7 +49,7 @@ public ActionResult Create() [HttpPost] [ActionDescription("Sys.Create")] - public ActionResult Create(LinkTest2VM vm) + public async Task Create(LinkTest2VM vm) { if (!ModelState.IsValid) { @@ -56,10 +57,10 @@ public ActionResult Create(LinkTest2VM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -72,7 +73,7 @@ public ActionResult Create(LinkTest2VM vm) #region Edit [ActionDescription("Sys.Edit")] - public ActionResult Edit(string id) + public IActionResult Edit (string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -81,7 +82,7 @@ public ActionResult Edit(string id) [ActionDescription("Sys.Edit")] [HttpPost] [ValidateFormItemOnly] - public ActionResult Edit(LinkTest2VM vm) + public async Task Edit(LinkTest2VM vm) { if (!ModelState.IsValid) { @@ -89,10 +90,10 @@ public ActionResult Edit(LinkTest2VM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -105,7 +106,7 @@ public ActionResult Edit(LinkTest2VM vm) #region Delete [ActionDescription("Sys.Delete")] - public ActionResult Delete(string id) + public IActionResult Delete (string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -113,10 +114,10 @@ public ActionResult Delete(string id) [ActionDescription("Sys.Delete")] [HttpPost] - public ActionResult Delete(string id, IFormCollection nouse) + public async Task Delete(string id, IFormCollection nouse) { var vm = Wtm.CreateVM(id); - vm.DoDelete(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -130,7 +131,7 @@ public ActionResult Delete(string id, IFormCollection nouse) #region Details [ActionDescription("Sys.Details")] - public ActionResult Details(string id) + public IActionResult Details (string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -140,7 +141,7 @@ public ActionResult Details(string id) #region BatchEdit [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult BatchEdit(string[] IDs) + public IActionResult BatchEdit (string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -148,9 +149,9 @@ public ActionResult BatchEdit(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(LinkTest2BatchVM vm, IFormCollection nouse) + public async Task DoBatchEdit(LinkTest2BatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return PartialView("BatchEdit",vm); } @@ -164,7 +165,7 @@ public ActionResult DoBatchEdit(LinkTest2BatchVM vm, IFormCollection nouse) #region BatchDelete [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(string[] IDs) + public IActionResult BatchDelete (string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -172,9 +173,9 @@ public ActionResult BatchDelete(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult DoBatchDelete(LinkTest2BatchVM vm, IFormCollection nouse) + public async Task DoBatchDelete(LinkTest2BatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete",vm); } @@ -187,7 +188,7 @@ public ActionResult DoBatchDelete(LinkTest2BatchVM vm, IFormCollection nouse) #region Import [ActionDescription("Sys.Import")] - public ActionResult Import() + public IActionResult Import () { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -195,9 +196,9 @@ public ActionResult Import() [HttpPost] [ActionDescription("Sys.Import")] - public ActionResult Import(LinkTest2ImportVM vm, IFormCollection nouse) + public async Task Import(LinkTest2ImportVM vm, IFormCollection nouse) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } @@ -210,9 +211,9 @@ public ActionResult Import(LinkTest2ImportVM vm, IFormCollection nouse) [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(LinkTest2ListVM vm) + public async Task ExportExcel(LinkTest2ListVM vm) { - return vm.GetExportData(); + return await vm.GetExportData(); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/LinkTestController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/LinkTestController.cs index 54a760138..816428265 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/LinkTestController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/LinkTestController.cs @@ -8,6 +8,7 @@ using WalkingTec.Mvvm.Demo.Models; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -17,7 +18,7 @@ public partial class LinkTestController : BaseController { #region Search [ActionDescription("Sys.Search")] - public ActionResult Index() + public async Task Index() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -43,7 +44,7 @@ public string Search(LinkTestSearcher searcher) #region Create [ActionDescription("Sys.Create")] - public ActionResult Create() + public async Task Create() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -51,7 +52,7 @@ public ActionResult Create() [HttpPost] [ActionDescription("Sys.Create")] - public ActionResult Create(LinkTestVM vm) + public async Task Create(LinkTestVM vm) { if (!ModelState.IsValid) { @@ -59,10 +60,10 @@ public ActionResult Create(LinkTestVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -75,7 +76,7 @@ public ActionResult Create(LinkTestVM vm) #region Edit [ActionDescription("Sys.Edit")] - public ActionResult Edit(string id) + public async Task Edit(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -84,7 +85,7 @@ public ActionResult Edit(string id) [ActionDescription("Sys.Edit")] [HttpPost] [ValidateFormItemOnly] - public ActionResult Edit(LinkTestVM vm) + public async Task Edit(LinkTestVM vm) { if (!ModelState.IsValid) { @@ -92,10 +93,10 @@ public ActionResult Edit(LinkTestVM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -108,7 +109,7 @@ public ActionResult Edit(LinkTestVM vm) #region Delete [ActionDescription("Sys.Delete")] - public ActionResult Delete(string id) + public async Task Delete(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -116,10 +117,10 @@ public ActionResult Delete(string id) [ActionDescription("Sys.Delete")] [HttpPost] - public ActionResult Delete(string id, IFormCollection nouse) + public async Task Delete(string id, IFormCollection nouse) { var vm = Wtm.CreateVM(id); - vm.DoDelete(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -133,7 +134,7 @@ public ActionResult Delete(string id, IFormCollection nouse) #region Details [ActionDescription("Sys.Details")] - public ActionResult Details(string id) + public async Task Details(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -143,7 +144,7 @@ public ActionResult Details(string id) #region BatchEdit [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult BatchEdit(string[] IDs) + public async Task BatchEdit(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -151,9 +152,9 @@ public ActionResult BatchEdit(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(LinkTestBatchVM vm, IFormCollection nouse) + public async Task DoBatchEdit(LinkTestBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return PartialView("BatchEdit",vm); } @@ -167,7 +168,7 @@ public ActionResult DoBatchEdit(LinkTestBatchVM vm, IFormCollection nouse) #region BatchDelete [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(string[] IDs) + public async Task BatchDelete(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -175,9 +176,9 @@ public ActionResult BatchDelete(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult DoBatchDelete(LinkTestBatchVM vm, IFormCollection nouse) + public async Task DoBatchDelete(LinkTestBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete",vm); } @@ -190,7 +191,7 @@ public ActionResult DoBatchDelete(LinkTestBatchVM vm, IFormCollection nouse) #region Import [ActionDescription("Sys.Import")] - public ActionResult Import() + public async Task Import() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -198,9 +199,9 @@ public ActionResult Import() [HttpPost] [ActionDescription("Sys.Import")] - public ActionResult Import(LinkTestImportVM vm, IFormCollection nouse) + public async Task Import(LinkTestImportVM vm, IFormCollection nouse) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } @@ -213,9 +214,9 @@ public ActionResult Import(LinkTestImportVM vm, IFormCollection nouse) [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(LinkTestListVM vm) + public async Task ExportExcel(LinkTestListVM vm) { - return vm.GetExportData(); + return await vm.GetExportData(); } public IActionResult GetMajorBySchool(List id) diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/LoginController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/LoginController.cs index 5139dd391..45a77f3f2 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/LoginController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/LoginController.cs @@ -47,7 +47,7 @@ public async Task Login(LoginVM vm) return View(vm); } } - var user = Wtm.DoLogin(vm.ITCode, vm.Password, vm.Tenant); + var user = await Wtm.DoLogin(vm.ITCode, vm.Password, vm.Tenant); if (user == null) { vm.MSD.AddModelError("", Localizer["Sys.LoginFailed"]); @@ -56,7 +56,7 @@ public async Task Login(LoginVM vm) else { //其他属性可以通过user.Attributes["aaa"] = "bbb"方式赋值 - Wtm.LoginUserInfo = user; + Wtm.SetLoginUserInfo (user); string url = string.Empty; if (!string.IsNullOrEmpty(vm.Redirect)) { @@ -83,7 +83,7 @@ public async Task Login(LoginVM vm) } [Public] - public IActionResult Reg() + public async Task Reg() { if (ConfigInfo.HasMainHost) { @@ -96,7 +96,7 @@ public IActionResult Reg() [Public] [HttpPost] - public IActionResult Reg(RegVM vm) + public async Task Reg(RegVM vm) { if (!ModelState.IsValid) { @@ -104,7 +104,7 @@ public IActionResult Reg(RegVM vm) } else { - var rv = vm.DoReg(); + var rv = await vm.DoReg(); if (rv == true) { return FFResult().CloseDialog().Message(Localizer["Reg.Success"]); @@ -122,7 +122,7 @@ public async Task Logout() { HttpContext.Session.Clear(); await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); - if (ConfigInfo.HasMainHost == false || Wtm.LoginUserInfo?.CurrentTenant != null) + if (ConfigInfo.HasMainHost == false || (await Wtm.GetLoginUserInfo ())?.CurrentTenant != null) { HttpContext.Response.Redirect("/"); } @@ -135,19 +135,19 @@ public async Task Logout() [AllRights] [ActionDescription("ChangePassword")] - public ActionResult ChangePassword() + public async Task ChangePassword () { var vm = Wtm.CreateVM(); - vm.ITCode = Wtm.LoginUserInfo.ITCode; + vm.ITCode = (await Wtm.GetLoginUserInfo ()).ITCode; return PartialView(vm); } [AllRights] [HttpPost] [ActionDescription("ChangePassword")] - public ActionResult ChangePassword(ChangePasswordVM vm) + public async Task ChangePassword (ChangePasswordVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { var result = Wtm.CallAPI("mainhost", "/api/_account/ChangePassword", HttpMethodEnum.POST, vm, 10).Result; if (result.StatusCode == System.Net.HttpStatusCode.OK) diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/MajorApiController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/MajorApiController.cs index 973366ed4..30d2cf511 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/MajorApiController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/MajorApiController.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Demo.ViewModels.MajorVMs; using WalkingTec.Mvvm.Demo.Models; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -19,7 +20,7 @@ public partial class MajorApiController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(MajorApiSearcher searcher) + public async Task Search(MajorApiSearcher searcher) { if (ModelState.IsValid) { @@ -43,7 +44,7 @@ public MajorApiVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(MajorApiVM vm) + public async Task Add(MajorApiVM vm) { if (!ModelState.IsValid) { @@ -51,7 +52,7 @@ public IActionResult Add(MajorApiVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -66,7 +67,7 @@ public IActionResult Add(MajorApiVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(MajorApiVM vm) + public async Task Edit(MajorApiVM vm) { if (!ModelState.IsValid) { @@ -74,7 +75,7 @@ public IActionResult Edit(MajorApiVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -88,7 +89,7 @@ public IActionResult Edit(MajorApiVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -99,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -112,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(MajorApiSearcher searcher) + public async Task ExportExcel(MajorApiSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -130,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -150,10 +151,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(MajorApiImportVM vm) + public async Task Import(MajorApiImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -165,15 +166,15 @@ public ActionResult Import(MajorApiImportVM vm) [HttpGet("GetSchools")] - public ActionResult GetSchools() + public async Task GetSchools () { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.SchoolName)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.SchoolName)); } [HttpGet("GetStudents")] - public ActionResult GetStudents() + public async Task GetStudents () { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/MajorController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/MajorController.cs index d398c28dd..0010c3297 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/MajorController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/MajorController.cs @@ -16,7 +16,7 @@ public partial class MajorController : BaseController { #region Search [ActionDescription("Sys.Search")] - public ActionResult Index() + public async Task Index() { var vm = Wtm.CreateVM(); vm.Searcher.SchoolId = 27; @@ -25,7 +25,7 @@ public ActionResult Index() [ActionDescription("Sys.Search")] [HttpPost] - public ActionResult Index(MajorListVM vm) + public async Task Index(MajorListVM vm) { return PartialView(vm); @@ -51,7 +51,7 @@ public string Search(MajorSearcher searcher) #region Create [ActionDescription("Sys.Create")] - public ActionResult Create() + public async Task Create() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -59,7 +59,7 @@ public ActionResult Create() [HttpPost] [ActionDescription("Sys.Create")] - public ActionResult Create(MajorVM vm) + public async Task Create(MajorVM vm) { if (!ModelState.IsValid) { @@ -67,10 +67,10 @@ public ActionResult Create(MajorVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -83,7 +83,7 @@ public ActionResult Create(MajorVM vm) #region Edit [ActionDescription("Sys.Edit")] - public ActionResult Edit(string id) + public async Task Edit(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -92,7 +92,7 @@ public ActionResult Edit(string id) [ActionDescription("Sys.Edit")] [HttpPost] [ValidateFormItemOnly] - public ActionResult Edit(MajorVM vm) + public async Task Edit(MajorVM vm) { if (!ModelState.IsValid) { @@ -100,10 +100,10 @@ public ActionResult Edit(MajorVM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -116,7 +116,7 @@ public ActionResult Edit(MajorVM vm) #region Delete [ActionDescription("Sys.Delete")] - public ActionResult Delete(string id) + public async Task Delete(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -124,10 +124,10 @@ public ActionResult Delete(string id) [ActionDescription("Sys.Delete")] [HttpPost] - public ActionResult Delete(string id, IFormCollection nouse) + public async Task Delete(string id, IFormCollection nouse) { var vm = Wtm.CreateVM(id); - vm.DoDelete(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -141,7 +141,7 @@ public ActionResult Delete(string id, IFormCollection nouse) #region Details [ActionDescription("Sys.Details")] - public ActionResult Details(string id) + public async Task Details(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -151,7 +151,7 @@ public ActionResult Details(string id) #region BatchEdit [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult BatchEdit(string[] IDs) + public async Task BatchEdit(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -159,9 +159,9 @@ public ActionResult BatchEdit(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(MajorBatchVM vm, IFormCollection nouse) + public async Task DoBatchEdit(MajorBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return PartialView("BatchEdit",vm); } @@ -175,7 +175,7 @@ public ActionResult DoBatchEdit(MajorBatchVM vm, IFormCollection nouse) #region BatchDelete [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(string[] IDs) + public async Task BatchDelete(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -183,9 +183,9 @@ public ActionResult BatchDelete(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult DoBatchDelete(MajorBatchVM vm, IFormCollection nouse) + public async Task DoBatchDelete(MajorBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete",vm); } @@ -198,7 +198,7 @@ public ActionResult DoBatchDelete(MajorBatchVM vm, IFormCollection nouse) #region Import [ActionDescription("Sys.Import")] - public ActionResult Import() + public async Task Import() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -206,9 +206,9 @@ public ActionResult Import() [HttpPost] [ActionDescription("Sys.Import")] - public ActionResult Import(MajorImportVM vm, IFormCollection nouse) + public async Task Import(MajorImportVM vm, IFormCollection nouse) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } @@ -221,9 +221,9 @@ public ActionResult Import(MajorImportVM vm, IFormCollection nouse) [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(MajorListVM vm) + public async Task ExportExcel(MajorListVM vm) { - return vm.GetExportData(); + return await vm.GetExportData(); } public ActionResult GetStudents() { diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/PatientApiController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/PatientApiController.cs index 63e23396e..e790291d8 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/PatientApiController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/PatientApiController.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; @@ -8,7 +8,7 @@ using WalkingTec.Mvvm.Demo.ViewModels.PatientVMs; using WalkingTec.Mvvm.Demo.Models.Virus; using WalkingTec.Mvvm.Demo.Models; - +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -21,7 +21,7 @@ public partial class PatientApiController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(PatientApiSearcher searcher) + public async Task Search(PatientApiSearcher searcher) { if (ModelState.IsValid) { @@ -45,7 +45,7 @@ public PatientApiVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(PatientApiVM vm) + public async Task Add(PatientApiVM vm) { if (!ModelState.IsValid) { @@ -53,7 +53,7 @@ public IActionResult Add(PatientApiVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -68,7 +68,7 @@ public IActionResult Add(PatientApiVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(PatientApiVM vm) + public async Task Edit(PatientApiVM vm) { if (!ModelState.IsValid) { @@ -76,7 +76,7 @@ public IActionResult Edit(PatientApiVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -90,7 +90,7 @@ public IActionResult Edit(PatientApiVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -101,7 +101,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -114,17 +114,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(PatientApiSearcher searcher) + public async Task ExportExcel(PatientApiSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -132,7 +132,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -152,9 +152,9 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(PatientApiImportVM vm) + public async Task Import(PatientApiImportVM vm) { - if (vm!=null && (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData())) + if (vm!=null && (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData())) { return BadRequest(vm.GetErrorJson()); } @@ -166,21 +166,21 @@ public ActionResult Import(PatientApiImportVM vm) [HttpGet("GetCitys")] - public ActionResult GetCitys() + public async Task GetCitys() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } [HttpGet("GetHospitals")] - public ActionResult GetHospitals() + public async Task GetHospitals() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } [HttpGet("GetViruss")] - public ActionResult GetViruss() + public async Task GetViruss() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.VirtusName)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.VirtusName)); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/PatientController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/PatientController.cs index aa5cc054a..eda12d026 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/PatientController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/PatientController.cs @@ -1,10 +1,11 @@ -using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.ViewModels.PatientVMs; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -14,7 +15,7 @@ public partial class PatientController : BaseController { #region Search [ActionDescription("Sys.Search")] - public ActionResult Index() + public async Task Index() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -40,7 +41,7 @@ public string Search(PatientSearcher searcher) #region Create [ActionDescription("Sys.Create")] - public ActionResult Create() + public async Task Create() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -48,7 +49,7 @@ public ActionResult Create() [HttpPost] [ActionDescription("Sys.Create")] - public ActionResult Create(PatientVM vm) + public async Task Create(PatientVM vm) { if (!ModelState.IsValid) { @@ -56,10 +57,10 @@ public ActionResult Create(PatientVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -72,7 +73,7 @@ public ActionResult Create(PatientVM vm) #region Edit [ActionDescription("Sys.Edit")] - public ActionResult Edit(string id) + public async Task Edit(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -81,7 +82,7 @@ public ActionResult Edit(string id) [ActionDescription("Sys.Edit")] [HttpPost] [ValidateFormItemOnly] - public ActionResult Edit(PatientVM vm) + public async Task Edit(PatientVM vm) { if (!ModelState.IsValid) { @@ -89,10 +90,10 @@ public ActionResult Edit(PatientVM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -105,7 +106,7 @@ public ActionResult Edit(PatientVM vm) #region Delete [ActionDescription("Sys.Delete")] - public ActionResult Delete(string id) + public async Task Delete(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -113,10 +114,10 @@ public ActionResult Delete(string id) [ActionDescription("Sys.Delete")] [HttpPost] - public ActionResult Delete(string id, IFormCollection nouse) + public async Task Delete(string id, IFormCollection nouse) { var vm = Wtm.CreateVM(id); - vm.DoDelete(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -130,7 +131,7 @@ public ActionResult Delete(string id, IFormCollection nouse) #region Details [ActionDescription("Sys.Details")] - public ActionResult Details(string id) + public async Task Details(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -140,7 +141,7 @@ public ActionResult Details(string id) #region BatchEdit [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult BatchEdit(string[] IDs) + public async Task BatchEdit(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -148,9 +149,9 @@ public ActionResult BatchEdit(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(PatientBatchVM vm, IFormCollection nouse) + public async Task DoBatchEdit(PatientBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return PartialView("BatchEdit",vm); } @@ -164,7 +165,7 @@ public ActionResult DoBatchEdit(PatientBatchVM vm, IFormCollection nouse) #region BatchDelete [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(string[] IDs) + public async Task BatchDelete(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -172,9 +173,9 @@ public ActionResult BatchDelete(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult DoBatchDelete(PatientBatchVM vm, IFormCollection nouse) + public async Task DoBatchDelete(PatientBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete",vm); } @@ -187,7 +188,7 @@ public ActionResult DoBatchDelete(PatientBatchVM vm, IFormCollection nouse) #region Import [ActionDescription("Sys.Import")] - public ActionResult Import() + public async Task Import() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -195,9 +196,9 @@ public ActionResult Import() [HttpPost] [ActionDescription("Sys.Import")] - public ActionResult Import(PatientImportVM vm, IFormCollection nouse) + public async Task Import(PatientImportVM vm, IFormCollection nouse) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } @@ -210,9 +211,9 @@ public ActionResult Import(PatientImportVM vm, IFormCollection nouse) [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(PatientListVM vm) + public async Task ExportExcel(PatientListVM vm) { - return vm.GetExportData(); + return await vm.GetExportData(); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/SchoolApiController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/SchoolApiController.cs index 095f00df6..cbfa856c3 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/SchoolApiController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/SchoolApiController.cs @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Demo.ViewModels.SchoolVMs; using WalkingTec.Mvvm.Demo.Models; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -36,7 +37,7 @@ public SchoolApiVM Get(string id) [ActionDescription("新建")] [HttpPost("Add")] - public IActionResult Add(SchoolApiVM vm) + public async Task Add(SchoolApiVM vm) { if (!ModelState.IsValid) { @@ -44,7 +45,7 @@ public IActionResult Add(SchoolApiVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -59,7 +60,7 @@ public IActionResult Add(SchoolApiVM vm) [ActionDescription("修改")] [HttpPut("Edit")] - public IActionResult Edit(SchoolApiVM vm) + public async Task Edit(SchoolApiVM vm) { if (!ModelState.IsValid) { @@ -67,7 +68,7 @@ public IActionResult Edit(SchoolApiVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -81,7 +82,7 @@ public IActionResult Edit(SchoolApiVM vm) [HttpPost("BatchDelete")] [ActionDescription("删除")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -92,7 +93,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -105,18 +106,18 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("导出")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(SchoolApiSearcher searcher) + public async Task ExportExcel(SchoolApiSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - var data = vm.GenerateExcel(); + var data = await vm.GenerateExcel(); return File(data, "application/vnd.ms-excel", $"Export_School_{DateTime.Now.ToString("yyyy-MM-dd")}.xls"); } [ActionDescription("勾选导出")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -124,7 +125,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - var data = vm.GenerateExcel(); + var data = await vm.GenerateExcel(); return File(data, "application/vnd.ms-excel", $"Export_School_{DateTime.Now.ToString("yyyy-MM-dd")}.xls"); } @@ -145,10 +146,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("导入")] [HttpPost("Import")] - public ActionResult Import(SchoolApiImportVM vm) + public async Task Import(SchoolApiImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/SchoolController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/SchoolController.cs index 7c7911dd2..181580d2e 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/SchoolController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/SchoolController.cs @@ -1,4 +1,5 @@ using System; +using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using NPOI.HSSF.Util; @@ -16,7 +17,7 @@ public class SchoolController : BaseController { #region 搜索 [ActionDescription("Search")] - public ActionResult Index() + public async Task Index() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -24,7 +25,7 @@ public ActionResult Index() [ActionDescription("Search")] [HttpPost] - public ActionResult Index(SchoolListVM vm) + public async Task Index(SchoolListVM vm) { vm.DoInit(); return PartialView(vm); @@ -57,7 +58,7 @@ public ActionResult EditIndex() [HttpPost] [ActionDescription("搜索并修改某字段")] - public ActionResult EditIndex(SchoolListVM2 vm) + public async Task EditIndex(SchoolListVM2 vm) { if (!ModelState.IsValid) { @@ -66,7 +67,7 @@ public ActionResult EditIndex(SchoolListVM2 vm) } else { - vm.UpdateEntityList(); + await vm.UpdateEntityList(); } return PartialView(vm); } @@ -74,7 +75,7 @@ public ActionResult EditIndex(SchoolListVM2 vm) #region 新建 [ActionDescription("新建")] - public ActionResult Create() + public async Task Create() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -83,7 +84,7 @@ public ActionResult Create() [HttpPost] [ActionDescription("新建")] [StringNeedLTGT] - public ActionResult Create(SchoolVM vm) + public async Task Create(SchoolVM vm) { if (!ModelState.IsValid) { @@ -91,10 +92,10 @@ public ActionResult Create(SchoolVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -107,7 +108,7 @@ public ActionResult Create(SchoolVM vm) #region 修改 [ActionDescription("修改")] - public ActionResult Edit(string id) + public async Task Edit(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -116,7 +117,7 @@ public ActionResult Edit(string id) [ActionDescription("修改")] [HttpPost] [StringNeedLTGT] - public ActionResult Edit(SchoolVM vm) + public async Task Edit(SchoolVM vm) { if (!ModelState.IsValid) { @@ -124,10 +125,10 @@ public ActionResult Edit(SchoolVM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -140,7 +141,7 @@ public ActionResult Edit(SchoolVM vm) #region 删除 [ActionDescription("删除")] - public ActionResult Delete(int id) + public async Task Delete(int id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -148,10 +149,10 @@ public ActionResult Delete(int id) [ActionDescription("删除")] [HttpPost] - public ActionResult Delete(int id, IFormCollection nouse) + public async Task Delete(int id, IFormCollection nouse) { var vm = Wtm.CreateVM(id); - vm.DoDelete(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -165,7 +166,7 @@ public ActionResult Delete(int id, IFormCollection nouse) #region 详细 [ActionDescription("详细")] - public ActionResult Details(int id) + public async Task Details(int id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -175,7 +176,7 @@ public ActionResult Details(int id) #region 批量修改 [HttpPost] [ActionDescription("批量修改")] - public ActionResult BatchEdit(string[] IDs) + public async Task BatchEdit(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -183,9 +184,9 @@ public ActionResult BatchEdit(string[] IDs) [HttpPost] [ActionDescription("批量修改")] - public ActionResult DoBatchEdit(SchoolBatchVM vm, IFormCollection nouse) + public async Task DoBatchEdit(SchoolBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return PartialView("BatchEdit", vm); } @@ -199,7 +200,7 @@ public ActionResult DoBatchEdit(SchoolBatchVM vm, IFormCollection nouse) #region 批量删除 [HttpPost] [ActionDescription("批量删除")] - public ActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Length > 0) @@ -210,7 +211,7 @@ public ActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return FFResult().Alert(ModelState.GetErrorJson().GetFirstError()); } @@ -224,7 +225,7 @@ public ActionResult BatchDelete(string[] ids) #region 导入 [ActionDescription("导入")] - public ActionResult Import() + public async Task Import() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -232,9 +233,9 @@ public ActionResult Import() [HttpPost] [ActionDescription("导入")] - public ActionResult Import(SchoolImportVM vm, IFormCollection nouse) + public async Task Import(SchoolImportVM vm, IFormCollection nouse) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } @@ -257,7 +258,7 @@ public ActionResult Create2() [HttpPost] [ActionDescription("主子表新建")] - public ActionResult Create2(SchoolVM vm) + public async Task Create2 (SchoolVM vm) { if (!ModelState.IsValid) { @@ -270,11 +271,11 @@ public ActionResult Create2(SchoolVM vm) { vm.Entity.Majors = new System.Collections.Generic.List(); } - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { vm.MajorList.ProcessListError(vm.Entity.Majors); - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -298,7 +299,7 @@ public ActionResult Edit2(int id) [ActionDescription("主子表修改")] [HttpPost] - public ActionResult Edit2(SchoolVM vm) + public async Task Edit2 (SchoolVM vm) { if (!ModelState.IsValid) { @@ -311,10 +312,10 @@ public ActionResult Edit2(SchoolVM vm) { vm.Entity.Majors = new System.Collections.Generic.List(); } - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); vm.MajorList.ProcessListError(vm.Entity.Majors); return PartialView(vm); } @@ -328,12 +329,12 @@ public ActionResult Edit2(SchoolVM vm) [ActionDescription("Export")] [HttpPost] - public ActionResult ExportExcel(SchoolListVM vm) + public async Task ExportExcel (SchoolListVM vm) { vm.ExportMaxCount = 5; //自定义每个Excel最多数据行数,默认是100万 vm.ExportTitleBackColor = HSSFColor.Black.Index; vm.ExportTitleFontColor = HSSFColor.White.Index; - return vm.GetExportData(); + return await vm.GetExportData(); } [HttpPost] diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/SoftFacInfoController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/SoftFacInfoController.cs index a1f57d8ed..f8047e3af 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/SoftFacInfoController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/SoftFacInfoController.cs @@ -1,10 +1,11 @@ -using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.ViewModels.SoftFacInfoVMs; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -14,7 +15,7 @@ public partial class SoftFacInfoController : BaseController { #region Search [ActionDescription("Sys.Search")] - public ActionResult Index() + public async Task Index() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -40,7 +41,7 @@ public string Search(SoftFacInfoSearcher searcher) #region Create [ActionDescription("Sys.Create")] - public ActionResult Create() + public async Task Create() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -48,7 +49,7 @@ public ActionResult Create() [HttpPost] [ActionDescription("Sys.Create")] - public ActionResult Create(SoftFacInfoVM vm) + public async Task Create(SoftFacInfoVM vm) { if (!ModelState.IsValid) { @@ -56,10 +57,10 @@ public ActionResult Create(SoftFacInfoVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -72,7 +73,7 @@ public ActionResult Create(SoftFacInfoVM vm) #region Edit [ActionDescription("Sys.Edit")] - public ActionResult Edit(string id) + public async Task Edit(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -81,7 +82,7 @@ public ActionResult Edit(string id) [ActionDescription("Sys.Edit")] [HttpPost] [ValidateFormItemOnly] - public ActionResult Edit(SoftFacInfoVM vm) + public async Task Edit(SoftFacInfoVM vm) { if (!ModelState.IsValid) { @@ -89,10 +90,10 @@ public ActionResult Edit(SoftFacInfoVM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -105,7 +106,7 @@ public ActionResult Edit(SoftFacInfoVM vm) #region Delete [ActionDescription("Sys.Delete")] - public ActionResult Delete(string id) + public async Task Delete(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -113,10 +114,10 @@ public ActionResult Delete(string id) [ActionDescription("Sys.Delete")] [HttpPost] - public ActionResult Delete(string id, IFormCollection nouse) + public async Task Delete(string id, IFormCollection nouse) { var vm = Wtm.CreateVM(id); - vm.DoDelete(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -130,7 +131,7 @@ public ActionResult Delete(string id, IFormCollection nouse) #region Details [ActionDescription("Sys.Details")] - public ActionResult Details(string id) + public async Task Details(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -140,7 +141,7 @@ public ActionResult Details(string id) #region BatchEdit [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult BatchEdit(string[] IDs) + public async Task BatchEdit(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -148,9 +149,9 @@ public ActionResult BatchEdit(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(SoftFacInfoBatchVM vm, IFormCollection nouse) + public async Task DoBatchEdit(SoftFacInfoBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return PartialView("BatchEdit",vm); } @@ -164,7 +165,7 @@ public ActionResult DoBatchEdit(SoftFacInfoBatchVM vm, IFormCollection nouse) #region BatchDelete [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(string[] IDs) + public async Task BatchDelete(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -172,9 +173,9 @@ public ActionResult BatchDelete(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult DoBatchDelete(SoftFacInfoBatchVM vm, IFormCollection nouse) + public async Task DoBatchDelete(SoftFacInfoBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete",vm); } @@ -187,7 +188,7 @@ public ActionResult DoBatchDelete(SoftFacInfoBatchVM vm, IFormCollection nouse) #region Import [ActionDescription("Sys.Import")] - public ActionResult Import() + public async Task Import() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -195,9 +196,9 @@ public ActionResult Import() [HttpPost] [ActionDescription("Sys.Import")] - public ActionResult Import(SoftFacInfoImportVM vm, IFormCollection nouse) + public async Task Import(SoftFacInfoImportVM vm, IFormCollection nouse) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } @@ -210,9 +211,9 @@ public ActionResult Import(SoftFacInfoImportVM vm, IFormCollection nouse) [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(SoftFacInfoListVM vm) + public async Task ExportExcel(SoftFacInfoListVM vm) { - return vm.GetExportData(); + return await vm.GetExportData(); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/StudentApiController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/StudentApiController.cs index ee97d56e8..bb1448bb8 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/StudentApiController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/StudentApiController.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Demo.ViewModels.StudentVMs; using WalkingTec.Mvvm.Demo.Models; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -19,7 +20,7 @@ public partial class StudentApiController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(StudentApiSearcher searcher) + public async Task Search(StudentApiSearcher searcher) { if (ModelState.IsValid) { @@ -43,7 +44,7 @@ public StudentApiVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(StudentApiVM vm) + public async Task Add(StudentApiVM vm) { if (!ModelState.IsValid) { @@ -51,7 +52,7 @@ public IActionResult Add(StudentApiVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -66,7 +67,7 @@ public IActionResult Add(StudentApiVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(StudentApiVM vm) + public async Task Edit(StudentApiVM vm) { if (!ModelState.IsValid) { @@ -74,7 +75,7 @@ public IActionResult Edit(StudentApiVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -88,7 +89,7 @@ public IActionResult Edit(StudentApiVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -99,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -112,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(StudentApiSearcher searcher) + public async Task ExportExcel(StudentApiSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -130,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -150,10 +151,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(StudentApiImportVM vm) + public async Task Import(StudentApiImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -165,9 +166,9 @@ public ActionResult Import(StudentApiImportVM vm) [HttpGet("GetMajors")] - public ActionResult GetMajors() + public async Task GetMajors() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.MajorName)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.MajorName)); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/StudentController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/StudentController.cs index 92647091e..edd06eebe 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/StudentController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/StudentController.cs @@ -5,6 +5,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.ViewModels.StudentVMs; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -14,7 +15,7 @@ public partial class StudentController : BaseController { #region Search [ActionDescription("Sys.Search")] - public ActionResult Index() + public async Task Index() { var vm = Wtm.CreateVM(); vm.Searcher.Sex = GenderEnum.Male; @@ -41,7 +42,7 @@ public string Search(StudentSearcher searcher) #region Create [ActionDescription("Sys.Create")] - public ActionResult Create() + public async Task Create() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -49,7 +50,7 @@ public ActionResult Create() [HttpPost] [ActionDescription("Sys.Create")] - public ActionResult Create(StudentVM vm) + public async Task Create(StudentVM vm) { if (!ModelState.IsValid) { @@ -57,10 +58,10 @@ public ActionResult Create(StudentVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -73,7 +74,7 @@ public ActionResult Create(StudentVM vm) #region Edit [ActionDescription("Sys.Edit")] - public ActionResult Edit(string id) + public async Task Edit(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -82,7 +83,7 @@ public ActionResult Edit(string id) [ActionDescription("Sys.Edit")] [HttpPost] [ValidateFormItemOnly] - public ActionResult Edit(StudentVM vm) + public async Task Edit(StudentVM vm) { if (!ModelState.IsValid) { @@ -90,10 +91,10 @@ public ActionResult Edit(StudentVM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -106,7 +107,7 @@ public ActionResult Edit(StudentVM vm) #region Delete [ActionDescription("Sys.Delete")] - public ActionResult Delete(string id) + public async Task Delete(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -114,10 +115,10 @@ public ActionResult Delete(string id) [ActionDescription("Sys.Delete")] [HttpPost] - public ActionResult Delete(string id, IFormCollection nouse) + public async Task Delete(string id, IFormCollection nouse) { var vm = Wtm.CreateVM(id); - vm.DoDelete(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -131,7 +132,7 @@ public ActionResult Delete(string id, IFormCollection nouse) #region Details [ActionDescription("Sys.Details")] - public ActionResult Details(string id) + public async Task Details(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -141,7 +142,7 @@ public ActionResult Details(string id) #region BatchEdit [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult BatchEdit(string[] IDs) + public async Task BatchEdit(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -149,9 +150,9 @@ public ActionResult BatchEdit(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(StudentBatchVM vm, IFormCollection nouse) + public async Task DoBatchEdit(StudentBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return PartialView("BatchEdit",vm); } @@ -165,7 +166,7 @@ public ActionResult DoBatchEdit(StudentBatchVM vm, IFormCollection nouse) #region BatchDelete [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(string[] IDs) + public async Task BatchDelete(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -173,9 +174,9 @@ public ActionResult BatchDelete(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult DoBatchDelete(StudentBatchVM vm, IFormCollection nouse) + public async Task DoBatchDelete(StudentBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete",vm); } @@ -188,7 +189,7 @@ public ActionResult DoBatchDelete(StudentBatchVM vm, IFormCollection nouse) #region Import [ActionDescription("Sys.Import")] - public ActionResult Import() + public async Task Import() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -196,9 +197,9 @@ public ActionResult Import() [HttpPost] [ActionDescription("Sys.Import")] - public ActionResult Import(StudentImportVM vm, IFormCollection nouse) + public async Task Import(StudentImportVM vm, IFormCollection nouse) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } @@ -211,9 +212,9 @@ public ActionResult Import(StudentImportVM vm, IFormCollection nouse) [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(StudentListVM vm) + public async Task ExportExcel(StudentListVM vm) { - return vm.GetExportData(); + return await vm.GetExportData(); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/TreeTestController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/TreeTestController.cs index cf76a65df..dcc473db5 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/TreeTestController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/TreeTestController.cs @@ -1,10 +1,11 @@ -using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.ViewModels.TreeTestVMs; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -14,7 +15,7 @@ public partial class TreeTestController : BaseController { #region Search [ActionDescription("Sys.Search")] - public ActionResult Index() + public async Task Index() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -40,7 +41,7 @@ public string Search(TreeTestSearcher searcher) #region Create [ActionDescription("Sys.Create")] - public ActionResult Create() + public async Task Create() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -48,7 +49,7 @@ public ActionResult Create() [HttpPost] [ActionDescription("Sys.Create")] - public ActionResult Create(TreeTestVM vm) + public async Task Create(TreeTestVM vm) { if (!ModelState.IsValid) { @@ -56,10 +57,10 @@ public ActionResult Create(TreeTestVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -72,7 +73,7 @@ public ActionResult Create(TreeTestVM vm) #region Edit [ActionDescription("Sys.Edit")] - public ActionResult Edit(string id) + public async Task Edit(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -81,7 +82,7 @@ public ActionResult Edit(string id) [ActionDescription("Sys.Edit")] [HttpPost] [ValidateFormItemOnly] - public ActionResult Edit(TreeTestVM vm) + public async Task Edit(TreeTestVM vm) { if (!ModelState.IsValid) { @@ -89,10 +90,10 @@ public ActionResult Edit(TreeTestVM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -105,7 +106,7 @@ public ActionResult Edit(TreeTestVM vm) #region Delete [ActionDescription("Sys.Delete")] - public ActionResult Delete(string id) + public async Task Delete(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -113,10 +114,10 @@ public ActionResult Delete(string id) [ActionDescription("Sys.Delete")] [HttpPost] - public ActionResult Delete(string id, IFormCollection nouse) + public async Task Delete(string id, IFormCollection nouse) { var vm = Wtm.CreateVM(id); - vm.DoDelete(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -130,7 +131,7 @@ public ActionResult Delete(string id, IFormCollection nouse) #region Details [ActionDescription("Sys.Details")] - public ActionResult Details(string id) + public async Task Details(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -140,7 +141,7 @@ public ActionResult Details(string id) #region BatchEdit [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult BatchEdit(string[] IDs) + public async Task BatchEdit(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -148,9 +149,9 @@ public ActionResult BatchEdit(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(TreeTestBatchVM vm, IFormCollection nouse) + public async Task DoBatchEdit(TreeTestBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return PartialView("BatchEdit",vm); } @@ -164,7 +165,7 @@ public ActionResult DoBatchEdit(TreeTestBatchVM vm, IFormCollection nouse) #region BatchDelete [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(string[] IDs) + public async Task BatchDelete(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -172,9 +173,9 @@ public ActionResult BatchDelete(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult DoBatchDelete(TreeTestBatchVM vm, IFormCollection nouse) + public async Task DoBatchDelete(TreeTestBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete",vm); } @@ -187,7 +188,7 @@ public ActionResult DoBatchDelete(TreeTestBatchVM vm, IFormCollection nouse) #region Import [ActionDescription("Sys.Import")] - public ActionResult Import() + public async Task Import() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -195,9 +196,9 @@ public ActionResult Import() [HttpPost] [ActionDescription("Sys.Import")] - public ActionResult Import(TreeTestImportVM vm, IFormCollection nouse) + public async Task Import(TreeTestImportVM vm, IFormCollection nouse) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } @@ -210,9 +211,9 @@ public ActionResult Import(TreeTestImportVM vm, IFormCollection nouse) [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(TreeTestListVM vm) + public async Task ExportExcel(TreeTestListVM vm) { - return vm.GetExportData(); + return await vm.GetExportData(); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/WxReportDataApiController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/WxReportDataApiController.cs index 91b4f3fba..4af553d6c 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/WxReportDataApiController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/WxReportDataApiController.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Demo.ViewModels.WxReportDataVMs; using WalkingTec.Mvvm.Demo.Models; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -19,7 +20,7 @@ public partial class WxReportDataApiController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(WxReportDataApiSearcher searcher) + public async Task Search(WxReportDataApiSearcher searcher) { if (ModelState.IsValid) { @@ -43,7 +44,7 @@ public WxReportDataApiVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(WxReportDataApiVM vm) + public async Task Add(WxReportDataApiVM vm) { if (!ModelState.IsValid) { @@ -51,7 +52,7 @@ public IActionResult Add(WxReportDataApiVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -66,7 +67,7 @@ public IActionResult Add(WxReportDataApiVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(WxReportDataApiVM vm) + public async Task Edit(WxReportDataApiVM vm) { if (!ModelState.IsValid) { @@ -74,7 +75,7 @@ public IActionResult Edit(WxReportDataApiVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -88,7 +89,7 @@ public IActionResult Edit(WxReportDataApiVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -99,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -112,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(WxReportDataApiSearcher searcher) + public async Task ExportExcel(WxReportDataApiSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -130,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -150,10 +151,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(WxReportDataApiImportVM vm) + public async Task Import(WxReportDataApiImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -165,9 +166,9 @@ public ActionResult Import(WxReportDataApiImportVM vm) [HttpGet("GetFrameworkUsers")] - public ActionResult GetFrameworkUsers() + public async Task GetFrameworkUsers() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } } diff --git a/demo/WalkingTec.Mvvm.Demo/Controllers/WxReportDataController.cs b/demo/WalkingTec.Mvvm.Demo/Controllers/WxReportDataController.cs index 0280b9587..3a2a1cd0b 100644 --- a/demo/WalkingTec.Mvvm.Demo/Controllers/WxReportDataController.cs +++ b/demo/WalkingTec.Mvvm.Demo/Controllers/WxReportDataController.cs @@ -1,10 +1,11 @@ -using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.ViewModels.WxReportDataVMs; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -14,7 +15,7 @@ public partial class WxReportDataController : BaseController { #region Search [ActionDescription("Sys.Search")] - public ActionResult Index() + public async Task Index() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -40,7 +41,7 @@ public string Search(WxReportDataSearcher searcher) #region Create [ActionDescription("Sys.Create")] - public ActionResult Create() + public async Task Create() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -48,7 +49,7 @@ public ActionResult Create() [HttpPost] [ActionDescription("Sys.Create")] - public ActionResult Create(WxReportDataVM vm) + public async Task Create(WxReportDataVM vm) { if (!ModelState.IsValid) { @@ -56,10 +57,10 @@ public ActionResult Create(WxReportDataVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -72,7 +73,7 @@ public ActionResult Create(WxReportDataVM vm) #region Edit [ActionDescription("Sys.Edit")] - public ActionResult Edit(string id) + public async Task Edit(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -81,7 +82,7 @@ public ActionResult Edit(string id) [ActionDescription("Sys.Edit")] [HttpPost] [ValidateFormItemOnly] - public ActionResult Edit(WxReportDataVM vm) + public async Task Edit(WxReportDataVM vm) { if (!ModelState.IsValid) { @@ -89,10 +90,10 @@ public ActionResult Edit(WxReportDataVM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -105,7 +106,7 @@ public ActionResult Edit(WxReportDataVM vm) #region Delete [ActionDescription("Sys.Delete")] - public ActionResult Delete(string id) + public async Task Delete(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -113,10 +114,10 @@ public ActionResult Delete(string id) [ActionDescription("Sys.Delete")] [HttpPost] - public ActionResult Delete(string id, IFormCollection nouse) + public async Task Delete(string id, IFormCollection nouse) { var vm = Wtm.CreateVM(id); - vm.DoDelete(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -130,7 +131,7 @@ public ActionResult Delete(string id, IFormCollection nouse) #region Details [ActionDescription("Sys.Details")] - public ActionResult Details(string id) + public async Task Details(string id) { var vm = Wtm.CreateVM(id); return PartialView(vm); @@ -140,7 +141,7 @@ public ActionResult Details(string id) #region BatchEdit [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult BatchEdit(string[] IDs) + public async Task BatchEdit(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -148,9 +149,9 @@ public ActionResult BatchEdit(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(WxReportDataBatchVM vm, IFormCollection nouse) + public async Task DoBatchEdit(WxReportDataBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return PartialView("BatchEdit",vm); } @@ -164,7 +165,7 @@ public ActionResult DoBatchEdit(WxReportDataBatchVM vm, IFormCollection nouse) #region BatchDelete [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult BatchDelete(string[] IDs) + public async Task BatchDelete(string[] IDs) { var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); @@ -172,9 +173,9 @@ public ActionResult BatchDelete(string[] IDs) [HttpPost] [ActionDescription("Sys.BatchDelete")] - public ActionResult DoBatchDelete(WxReportDataBatchVM vm, IFormCollection nouse) + public async Task DoBatchDelete(WxReportDataBatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete",vm); } @@ -187,7 +188,7 @@ public ActionResult DoBatchDelete(WxReportDataBatchVM vm, IFormCollection nouse) #region Import [ActionDescription("Sys.Import")] - public ActionResult Import() + public async Task Import() { var vm = Wtm.CreateVM(); return PartialView(vm); @@ -195,9 +196,9 @@ public ActionResult Import() [HttpPost] [ActionDescription("Sys.Import")] - public ActionResult Import(WxReportDataImportVM vm, IFormCollection nouse) + public async Task Import(WxReportDataImportVM vm, IFormCollection nouse) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } @@ -210,9 +211,9 @@ public ActionResult Import(WxReportDataImportVM vm, IFormCollection nouse) [ActionDescription("Sys.Export")] [HttpPost] - public IActionResult ExportExcel(WxReportDataListVM vm) + public async Task ExportExcel(WxReportDataListVM vm) { - return vm.GetExportData(); + return await vm.GetExportData(); } } diff --git "a/demo/WalkingTec.Mvvm.Demo/Controllers/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Controller.cs" "b/demo/WalkingTec.Mvvm.Demo/Controllers/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Controller.cs" index 46c897781..e1a11fc54 100644 --- "a/demo/WalkingTec.Mvvm.Demo/Controllers/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Controller.cs" +++ "b/demo/WalkingTec.Mvvm.Demo/Controllers/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Controller.cs" @@ -5,6 +5,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.ViewModels.不要用中文模型名VMs; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Demo.Controllers { @@ -14,7 +15,7 @@ public partial class 不要用中文模型名Controller : BaseController { #region 搜索 [ActionDescription("搜索")] - public ActionResult Index() + public async Task Index() { var vm = Wtm.CreateVM<不要用中文模型名ListVM>(); return PartialView(vm); @@ -31,7 +32,7 @@ public string Search(不要用中文模型名ListVM vm) #region 新建 [ActionDescription("新建")] - public ActionResult Create() + public async Task Create() { var vm = Wtm.CreateVM<不要用中文模型名VM>(); return PartialView(vm); @@ -39,7 +40,7 @@ public ActionResult Create() [HttpPost] [ActionDescription("新建")] - public ActionResult Create(不要用中文模型名VM vm) + public async Task Create(不要用中文模型名VM vm) { if (!ModelState.IsValid) { @@ -47,10 +48,10 @@ public ActionResult Create(不要用中文模型名VM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -63,7 +64,7 @@ public ActionResult Create(不要用中文模型名VM vm) #region 修改 [ActionDescription("修改")] - public ActionResult Edit(string id) + public async Task Edit(string id) { var vm = Wtm.CreateVM<不要用中文模型名VM>(id); return PartialView(vm); @@ -72,7 +73,7 @@ public ActionResult Edit(string id) [ActionDescription("修改")] [HttpPost] [ValidateFormItemOnly] - public ActionResult Edit(不要用中文模型名VM vm) + public async Task Edit(不要用中文模型名VM vm) { if (!ModelState.IsValid) { @@ -80,10 +81,10 @@ public ActionResult Edit(不要用中文模型名VM vm) } else { - vm.DoEdit(); + await vm.DoEdit(); if (!ModelState.IsValid) { - vm.DoReInit(); + await vm.DoReInit(); return PartialView(vm); } else @@ -96,7 +97,7 @@ public ActionResult Edit(不要用中文模型名VM vm) #region 删除 [ActionDescription("删除")] - public ActionResult Delete(string id) + public async Task Delete(string id) { var vm = Wtm.CreateVM<不要用中文模型名VM>(id); return PartialView(vm); @@ -104,10 +105,10 @@ public ActionResult Delete(string id) [ActionDescription("删除")] [HttpPost] - public ActionResult Delete(string id, IFormCollection nouse) + public async Task Delete(string id, IFormCollection nouse) { var vm = Wtm.CreateVM<不要用中文模型名VM>(id); - vm.DoDelete(); + await vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); @@ -121,7 +122,7 @@ public ActionResult Delete(string id, IFormCollection nouse) #region 详细 [ActionDescription("详细")] - public ActionResult Details(string id) + public async Task Details(string id) { var vm = Wtm.CreateVM<不要用中文模型名VM>(id); return PartialView(vm); @@ -131,7 +132,7 @@ public ActionResult Details(string id) #region 批量修改 [HttpPost] [ActionDescription("批量修改")] - public ActionResult BatchEdit(string[] IDs) + public async Task BatchEdit(string[] IDs) { var vm = Wtm.CreateVM<不要用中文模型名BatchVM>(Ids: IDs); return PartialView(vm); @@ -139,9 +140,9 @@ public ActionResult BatchEdit(string[] IDs) [HttpPost] [ActionDescription("批量修改")] - public ActionResult DoBatchEdit(不要用中文模型名BatchVM vm, IFormCollection nouse) + public async Task DoBatchEdit(不要用中文模型名BatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return PartialView("BatchEdit",vm); } @@ -155,7 +156,7 @@ public ActionResult DoBatchEdit(不要用中文模型名BatchVM vm, IFormCollect #region 批量删除 [HttpPost] [ActionDescription("批量删除")] - public ActionResult BatchDelete(string[] IDs) + public async Task BatchDelete(string[] IDs) { var vm = Wtm.CreateVM<不要用中文模型名BatchVM>(Ids: IDs); return PartialView(vm); @@ -163,9 +164,9 @@ public ActionResult BatchDelete(string[] IDs) [HttpPost] [ActionDescription("批量删除")] - public ActionResult DoBatchDelete(不要用中文模型名BatchVM vm, IFormCollection nouse) + public async Task DoBatchDelete(不要用中文模型名BatchVM vm, IFormCollection nouse) { - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return PartialView("BatchDelete",vm); } @@ -178,7 +179,7 @@ public ActionResult DoBatchDelete(不要用中文模型名BatchVM vm, IFormColle #region 导入 [ActionDescription("导入")] - public ActionResult Import() + public async Task Import() { var vm = Wtm.CreateVM<不要用中文模型名ImportVM>(); return PartialView(vm); @@ -186,9 +187,9 @@ public ActionResult Import() [HttpPost] [ActionDescription("导入")] - public ActionResult Import(不要用中文模型名ImportVM vm, IFormCollection nouse) + public async Task Import(不要用中文模型名ImportVM vm, IFormCollection nouse) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return PartialView(vm); } @@ -201,10 +202,10 @@ public ActionResult Import(不要用中文模型名ImportVM vm, IFormCollection [ActionDescription("导出")] [HttpPost] - public IActionResult ExportExcel(不要用中文模型名ListVM vm) + public async Task ExportExcel(不要用中文模型名ListVM vm) { vm.SearcherMode = vm.Ids != null && vm.Ids.Count > 0 ? ListVMSearchModeEnum.CheckExport : ListVMSearchModeEnum.Export; - var data = vm.GenerateExcel(); + var data = await vm.GenerateExcel(); return File(data, "application/vnd.ms-excel", $"Export_不要用中文模型名_{DateTime.Now.ToString("yyyy-MM-dd")}.xls"); } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiBatchVM.cs index 0b2429b36..2e4f8c8f3 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -32,8 +32,9 @@ public class CityApi_BatchEdit : BaseVM [Display(Name = "_Admin.Parent")] public Guid? ParentId { get; set; } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiImportVM.cs index b302aeb11..746046d4a 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -19,10 +19,10 @@ public partial class CityApiTemplateVM : BaseTemplateVM [Display(Name = "_Admin.Parent")] public ExcelPropety Parent_Excel = ExcelPropety.CreateProperty(x => x.ParentId); - protected override void InitVM() + protected override async Task InitVM() { Parent_Excel.DataType = ColumnDataType.ComboBox; - Parent_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Parent_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiListVM.cs index 6bc1de3a0..e408070d9 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,17 +14,17 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.CityVMs public partial class CityApiListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name), this.MakeGridHeader(x => x.Test), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.Name, x=>x.Name) @@ -38,7 +38,7 @@ public override IOrderedQueryable GetSearchQuery() Name_view = x.Parent.Name, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiSearcher.cs index 122e14ced..26becea55 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiSearcher.cs @@ -19,7 +19,7 @@ public partial class CityApiSearcher : BaseSearcher [Display(Name = "_Admin.Parent")] public Guid? ParentId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiVM.cs index a868afc52..8aed9d1e9 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityApiVM.cs @@ -18,24 +18,9 @@ public CityApiVM() SetInclude(x => x.Parent); } - protected override void InitVM() + protected override Task InitVM() { - - } - - public override void DoAdd() - { - base.DoAdd(); - } - - public override void DoEdit(bool updateAllFields = false) - { - base.DoEdit(updateAllFields); - } - - public override void DoDelete() - { - base.DoDelete(); + return Task.CompletedTask; } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityBatchVM.cs index 13ee55495..87f009e71 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -26,8 +26,9 @@ public CityBatchVM() public class City_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityChildrenDetailListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityChildrenDetailListVM.cs index fbdcefae5..e040a7e7f 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityChildrenDetailListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityChildrenDetailListVM.cs @@ -13,36 +13,34 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.CityVMs public partial class CityChildrenDetailListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("City", GridActionStandardTypesEnum.AddRow, "新建","", dialogWidth: 800), this.MakeStandardAction("City", GridActionStandardTypesEnum.RemoveRow, "删除","", dialogWidth: 800), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ - + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name).SetEditType(EditTypeEnum.TextBox), - this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var id = (Guid?)Searcher.ParentId.ConvertValue(typeof(Guid?)); if (id == null) - return new List().AsQueryable().OrderBy(x => x.ID); + return Task.FromResult (new List ().AsQueryable ().OrderBy (x => x.ID)); var query = DC.Set() .Where(x => id == x.ParentId) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityChildrenDetailListVM1.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityChildrenDetailListVM1.cs index 2ce7f7ec4..fcea663b9 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityChildrenDetailListVM1.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityChildrenDetailListVM1.cs @@ -13,37 +13,35 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.CityVMs public partial class CityChildrenDetailListVM1 : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("City", GridActionStandardTypesEnum.AddRow, "新建","", dialogWidth: 800), this.MakeStandardAction("City", GridActionStandardTypesEnum.RemoveRow, "删除","", dialogWidth: 800), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ - + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name).SetEditType(EditTypeEnum.TextBox), - this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var id = (Guid?)Searcher.ParentId.ConvertValue(typeof(Guid?)); if (id == null) - return new List().AsQueryable().OrderBy(x => x.ID); + return Task.FromResult (new List ().AsQueryable ().OrderBy (x => x.ID)); var query = DC.Set() .Where(x => id == x.ParentId) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityImportVM.cs index d9c8f0f42..e3506cfb8 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -19,10 +19,10 @@ public partial class CityTemplateVM : BaseTemplateVM [Display(Name = "_Admin.Parent")] public ExcelPropety Parent_Excel = ExcelPropety.CreateProperty(x => x.ParentId); - protected override void InitVM() + protected override async Task InitVM() { Parent_Excel.DataType = ColumnDataType.ComboBox; - Parent_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Parent_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityListVM.cs index c4bf1ca7a..cc5bbf52c 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityListVM.cs @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.CityVMs { public partial class CityListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("City", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"", dialogWidth: 800), this.MakeAction("City","CreateGroup","groupadd","groupadd", GridActionParameterTypesEnum.NoId).SetShowInRow(false), @@ -27,25 +27,25 @@ protected override List InitGridAction() this.MakeStandardAction("City", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "", dialogWidth: 800), this.MakeStandardAction("City", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "", dialogWidth: 800), this.MakeStandardAction("City", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], "") - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name), this.MakeGridHeader(x => x.Test), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { - var query = DC.Set() + var query = (await DC.Set() .CheckContain(Searcher.Name, x=>x.Name) - .DPWhere(Wtm, x=>x.ID) + .DPWhere(Wtm, x=>x.ID)) //.DPWhere(Wtm, x=>x.ParentId) //.DPWhere(Wtm, x => x.Parent.Children[0].Children[0].ID) .Select(x => new City_View diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CitySearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CitySearcher.cs index 8fa427218..7d682a157 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CitySearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CitySearcher.cs @@ -16,9 +16,9 @@ public partial class CitySearcher : BaseSearcher public String Name { get; set; } public Guid selectedparent { get; set; } public List Items { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - Items = DC.Set().GetTreeSelectListItems(Wtm, x => x.Name); + Items = await DC.Set().GetTreeSelectListItems(Wtm, x => x.Name); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityVM.cs index a7f367b94..dc6e4087e 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/CityVM.cs @@ -29,29 +29,14 @@ public CityVM() se = new CitySearcher(); } - protected override void InitVM() + protected override async Task InitVM() { - AllParents = DC.Set().GetTreeSelectListItems(Wtm, y => y.Name); + AllParents = await DC.Set().GetTreeSelectListItems(Wtm, y => y.Name); CityChildrenList.CopyContext(this); CityChildrenList1.CopyContext(this); list.CopyContext(this); se.CopyContext(this); - se.DoInit(); - } - - public override void DoAdd() - { - base.DoAdd(); - } - - public override void DoEdit(bool updateAllFields = false) - { - base.DoEdit(updateAllFields); - } - - public override void DoDelete() - { - base.DoDelete(); + await se.DoInit(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/GroupVMTest.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/GroupVMTest.cs index 8fea2f10e..c7a008686 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/GroupVMTest.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/CityVMs/GroupVMTest.cs @@ -14,7 +14,7 @@ public class GroupVMTest : BaseVM public CityVM vm2 { get; set; } = new CityVM(); - protected override void InitVM() + protected override async Task InitVM() { if(EntityId != null) { diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/DataTableVMs/ActionLogListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/DataTableVMs/ActionLogListVM.cs index d8540e151..5299533cd 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/DataTableVMs/ActionLogListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/DataTableVMs/ActionLogListVM.cs @@ -2,13 +2,14 @@ using System.Collections.Generic; using System.Data; using System.Data.Common; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Demo.ViewModels.DataTableVMs { public class DatatableListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { var actions = new List { @@ -19,10 +20,10 @@ protected override List InitGridAction() this.MakeAction("ActionLog","Index","测试","测试", GridActionParameterTypesEnum.NoId,"_Admin").SetMax(), this.MakeStandardAction("DataTable", GridActionStandardTypesEnum.ExportExcel, "导出","") }; - return actions; + return Task.FromResult (actions); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { var header = new List>(); var topheader = this.MakeGridHeaderParent("父表头"); @@ -58,7 +59,7 @@ protected override IEnumerable> InitGridHeader() header.Add(this.MakeGridHeaderAction(width: 320)); - return header; + return Task.FromResult>> (header); } public override DbCommand GetSearchCommand() diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/DataTableVMs/ChartVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/DataTableVMs/ChartVM.cs index ce870a8bc..a6b10312e 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/DataTableVMs/ChartVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/DataTableVMs/ChartVM.cs @@ -11,7 +11,7 @@ public class ChartVM : BaseVM { public ActionLogSearcher Searcher { get; set; } - protected override void InitVM() + protected override async Task InitVM() { Searcher = new ActionLogSearcher(); Searcher.CopyContext(this); diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/HomeVMs/RegVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/HomeVMs/RegVM.cs index d2118419c..5326ece50 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/HomeVMs/RegVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/HomeVMs/RegVM.cs @@ -1,5 +1,6 @@ using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Demo.ViewModels.HomeVMs @@ -39,7 +40,7 @@ public class RegVM : BaseVM /// 进行登录 /// /// 登录用户的信息 - public bool DoReg() + public async Task DoReg() { //检查两次新密码是否输入一致,如不一致则输出错误 if (Password != NewPasswordComfirm) @@ -69,7 +70,7 @@ public bool DoReg() }; DC.Set().Add(user); - DC.SaveChanges(); + await DC.SaveChangesAsync(); return true; } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalBatchVM.cs index 07dbbb0b0..a68c2afec 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalBatchVM.cs @@ -26,7 +26,7 @@ public HospitalBatchVM() public class Hospital_BatchEdit : BaseVM { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalImportVM.cs index f7ae2126b..e095cef0e 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -20,10 +20,10 @@ public partial class HospitalTemplateVM : BaseTemplateVM [Display(Name = "医院地点")] public ExcelPropety Location_Excel = ExcelPropety.CreateProperty(x => x.LocationId); - protected override void InitVM() + protected override async Task InitVM() { Location_Excel.DataType = ColumnDataType.ComboBox; - Location_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Location_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalListVM.cs index 028491ea5..093410b1d 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.HospitalVMs { public partial class HospitalListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("Hospital", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"", dialogWidth: 800), this.MakeStandardAction("Hospital", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "", dialogWidth: 800), @@ -26,21 +26,21 @@ protected override List InitGridAction() this.MakeStandardAction("Hospital", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "", dialogWidth: 800), this.MakeStandardAction("Hospital", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "", dialogWidth: 800), this.MakeStandardAction("Hospital", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], ""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name), this.MakeGridHeader(x => x.Level), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .Select(x => new Hospital_View @@ -51,7 +51,7 @@ public override IOrderedQueryable GetSearchQuery() Name_view = x.Location.Name, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalSearcher.cs index 691b3ed3f..50f8260df 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalSearcher.cs @@ -13,7 +13,7 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.HospitalVMs public partial class HospitalSearcher : BaseSearcher { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalVM.cs index cc5df6432..e19177c4b 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/HospitalVMs/HospitalVM.cs @@ -20,24 +20,24 @@ public HospitalVM() SetInclude(x => x.Location); } - protected override void InitVM() + protected override async Task InitVM() { - AllLocations = DC.Set().GetTreeSelectListItems(Wtm, y => y.Name); + AllLocations = await DC.Set().GetTreeSelectListItems(Wtm, y => y.Name); } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeBatchVM.cs index ed83d6035..93b9763a2 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -26,8 +26,9 @@ public ISOTypeBatchVM() public class ISOType_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeImportVM.cs index 76271f766..c3cf32d2b 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeImportVM.cs @@ -19,7 +19,7 @@ public partial class ISOTypeTemplateVM : BaseTemplateVM [Display(Name = " 附加信息")] public ExcelPropety Description_Excel = ExcelPropety.CreateProperty(x => x.Description); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeListVM.cs index 346e05c56..2b9efc94b 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.ISOTypeVMs { public partial class ISOTypeListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("ISOType", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"", dialogWidth: 800), this.MakeStandardAction("ISOType", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "", dialogWidth: 800), @@ -25,20 +25,20 @@ protected override List InitGridAction() this.MakeStandardAction("ISOType", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "", dialogWidth: 800), this.MakeStandardAction("ISOType", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "", dialogWidth: 800), this.MakeStandardAction("ISOType", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], ""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.IsoName), this.MakeGridHeader(x => x.ISOVerSion), this.MakeGridHeader(x => x.Description), this.MakeGridHeader(x => x.ISOFileID).SetFormat(ISOFileIDFormat), this.MakeGridHeader(x => x.IsoName_view), this.MakeGridHeaderAction(width: 200) - }; + }); } private List ISOFileIDFormat(ISOType_View entity, object val) { @@ -50,7 +50,7 @@ private List ISOFileIDFormat(ISOType_View entity, object val) } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.IsoName, x=>x.IsoName) @@ -67,7 +67,7 @@ public override IOrderedQueryable GetSearchQuery() IsoName_view = x.iSOTypes.Select(y=>y.softFacInfo.IsoName).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeSearcher.cs index 8a04efb47..452f651b2 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeSearcher.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -22,9 +22,9 @@ public partial class ISOTypeSearcher : BaseSearcher [Display(Name = "EXE版本")] public List SelectediSOTypesIDs { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - AlliSOTypess = DC.Set().GetSelectListItems(Wtm, y => y.IsoName); + AlliSOTypess = await DC.Set().GetSelectListItems(Wtm, y => y.IsoName); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeVM.cs index d729de901..f8b485aef 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/ISOTypeVMs/ISOTypeVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -21,13 +21,13 @@ public ISOTypeVM() SetInclude(x => x.iSOTypes); } - protected override void InitVM() + protected override async Task InitVM() { - AlliSOTypess = DC.Set().GetSelectListItems(Wtm, y => y.IsoName); + AlliSOTypess = await DC.Set().GetSelectListItems(Wtm, y => y.IsoName); SelectediSOTypesIDs = Entity.iSOTypes?.Select(x => x.softFacInfoID).ToList(); } - public override void DoAdd() + public override async Task DoAdd() { Entity.iSOTypes = new List(); if (SelectediSOTypesIDs != null) @@ -38,10 +38,10 @@ public override void DoAdd() } } - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { Entity.iSOTypes = new List(); if(SelectediSOTypesIDs != null ) @@ -49,12 +49,12 @@ public override void DoEdit(bool updateAllFields = false) SelectediSOTypesIDs.ForEach(x => Entity.iSOTypes.Add(new ISOEXE { ID = Guid.NewGuid(), softFacInfoID = x })); } - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2BatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2BatchVM.cs index f67868ddf..bb918ba03 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2BatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2BatchVM.cs @@ -26,7 +26,7 @@ public LinkTest2BatchVM() public class LinkTest2_BatchEdit : BaseVM { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2ImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2ImportVM.cs index 7854a9d3d..8195feada 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2ImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2ImportVM.cs @@ -14,7 +14,7 @@ public partial class LinkTest2TemplateVM : BaseTemplateVM { public ExcelPropety name_Excel = ExcelPropety.CreateProperty(x => x.name); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2ListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2ListVM.cs index 4f7a0bef7..3722c0983 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2ListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2ListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.LinkTest2VMs { public partial class LinkTest2ListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("LinkTest2", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"", dialogWidth: 800), this.MakeStandardAction("LinkTest2", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "", dialogWidth: 800), @@ -25,20 +25,20 @@ protected override List InitGridAction() this.MakeStandardAction("LinkTest2", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "", dialogWidth: 800), this.MakeStandardAction("LinkTest2", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "", dialogWidth: 800), this.MakeStandardAction("LinkTest2", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], ""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.name), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.name, x=>x.name) @@ -50,7 +50,7 @@ public override IOrderedQueryable GetSearchQuery() Name_view = x.LinkStudent.Select(y=>y.Student.Name).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2Searcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2Searcher.cs index 5715d27bd..3b24e917e 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2Searcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2Searcher.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -16,9 +16,9 @@ public partial class LinkTest2Searcher : BaseSearcher public List AllLinkStudents { get; set; } public List SelectedLinkStudentIDs { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - AllLinkStudents = DC.Set().GetSelectListItems(Wtm, y => y.Name); + AllLinkStudents = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2VM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2VM.cs index be57b0985..36e45a3a0 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2VM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTest2VMs/LinkTest2VM.cs @@ -6,7 +6,7 @@ using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.Models; - +using Microsoft.EntityFrameworkCore; namespace WalkingTec.Mvvm.Demo.ViewModels.LinkTest2VMs { @@ -24,24 +24,24 @@ public LinkTest2VM() SetInclude(x => x.LinkStudent); } - protected override void InitVM() + protected override async Task InitVM() { - //AllStudents = DC.Set().GetSelectListItems(Wtm, y => y.Name); - AllSchools = DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); - //AllMajors = DC.Set().GetSelectListItems(Wtm, y => y.MajorName); + //AllStudents = await DC.Set().GetSelectListItems(Wtm, y => y.Name); + AllSchools = await DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); + //AllMajors = await DC.Set().GetSelectListItems(Wtm, y => y.MajorName); if (Entity.HasID()) { - SelectedMajor = DC.Set().Where(x => Entity.LinkStudent.Select(y=>y.StudentId).Contains(x.StudentId)).Select(x => x.MajorId).ToList(); - SelectedSchool = DC.Set().Where(y => SelectedMajor.Contains(y.ID)).Select(z => z.SchoolId).ToList(); - AllMajors = DC.Set().Where(x => SelectedSchool.Contains(x.SchoolId)).GetSelectListItems(Wtm, x => x.MajorName); - AllStudents = DC.Set().Where(x => DC.Set().Where(y => SelectedMajor.Contains(y.MajorId)).Select(z => z.StudentId).Contains(x.ID)).GetSelectListItems(Wtm, x => x.Name); + SelectedMajor = await DC.Set().Where(x => Entity.LinkStudent.Select(y=>y.StudentId).Contains(x.StudentId)).Select(x => x.MajorId).ToListAsync(); + SelectedSchool = await DC.Set().Where(y => SelectedMajor.Contains(y.ID)).Select(z => z.SchoolId).ToListAsync(); + AllMajors = await DC.Set().Where(x => SelectedSchool.Contains(x.SchoolId)).GetSelectListItems(Wtm, x => x.MajorName); + AllStudents = await DC.Set().Where(x => DC.Set().Where(y => SelectedMajor.Contains(y.MajorId)).Select(z => z.StudentId).Contains(x.ID)).GetSelectListItems(Wtm, x => x.Name); } } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestBatchVM.cs index 2b28d4254..92f6e8b15 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -26,8 +26,9 @@ public LinkTestBatchVM() public class LinkTest_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestImportVM.cs index 4ecb3eb6a..1ba103a92 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -15,10 +15,10 @@ public partial class LinkTestTemplateVM : BaseTemplateVM public ExcelPropety name_Excel = ExcelPropety.CreateProperty(x => x.name); public ExcelPropety Student_Excel = ExcelPropety.CreateProperty(x => x.StudentId); - protected override void InitVM() + protected override async Task InitVM() { Student_Excel.DataType = ColumnDataType.ComboBox; - Student_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Student_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestListVM.cs index b8342742f..c78d693db 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.LinkTestVMs { public partial class LinkTestListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("LinkTest", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"", dialogWidth: 800), this.MakeStandardAction("LinkTest", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "", dialogWidth: 800), @@ -25,20 +25,20 @@ protected override List InitGridAction() this.MakeStandardAction("LinkTest", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "", dialogWidth: 800), this.MakeStandardAction("LinkTest", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "", dialogWidth: 800), this.MakeStandardAction("LinkTest", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], ""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.name), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.name, x=>x.name) @@ -50,7 +50,7 @@ public override IOrderedQueryable GetSearchQuery() Name_view = x.Student.Name, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestSearcher.cs index 4c98137ee..e1830eee5 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestSearcher.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -16,9 +16,9 @@ public partial class LinkTestSearcher : BaseSearcher public List AllStudents { get; set; } public string StudentId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - AllStudents = DC.Set().GetSelectListItems(Wtm, y => y.Name); + AllStudents = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestVM.cs index 3b5ef99a6..a7bdf9e16 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/LinkTestVMs/LinkTestVM.cs @@ -24,7 +24,7 @@ public LinkTestVM() SetInclude(x => x.Student); } - protected override void InitVM() + protected override async Task InitVM() { //AllStudents = DC.Set().GetSelectListItems(Wtm, y => y.Name); //AllSchools = DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); @@ -38,19 +38,19 @@ protected override void InitVM() } } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiBatchVM.cs index 9c1391f57..fe7ad2f43 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -34,8 +34,9 @@ public class MajorApi_BatchEdit : BaseVM [Display(Name = "学生")] public List SelectedStudentMajorsIDs { get; set; } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiImportVM.cs index 6b755d648..462081db9 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -23,10 +23,10 @@ public partial class MajorApiTemplateVM : BaseTemplateVM [Display(Name = "所属学校")] public ExcelPropety School_Excel = ExcelPropety.CreateProperty(x => x.SchoolId); - protected override void InitVM() + protected override async Task InitVM() { School_Excel.DataType = ColumnDataType.ComboBox; - School_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); + School_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiListVM.cs index ecc2ae6f7..bc9acdb43 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.MajorVMs public partial class MajorApiListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.MajorCode), this.MakeGridHeader(x => x.MajorName), this.MakeGridHeader(x => x.MajorType), @@ -24,10 +24,10 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.SchoolName_view), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckEqual(Searcher.MajorType, x=>x.MajorType) @@ -45,7 +45,7 @@ public override IOrderedQueryable GetSearchQuery() Name_view = x.StudentMajors.Select(y=>y.Student.Name).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiSearcher.cs index 2d480e5d5..ae8a7e6fe 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiSearcher.cs @@ -21,7 +21,7 @@ public partial class MajorApiSearcher : BaseSearcher [Display(Name = "学生")] public List SelectedStudentMajorsIDs { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiVM.cs index d2787bd3e..de88b248a 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorApiVM.cs @@ -19,23 +19,23 @@ public MajorApiVM() SetInclude(x => x.StudentMajors); } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorBatchVM.cs index e7a644ff5..669b46155 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -34,10 +34,10 @@ public class Major_BatchEdit : BaseVM [Display(Name = "学生")] public List SelectedStudentMajorsIDs { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - AllSchools = DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); - AllStudentMajorss = DC.Set().GetSelectListItems(Wtm, y => y.Name); + AllSchools = await DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); + AllStudentMajorss = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorDetailListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorDetailListVM.cs index cef7990f3..1ae9f7985 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorDetailListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorDetailListVM.cs @@ -18,21 +18,21 @@ public MajorDetailListVM() NeedPage = false; } - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("Major", GridActionStandardTypesEnum.AddRow, "新建","", dialogWidth: 800), this.MakeStandardAction("Major", GridActionStandardTypesEnum.RemoveRow, "删除","", dialogWidth: 800), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override async Task>> InitGridHeader() { return new List>{ this.MakeGridHeader(x => x.MajorCode).SetEditType(EditTypeEnum.TextBox), this.MakeGridHeader(x => x.MajorType).SetEditType(EditTypeEnum.ComboBox,typeof(MajorTypeEnum).ToListItems(null,true)), - this.MakeGridHeader(x=> x.CityId).SetEditType( EditTypeEnum.ComboBox,DC.Set().GetSelectListItems(Wtm, x=>x.Name)), + this.MakeGridHeader(x=> x.CityId).SetEditType( EditTypeEnum.ComboBox,await DC.Set().GetSelectListItems(Wtm, x=>x.Name)), this.MakeGridHeader(x => x.MajorName).SetEditType(EditTypeEnum.TextBox), this.MakeGridHeader(x => x.TestDate).SetEditType(EditTypeEnum.Datetime, dateType:DateTimeTypeEnum.Time).SetFormat((a,b)=>a.TestDate.ToString("HH:mm:ss")), this.MakeGridHeader(x => x.IsTrue).SetEditType(EditTypeEnum.ComboBox,Utils.GetBoolCombo(BoolComboTypes.YesNo, selectText:Wtm.Localizer?["Sys.PleaseSelect"])), @@ -41,12 +41,12 @@ protected override IEnumerable> InitGridHeader() }; } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .Where(x=>Searcher.SchoolId == x.SchoolId) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorImportVM.cs index 8e4245ee5..8adba0303 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -23,10 +23,10 @@ public partial class MajorTemplateVM : BaseTemplateVM [Display(Name = "所属学校")] public ExcelPropety School_Excel = ExcelPropety.CreateProperty(x => x.SchoolId); - protected override void InitVM() + protected override async Task InitVM() { School_Excel.DataType = ColumnDataType.ComboBox; - School_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); + School_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorListVM.cs index 82320d78b..35c6be051 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorListVM.cs @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.MajorVMs { public partial class MajorListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("Major", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"", dialogWidth: 800), this.MakeStandardAction("Major", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "", dialogWidth: 800), @@ -25,13 +25,13 @@ protected override List InitGridAction() this.MakeStandardAction("Major", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "", dialogWidth: 800), this.MakeStandardAction("Major", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "", dialogWidth: 800), this.MakeStandardAction("Major", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], ""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.MajorCode), this.MakeGridHeader(x => x.MajorName), this.MakeGridHeader(x => x.MajorType), @@ -39,16 +39,16 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.SchoolName_view), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { - var query = DC.Set() + var query = (await DC.Set() .CheckContain(Searcher.Remark, x=>x.Remark) .CheckEqual(Searcher.SchoolId, x=>x.SchoolId) .CheckWhere(Searcher.SelectedStudentMajorsIDs,x=>DC.Set().Where(y=>Searcher.SelectedStudentMajorsIDs.Contains(y.StudentId)).Select(z=>z.MajorId).Contains(x.ID)) - .DPWhere(Wtm, x=>x.SchoolId) + .DPWhere(Wtm, x=>x.SchoolId)) .Select(x => new Major_View { ID = x.ID, diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorSearcher.cs index d8ed3e0e6..2c6cc0465 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorSearcher.cs @@ -20,9 +20,9 @@ public partial class MajorSearcher : BaseSearcher [Display(Name = "学生")] public List SelectedStudentMajorsIDs { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - AllStudentMajorss = DC.Set().GetSelectListItems(Wtm, y => y.Name); + AllStudentMajorss = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorVM.cs index ec86a3203..f20c66b4e 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/MajorVMs/MajorVM.cs @@ -24,14 +24,14 @@ public MajorVM() SetInclude(x => x.StudentMajors); } - protected override void InitVM() + protected override async Task InitVM() { - AllSchools = DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); - AllStudentMajorss = DC.Set().GetSelectListItems(Wtm, y => y.Name); + AllSchools = await DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); + AllStudentMajorss = await DC.Set().GetSelectListItems(Wtm, y => y.Name); SelectedStudentMajorsIDs = Entity.StudentMajors?.Select(x => x.StudentId).ToList(); } - public override void DoAdd() + public override async Task DoAdd() { Entity.StudentMajors = new List(); if (SelectedStudentMajorsIDs != null) @@ -42,10 +42,10 @@ public override void DoAdd() } } - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { Entity.StudentMajors = new List(); if(SelectedStudentMajorsIDs != null ) @@ -53,12 +53,12 @@ public override void DoEdit(bool updateAllFields = false) SelectedStudentMajorsIDs.ForEach(x => Entity.StudentMajors.Add(new StudentMajor { ID = Guid.NewGuid(), StudentId = x })); } - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiBatchVM.cs index b25e755cf..3e457ea6a 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiBatchVM.cs @@ -26,7 +26,7 @@ public PatientApiBatchVM() public class PatientApi_BatchEdit : BaseVM { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiImportVM.cs index 4e5010a13..60747bd62 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -28,12 +28,12 @@ public partial class PatientApiTemplateVM : BaseTemplateVM [Display(Name = "所属医院")] public ExcelPropety Hospital_Excel = ExcelPropety.CreateProperty(x => x.HospitalId); - protected override void InitVM() + protected override async Task InitVM() { Location_Excel.DataType = ColumnDataType.ComboBox; - Location_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Location_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); Hospital_Excel.DataType = ColumnDataType.ComboBox; - Hospital_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Hospital_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiListVM.cs index 651601e7e..8603a4f78 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -15,9 +15,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.PatientVMs public partial class PatientApiListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.PatientName), this.MakeGridHeader(x => x.IdNumber), this.MakeGridHeader(x => x.Gender), @@ -28,7 +28,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.PhotoId).SetFormat(PhotoIdFormat), this.MakeGridHeader(x => x.VirtusName_view), this.MakeGridHeaderAction(width: 200) - }; + }); } private List PhotoIdFormat(PatientApi_View entity, object val) { @@ -40,7 +40,7 @@ private List PhotoIdFormat(PatientApi_View entity, object val) } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .Select(x => new PatientApi_View @@ -57,7 +57,7 @@ public override IOrderedQueryable GetSearchQuery() VirtusName_view = x.Viruses.Select(y=>y.Virus.VirtusName).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiSearcher.cs index 964fa82f2..b82084335 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiSearcher.cs @@ -13,7 +13,7 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.PatientVMs public partial class PatientApiSearcher : BaseSearcher { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiVM.cs index f791cf213..22483ad6d 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientApiVM.cs @@ -21,23 +21,23 @@ public PatientApiVM() SetInclude(x => x.Viruses); } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientBatchVM.cs index 5d7625e06..fd4f09161 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -26,8 +26,9 @@ public PatientBatchVM() public class Patient_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientImportVM.cs index 0b221d2e2..5d1789f12 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -28,12 +28,12 @@ public partial class PatientTemplateVM : BaseTemplateVM [Display(Name = "所属医院")] public ExcelPropety Hospital_Excel = ExcelPropety.CreateProperty(x => x.HospitalId); - protected override void InitVM() + protected override async Task InitVM() { Location_Excel.DataType = ColumnDataType.ComboBox; - Location_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Location_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); Hospital_Excel.DataType = ColumnDataType.ComboBox; - Hospital_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Hospital_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientListVM.cs index f739adddd..4740bf7bb 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.PatientVMs { public partial class PatientListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("Patient", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"", dialogWidth: 800), this.MakeStandardAction("Patient", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "", dialogWidth: 800), @@ -26,13 +26,13 @@ protected override List InitGridAction() this.MakeStandardAction("Patient", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "", dialogWidth: 800), this.MakeStandardAction("Patient", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "", dialogWidth: 800), this.MakeStandardAction("Patient", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], ""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.PatientName), this.MakeGridHeader(x => x.IdNumber), this.MakeGridHeader(x => x.Gender), @@ -43,7 +43,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.PhotoId).SetFormat(PhotoIdFormat), this.MakeGridHeader(x => x.VirtusName_view), this.MakeGridHeaderAction(width: 200) - }; + }); } private List PhotoIdFormat(Patient_View entity, object val) { @@ -55,7 +55,7 @@ private List PhotoIdFormat(Patient_View entity, object val) } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .Select(x => new Patient_View @@ -72,7 +72,7 @@ public override IOrderedQueryable GetSearchQuery() VirtusName_view = x.Viruses.Select(y=>y.Virus.VirtusName).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientSearcher.cs index 990dc98dd..8de9a671b 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientSearcher.cs @@ -13,7 +13,7 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.PatientVMs public partial class PatientSearcher : BaseSearcher { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientVM.cs index 459bcd0a6..c302bfe63 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/PatientVMs/PatientVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -26,15 +26,15 @@ public PatientVM() SetInclude(x => x.Viruses); } - protected override void InitVM() + protected override async Task InitVM() { - AllLocations = DC.Set().GetSelectListItems(Wtm, y => y.Name); - AllHospitals = DC.Set().GetSelectListItems(Wtm, y => y.Name); - AllVirusess = DC.Set().GetSelectListItems(Wtm, y => y.VirtusName); + AllLocations = await DC.Set().GetSelectListItems(Wtm, y => y.Name); + AllHospitals = await DC.Set().GetSelectListItems(Wtm, y => y.Name); + AllVirusess = await DC.Set().GetSelectListItems(Wtm, y => y.VirtusName); SelectedVirusesIDs = Entity.Viruses?.Select(x => x.VirusId.ToString()).ToList(); } - public override void DoAdd() + public override async Task DoAdd() { Entity.Viruses = new List(); if (SelectedVirusesIDs != null) @@ -47,10 +47,10 @@ public override void DoAdd() } } - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { Entity.Viruses = new List(); if(SelectedVirusesIDs != null ) @@ -63,12 +63,12 @@ public override void DoEdit(bool updateAllFields = false) } } - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiBatchVM.cs index 5de8d0791..55d9eee55 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiBatchVM.cs @@ -26,7 +26,7 @@ public SchoolApiBatchVM() public class SchoolApi_BatchEdit : BaseVM { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiImportVM.cs index d451f3357..e968b1e35 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiImportVM.cs @@ -21,7 +21,7 @@ public partial class SchoolApiTemplateVM : BaseTemplateVM [Display(Name = "备注")] public ExcelPropety Remark_Excel = ExcelPropety.CreateProperty(x => x.Remark); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiListVM.cs index 66230878e..94f6d4c8a 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiListVM.cs @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.SchoolVMs { public partial class SchoolApiListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("School", GridActionStandardTypesEnum.Create, "新建","", dialogWidth: 800), this.MakeStandardAction("School", GridActionStandardTypesEnum.Edit, "修改","", dialogWidth: 800), @@ -25,22 +25,22 @@ protected override List InitGridAction() this.MakeStandardAction("School", GridActionStandardTypesEnum.BatchDelete, "批量删除","", dialogWidth: 800), this.MakeStandardAction("School", GridActionStandardTypesEnum.Import, "导入","", dialogWidth: 800), this.MakeStandardAction("School", GridActionStandardTypesEnum.ExportExcel, "导出",""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.SchoolCode), this.MakeGridHeader(x => x.SchoolName), this.MakeGridHeader(x => x.SchoolType), this.MakeGridHeader(x => x.Remark), this.MakeGridHeader(x=>x.Majors), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.SchoolCode, x=>x.SchoolCode) @@ -55,7 +55,7 @@ public override IOrderedQueryable GetSearchQuery() Majors = null }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiSearcher.cs index 505f3c865..635d73c8a 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiSearcher.cs @@ -17,7 +17,7 @@ public partial class SchoolApiSearcher : BaseSearcher [Display(Name = "学校名称")] public String SchoolName { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiVM.cs index 97053b096..73084ac36 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolApiVM.cs @@ -17,23 +17,23 @@ public SchoolApiVM() { } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolBatchVM.cs index e62354f33..6c6263173 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolBatchVM.cs @@ -30,7 +30,7 @@ public class School_BatchEdit : BaseVM public string SchoolCode { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolImportVM.cs index 103091f55..d70d45ca5 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolImportVM.cs @@ -36,7 +36,7 @@ public class SchoolTemplateVM : BaseTemplateVM [Display(Name = "专业类型")] public ExcelPropety MajorType_Excel = ExcelPropety.CreateProperty(x => x.Majors[0].MajorType); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolListVM.cs index 1aa04a6a0..5117a28f6 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolListVM.cs @@ -19,9 +19,9 @@ public SchoolListVM() //NeedPage = false; } - protected override void InitVM() + protected override async Task InitVM() { - CityTree = DC.Set().GetTreeSelectListItems(Wtm, x => x.Name + "15.0.1-/1"); + CityTree = await DC.Set().GetTreeSelectListItems(Wtm, x => x.Name + "15.0.1-/1"); } public override string SetFullRowBgColor(object entity) @@ -37,9 +37,9 @@ public override string SetFullRowBgColor(object entity) } } - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("School", GridActionStandardTypesEnum.Create, "新建","", dialogWidth: 800), this.MakeStandardAction("School", GridActionStandardTypesEnum.Edit, "修改","", dialogWidth: 800).SetHideOnToolBar(false).SetPromptMessage("你确定要修改么?").SetButtonClass("layui-btn-normal"), @@ -56,12 +56,12 @@ protected override List InitGridAction() this.MakeStandardAction("School", GridActionStandardTypesEnum.BatchEdit, "批量修改","", dialogWidth: 800), this.MakeStandardAction("School", GridActionStandardTypesEnum.SimpleBatchDelete, "批量删除","", dialogWidth: 800), }) - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.SchoolCode), this.MakeGridHeader(x => x.SchoolName), this.MakeGridHeader(x => x.SchoolType), @@ -70,19 +70,19 @@ protected override IEnumerable> InitGridHeader() }).SetHeader("测试").SetDisableExport(), this.MakeGridHeader(x => x.Remark), this.MakeGridHeaderAction(width: 500) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { - var query = DC.Set() + var query = (await (await (await DC.Set() .CheckContain(Searcher.SchoolCode, x => x.SchoolCode) .CheckContain(Searcher.SchoolName, x => x.SchoolName) .CheckEqual(Searcher.SchoolType, x => x.SchoolType) .CheckEqual(Searcher.CityId, x=>x.CityId) - .DPWhere(Wtm, x => x.ID) - .DPWhere(Wtm, x=>x.Majors[0].SchoolId) - .DPWhere(Wtm, x=>x.Majors[0].School.Majors[0].School.ID) + .DPWhere(Wtm, x => x.ID)) + .DPWhere(Wtm, x=>x.Majors[0].SchoolId)) + .DPWhere(Wtm, x=>x.Majors[0].School.Majors[0].School.ID)) .Select(x => new School_View { ID = x.ID, diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolListVM2.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolListVM2.cs index e55847078..99de14861 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolListVM2.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolListVM2.cs @@ -18,18 +18,18 @@ public SchoolListVM2() DetailGridPrix = "EntityList"; } - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("School", GridActionStandardTypesEnum.AddRow, "新建","", dialogWidth: 800), this.MakeStandardAction("School", GridActionStandardTypesEnum.RemoveRow, "删除","", dialogWidth: 800), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.SchoolCode).SetEditType(EditTypeEnum.TextBox), this.MakeGridHeader(x => x.SchoolName).SetEditType(EditTypeEnum.TextBox), this.MakeGridHeader(x => x.SchoolType).SetEditType(EditTypeEnum.ComboBox,typeof(SchoolTypeEnum).ToListItems(null,true)), @@ -38,10 +38,10 @@ protected override IEnumerable> InitGridHeader() }).SetHeader("测试"), this.MakeGridHeader(x => x.Remark).SetEditType(EditTypeEnum.TextBox), this.MakeGridHeaderAction(width: 500) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.SchoolCode, x => x.SchoolCode) @@ -56,7 +56,7 @@ public override IOrderedQueryable GetSearchQuery() Remark = x.Remark, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolSearcher.cs index 02a0d5196..ceaaf12b1 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolSearcher.cs @@ -21,7 +21,7 @@ public class SchoolSearcher : BaseSearcher public List test { get; set; } = new List(); public Guid? CityId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { //var test = DC.Set().ToList(); } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolVM.cs index f0c2968bd..bf366dc30 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SchoolVMs/SchoolVM.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Demo.Models; @@ -19,9 +20,10 @@ public SchoolVM() } - protected override void InitVM() + protected override Task InitVM() { MajorList.CopyContext(this); + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoBatchVM.cs index c299648ea..2e95dd050 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoBatchVM.cs @@ -26,7 +26,7 @@ public SoftFacInfoBatchVM() public class SoftFacInfo_BatchEdit : BaseVM { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoImportVM.cs index beb90c937..adddb74f5 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoImportVM.cs @@ -19,7 +19,7 @@ public partial class SoftFacInfoTemplateVM : BaseTemplateVM [Display(Name = " 附加信息")] public ExcelPropety Description_Excel = ExcelPropety.CreateProperty(x => x.Description); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoListVM.cs index fc9b27cd3..0e71b7449 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.SoftFacInfoVMs { public partial class SoftFacInfoListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("SoftFacInfo", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"", dialogWidth: 800), this.MakeStandardAction("SoftFacInfo", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "", dialogWidth: 800), @@ -25,20 +25,20 @@ protected override List InitGridAction() this.MakeStandardAction("SoftFacInfo", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "", dialogWidth: 800), this.MakeStandardAction("SoftFacInfo", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "", dialogWidth: 800), this.MakeStandardAction("SoftFacInfo", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], ""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.IsoName), this.MakeGridHeader(x => x.EXEVerSion), this.MakeGridHeader(x => x.Description), this.MakeGridHeader(x => x.EXEFileID).SetFormat(EXEFileIDFormat), this.MakeGridHeader(x => x.IsoName_view), this.MakeGridHeaderAction(width: 200) - }; + }); } private List EXEFileIDFormat(SoftFacInfo_View entity, object val) { @@ -50,7 +50,7 @@ private List EXEFileIDFormat(SoftFacInfo_View entity, object v } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.IsoName, x=>x.IsoName) @@ -67,7 +67,7 @@ public override IOrderedQueryable GetSearchQuery() IsoName_view = x.iSOTypes.Select(y=>y.isoType.IsoName).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoSearcher.cs index 5fa9e1d93..c15581f8d 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoSearcher.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -22,9 +22,9 @@ public partial class SoftFacInfoSearcher : BaseSearcher [Display(Name = "ISO版本")] public List SelectediSOTypesIDs { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - AlliSOTypess = DC.Set().GetSelectListItems(Wtm, y => y.IsoName); + AlliSOTypess = await DC.Set().GetSelectListItems(Wtm, y => y.IsoName); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoVM.cs index 43739e905..d9e214c08 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/SoftFacInfoVMs/SoftFacInfoVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -21,13 +21,13 @@ public SoftFacInfoVM() SetInclude(x => x.iSOTypes); } - protected override void InitVM() + protected override async Task InitVM() { - AlliSOTypess = DC.Set().GetSelectListItems(Wtm, y => y.IsoName); + AlliSOTypess = await DC.Set().GetSelectListItems(Wtm, y => y.IsoName); SelectediSOTypesIDs = Entity.iSOTypes?.Select(x => x.isoTypeID).ToList(); } - public override void DoAdd() + public override async Task DoAdd() { Entity.iSOTypes = new List(); if (SelectediSOTypesIDs != null) @@ -38,10 +38,10 @@ public override void DoAdd() } } - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { Entity.iSOTypes = new List(); if(SelectediSOTypesIDs != null ) @@ -49,12 +49,12 @@ public override void DoEdit(bool updateAllFields = false) SelectediSOTypesIDs.ForEach(x => Entity.iSOTypes.Add(new ISOEXE { ID = Guid.NewGuid(), isoTypeID = x })); } - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiBatchVM.cs index cdc07ddec..5e7b166d6 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiBatchVM.cs @@ -34,7 +34,7 @@ public class StudentApi_BatchEdit : BaseVM [Display(Name = "日期")] public DateRange EnRollDate { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiImportVM.cs index 793adc054..57baff248 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiImportVM.cs @@ -33,7 +33,7 @@ public partial class StudentApiTemplateVM : BaseTemplateVM [Display(Name = "日期")] public ExcelPropety EnRollDate_Excel = ExcelPropety.CreateProperty(x => x.EnRollDate); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiListVM.cs index aae7fd73c..002217f5d 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.StudentVMs public partial class StudentApiListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.ID), this.MakeGridHeader(x => x.Password), this.MakeGridHeader(x => x.Email), @@ -30,7 +30,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.EnRollDate), this.MakeGridHeader(x => x.MajorName_view), this.MakeGridHeaderAction(width: 200) - }; + }); } private List PhotoIdFormat(StudentApi_View entity, object val) { @@ -42,7 +42,7 @@ private List PhotoIdFormat(StudentApi_View entity, object val) } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.ID, x=>x.ID) @@ -64,7 +64,7 @@ public override IOrderedQueryable GetSearchQuery() MajorName_view = x.StudentMajor.Select(y=>y.Major.MajorName).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiSearcher.cs index b25b718cf..fc0d3c982 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiSearcher.cs @@ -19,7 +19,7 @@ public partial class StudentApiSearcher : BaseSearcher [Display(Name = "日期")] public DateRange EnRollDate { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiVM.cs index d4bb1c115..286da2a7f 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentApiVM.cs @@ -18,23 +18,23 @@ public StudentApiVM() SetInclude(x => x.StudentMajor); } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentBatchVM.cs index 2612b6ddf..1b79ed21c 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentBatchVM.cs @@ -37,9 +37,9 @@ public class Student_BatchEdit : BaseVM public DateTime? EnRollDate { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - AllStudentMajors = DC.Set().GetSelectListItems(Wtm, y => y.MajorName); + AllStudentMajors = await DC.Set().GetSelectListItems(Wtm, y => y.MajorName); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentImportVM.cs index 3c1c850c0..2e037e9f1 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentImportVM.cs @@ -33,7 +33,7 @@ public partial class StudentTemplateVM : BaseTemplateVM [Display(Name = "日期")] public ExcelPropety EnRollDate_Excel = ExcelPropety.CreateProperty(x => x.EnRollDate); - protected override void InitVM() + protected override async Task InitVM() { } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentListVM.cs index bdcc66548..917fb70cd 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.StudentVMs { public partial class StudentListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("Student", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"", dialogWidth: 800), this.MakeStandardAction("Student", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "", dialogWidth: 800), @@ -25,13 +25,13 @@ protected override List InitGridAction() this.MakeStandardAction("Student", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "", dialogWidth: 800), this.MakeStandardAction("Student", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "", dialogWidth: 800), this.MakeStandardAction("Student", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], ""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.ID), this.MakeGridHeader(x => x.Password), this.MakeGridHeader(x => x.Email), @@ -45,7 +45,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.EnRollDate), this.MakeGridHeader(x => x.MajorName_view), this.MakeGridHeaderAction(width: 200) - }; + }); } private List PhotoIdFormat(Student_View entity, object val) { @@ -57,7 +57,7 @@ private List PhotoIdFormat(Student_View entity, object val) } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.Password, x=>x.Password) @@ -80,7 +80,7 @@ public override IOrderedQueryable GetSearchQuery() MajorName_view = x.StudentMajor.Select(y=>y.Major.MajorName).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentSearchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentSearchVM.cs index 801086535..41167d9ee 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentSearchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentSearchVM.cs @@ -17,7 +17,7 @@ public StudentSearchVM() InValidList = new StudentListVM(); } - protected override void InitVM() + protected override async Task InitVM() { ValidList.CopyContext(this); InValidList.CopyContext(this); diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentSearcher.cs index c85baae9d..d41664f4b 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentSearcher.cs @@ -22,9 +22,9 @@ public partial class StudentSearcher : BaseSearcher [Display(Name = "专业")] public List SelectedStudentMajorIDs { get; set; } public int? Enroll { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - AllStudentMajors = DC.Set().GetSelectListItems(Wtm, y => y.MajorName); + AllStudentMajors = await DC.Set().GetSelectListItems(Wtm, y => y.MajorName); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentVM.cs index 140ed3a8e..8615eb00a 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/StudentVMs/StudentVM.cs @@ -23,13 +23,13 @@ public StudentVM() MajorList = new MajorListVM(); } - protected override void InitVM() + protected override async Task InitVM() { - AllStudentMajors = DC.Set().GetSelectListItems(Wtm, y => y.MajorName); + AllStudentMajors = await DC.Set().GetSelectListItems(Wtm, y => y.MajorName); //SelectedStudentMajorIDs = Entity.StudentMajor?.Select(x => x.MajorId).ToList(); } - //public override void DoAdd() + //public override async Task DoAdd() //{ // Entity.StudentMajor = new List(); // if (SelectedStudentMajorIDs != null) @@ -40,10 +40,10 @@ protected override void InitVM() // } // } - // base.DoAdd(); + // await base.DoAdd(); //} - //public override void DoEdit(bool updateAllFields = false) + //public override async Task DoEdit(bool updateAllFields = false) //{ // Entity.StudentMajor = new List(); // if(SelectedStudentMajorIDs != null ) @@ -52,14 +52,14 @@ protected override void InitVM() // } // using (var trans = DC.BeginTransaction()) // { - // base.DoEdit(updateAllFields); + // await base.DoEdit(updateAllFields); // trans.Commit(); // } //} - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestBatchVM.cs index 362f266b3..a0c73375a 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestBatchVM.cs @@ -26,7 +26,7 @@ public TreeTestBatchVM() public class TreeTest_BatchEdit : BaseVM { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestImportVM.cs index f7ea31d8a..577cff590 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -19,10 +19,10 @@ public partial class TreeTestTemplateVM : BaseTemplateVM [Display(Name = "_Admin.Parent")] public ExcelPropety Parent_Excel = ExcelPropety.CreateProperty(x => x.ParentId); - protected override void InitVM() + protected override async Task InitVM() { Parent_Excel.DataType = ColumnDataType.ComboBox; - Parent_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Parent_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestListVM.cs index 3d382169b..4827e246d 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.TreeTestVMs { public partial class TreeTestListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("TreeTest", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"", dialogWidth: 800), this.MakeStandardAction("TreeTest", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "", dialogWidth: 800), @@ -25,21 +25,21 @@ protected override List InitGridAction() this.MakeStandardAction("TreeTest", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "", dialogWidth: 800), this.MakeStandardAction("TreeTest", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "", dialogWidth: 800), this.MakeStandardAction("TreeTest", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], ""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name), this.MakeGridHeader(x => x.Test), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.Name, x=>x.Name) @@ -51,7 +51,7 @@ public override IOrderedQueryable GetSearchQuery() Name_view = x.Parent.Name, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestSearcher.cs index bc98adc89..116f9e3f3 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestSearcher.cs @@ -15,7 +15,7 @@ public partial class TreeTestSearcher : BaseSearcher [Display(Name = "名称")] public String Name { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestVM.cs index 191caa3fa..d67499266 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/TreeTestVMs/TreeTestVM.cs @@ -19,25 +19,25 @@ public TreeTestVM() SetInclude(x => x.Parent); } - protected override void InitVM() + protected override async Task InitVM() { - AllParents = DC.Set().GetSelectListItems(Wtm, y => y.Name); + AllParents = await DC.Set().GetSelectListItems(Wtm, y => y.Name); ListVM = Wtm.CreateVM(); } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiBatchVM.cs index c1969ee58..05dc31e1d 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiBatchVM.cs @@ -36,7 +36,7 @@ public class WxReportDataApi_BatchEdit : BaseVM [Display(Name = "扩展字段")] public Double? Extend10 { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiImportVM.cs index 73790056a..d9c54a341 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -89,10 +89,10 @@ public partial class WxReportDataApiTemplateVM : BaseTemplateVM [Display(Name = "扩展字段")] public ExcelPropety Extend10_Excel = ExcelPropety.CreateProperty(x => x.Extend10); - protected override void InitVM() + protected override async Task InitVM() { FrameworkUser_Excel.DataType = ColumnDataType.ComboBox; - FrameworkUser_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + FrameworkUser_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiListVM.cs index 51e1d24e6..ea9f936a0 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.WxReportDataVMs public partial class WxReportDataApiListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.ToWxUser), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeader(x => x.Date), @@ -56,10 +56,10 @@ protected override IEnumerable> InitGridHeader this.MakeGridHeader(x => x.Extend09), this.MakeGridHeader(x => x.Extend10), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckEqual(Searcher.FrameworkUserId, x=>x.FrameworkUserId) @@ -110,7 +110,7 @@ public override IOrderedQueryable GetSearchQuery() Extend10 = x.Extend10, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiSearcher.cs index f286eea98..1607c02bb 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiSearcher.cs @@ -23,7 +23,7 @@ public partial class WxReportDataApiSearcher : BaseSearcher [Display(Name = "扩展字段")] public Double? Extend10 { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiVM.cs index 845235b13..93307960e 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataApiVM.cs @@ -18,23 +18,23 @@ public WxReportDataApiVM() SetInclude(x => x.FrameworkUser); } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataBatchVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataBatchVM.cs index 3b17453c6..feb9ddd93 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -36,8 +36,9 @@ public class WxReportData_BatchEdit : BaseVM [Display(Name = "扩展字段")] public Double? Extend09 { get; set; } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataImportVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataImportVM.cs index 797f5874d..88f4caaa8 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataImportVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -89,10 +89,10 @@ public partial class WxReportDataTemplateVM : BaseTemplateVM [Display(Name = "扩展字段")] public ExcelPropety Extend10_Excel = ExcelPropety.CreateProperty(x => x.Extend10); - protected override void InitVM() + protected override async Task InitVM() { FrameworkUser_Excel.DataType = ColumnDataType.ComboBox; - FrameworkUser_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + FrameworkUser_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataListVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataListVM.cs index 31f853e54..b9cbffb76 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataListVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.WxReportDataVMs { public partial class WxReportDataListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("WxReportData", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"", dialogWidth: 800), this.MakeStandardAction("WxReportData", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "", dialogWidth: 800), @@ -25,13 +25,13 @@ protected override List InitGridAction() this.MakeStandardAction("WxReportData", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "", dialogWidth: 800), this.MakeStandardAction("WxReportData", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "", dialogWidth: 800), this.MakeStandardAction("WxReportData", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], ""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.ToWxUser), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeader(x => x.Date), @@ -71,10 +71,10 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.Extend09), this.MakeGridHeader(x => x.Extend10), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckEqual(Searcher.FrameworkUserId, x=>x.FrameworkUserId) @@ -125,7 +125,7 @@ public override IOrderedQueryable GetSearchQuery() Extend10 = x.Extend10, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataSearcher.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataSearcher.cs index b16c108da..9a3329036 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataSearcher.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataSearcher.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -24,9 +24,9 @@ public partial class WxReportDataSearcher : BaseSearcher [Display(Name = "扩展字段")] public Double? Extend10 { get; set; } - protected override void InitVM() + protected override async Task InitVM() { - AllFrameworkUsers = DC.Set().GetSelectListItems(Wtm, y => y.Name); + AllFrameworkUsers = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataVM.cs b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataVM.cs index b06c9c76b..9119df949 100644 --- a/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataVM.cs +++ b/demo/WalkingTec.Mvvm.Demo/ViewModels/WxReportDataVMs/WxReportDataVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -19,24 +19,24 @@ public WxReportDataVM() SetInclude(x => x.FrameworkUser); } - protected override void InitVM() + protected override async Task InitVM() { - AllFrameworkUsers = DC.Set().GetSelectListItems(Wtm, y => y.Name); + AllFrameworkUsers = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git "a/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215BatchVM.cs" "b/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215BatchVM.cs" index 03ed541f5..fa037a587 100644 --- "a/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215BatchVM.cs" +++ "b/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215BatchVM.cs" @@ -26,7 +26,7 @@ public 不要用中文模型名BatchVM() public class 不要用中文模型名_BatchEdit : BaseVM { - protected override void InitVM() + protected override async Task InitVM() { } diff --git "a/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ImportVM.cs" "b/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ImportVM.cs" index a5022a1c4..9888bf0ce 100644 --- "a/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ImportVM.cs" +++ "b/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ImportVM.cs" @@ -17,7 +17,7 @@ public partial class 不要用中文模型名TemplateVM : BaseTemplateVM public ExcelPropety 中文_Excel = ExcelPropety.CreateProperty<不要用中文模型名>(x => x.中文); public ExcelPropety 模型名_Excel = ExcelPropety.CreateProperty<不要用中文模型名>(x => x.模型名); - protected override void InitVM() + protected override async Task InitVM() { } diff --git "a/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ListVM.cs" "b/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ListVM.cs" index 5947598e4..827a372f0 100644 --- "a/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ListVM.cs" +++ "b/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215ListVM.cs" @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -13,9 +13,9 @@ namespace WalkingTec.Mvvm.Demo.ViewModels.不要用中文模型名VMs { public partial class 不要用中文模型名ListVM : BasePagedListVM<不要用中文模型名_View, 不要用中文模型名Searcher> { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("不要用中文模型名", GridActionStandardTypesEnum.Create, "新建","", dialogWidth: 800), this.MakeStandardAction("不要用中文模型名", GridActionStandardTypesEnum.Edit, "修改","", dialogWidth: 800), @@ -25,21 +25,21 @@ protected override List InitGridAction() this.MakeStandardAction("不要用中文模型名", GridActionStandardTypesEnum.BatchDelete, "批量删除","", dialogWidth: 800), this.MakeStandardAction("不要用中文模型名", GridActionStandardTypesEnum.Import, "导入","", dialogWidth: 800), this.MakeStandardAction("不要用中文模型名", GridActionStandardTypesEnum.ExportExcel, "导出",""), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.不要), this.MakeGridHeader(x => x.用), this.MakeGridHeader(x => x.中文), this.MakeGridHeader(x => x.模型名), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable<不要用中文模型名_View> GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set<不要用中文模型名>() .CheckContain(Searcher.不要, x=>x.不要) @@ -55,7 +55,7 @@ public override IOrderedQueryable<不要用中文模型名_View> GetSearchQuery( 模型名 = x.模型名, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git "a/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Searcher.cs" "b/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Searcher.cs" index c99d2bbf1..abe3ca827 100644 --- "a/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Searcher.cs" +++ "b/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215Searcher.cs" @@ -17,7 +17,7 @@ public partial class 不要用中文模型名Searcher : BaseSearcher public DateTime? 中文 { get; set; } public Boolean? 模型名 { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git "a/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VM.cs" "b/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VM.cs" index bf2f58056..6722fb198 100644 --- "a/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VM.cs" +++ "b/demo/WalkingTec.Mvvm.Demo/ViewModels/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VMs/\344\270\215\350\246\201\347\224\250\344\270\255\346\226\207\346\250\241\345\236\213\345\220\215VM.cs" @@ -17,23 +17,23 @@ public 不要用中文模型名VM() { } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Demo/Views/Home/Layout.cshtml b/demo/WalkingTec.Mvvm.Demo/Views/Home/Layout.cshtml index 8fa62c2da..7d99cabfb 100644 --- a/demo/WalkingTec.Mvvm.Demo/Views/Home/Layout.cshtml +++ b/demo/WalkingTec.Mvvm.Demo/Views/Home/Layout.cshtml @@ -65,14 +65,14 @@ @if (tenants.Count() > 0) { - var current = Model?.Wtm?.LoginUserInfo?.CurrentTenant ==Model?.Wtm?.LoginUserInfo?.TenantCode ? Model.Localizer["_Admin.TenantHost"] : tenants.Where(x=>x.Value.ToString() == Model?.Wtm?.LoginUserInfo?.CurrentTenant).Select(x=>x.Text).SingleOrDefault(); + var current = Model?.(await Wtm?.GetLoginUserInfo ())?.CurrentTenant ==Model?.(await Wtm?.GetLoginUserInfo ())?.TenantCode ? Model.Localizer["_Admin.TenantHost"] : tenants.Where(x=>x.Value.ToString() == Model?.(await Wtm?.GetLoginUserInfo ())?.CurrentTenant).Select(x=>x.Text).SingleOrDefault();
  • @current
    - +
    @foreach (var item in tenants) { diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/AccountController.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/AccountController.cs index 0388c1f4e..6cecf3b93 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/AccountController.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/AccountController.cs @@ -10,6 +10,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -32,7 +33,7 @@ public class AccountController : BaseApiController public async Task Login([FromForm] string account, [FromForm] string password, [FromForm] string tenant = null, [FromForm] bool rememberLogin = false) { - var user = Wtm.DoLogin(account, password, tenant); + var user = await Wtm.DoLogin(account, password, tenant); if (user == null) { return BadRequest(Localizer["Sys.LoginFailed"].Value); @@ -40,7 +41,7 @@ public async Task Login([FromForm] string account, [FromForm] str //其他属性可以通过user.Attributes["aaa"] = "bbb"方式赋值 - Wtm.LoginUserInfo = user; + Wtm.SetLoginUserInfo (user); AuthenticationProperties properties = null; if (rememberLogin) @@ -52,9 +53,9 @@ public async Task Login([FromForm] string account, [FromForm] str }; } - var principal = Wtm.LoginUserInfo.CreatePrincipal(); + var principal = (await Wtm.GetLoginUserInfo ()).CreatePrincipal(); await Wtm.HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, properties); - return CheckUserInfo(); + return await CheckUserInfo(); } @@ -62,7 +63,7 @@ public async Task Login([FromForm] string account, [FromForm] str [HttpPost("[action]")] public async Task LoginJwt(SimpleLogin loginInfo) { - var user = Wtm.DoLogin(loginInfo.Account, loginInfo.Password, loginInfo.Tenant); + var user = await Wtm.DoLogin(loginInfo.Account, loginInfo.Password, loginInfo.Tenant); if (user == null) { ModelState.AddModelError(" ", Localizer["Sys.LoginFailed"]); @@ -71,9 +72,9 @@ public async Task LoginJwt(SimpleLogin loginInfo) //其他属性可以通过user.Attributes["aaa"] = "bbb"方式赋值 - Wtm.LoginUserInfo = user; + Wtm.SetLoginUserInfo (user); var authService = HttpContext.RequestServices.GetService(typeof(ITokenService)) as ITokenService; - var token = await authService.IssueTokenAsync(Wtm.LoginUserInfo); + var token = await authService.IssueTokenAsync((await Wtm.GetLoginUserInfo ())); return Content(JsonSerializer.Serialize(token), "application/json"); } @@ -81,28 +82,28 @@ public async Task LoginJwt(SimpleLogin loginInfo) [HttpGet("[action]")] public async Task LoginRemote([FromQuery] string _remotetoken) { - if (Wtm?.LoginUserInfo != null) + if ((await Wtm?.GetLoginUserInfo ()) != null) { - var principal = Wtm.LoginUserInfo.CreatePrincipal(); + var principal = (await Wtm.GetLoginUserInfo ()).CreatePrincipal(); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, null); } - return CheckUserInfo(); + return await CheckUserInfo(); } [AllRights] [HttpGet("[action]")] - public IActionResult SetTenant([FromQuery] string tenant) + public async Task SetTenant ([FromQuery] string tenant) { - bool rv = Wtm.SetCurrentTenant(tenant == "" ? null : tenant); + bool rv = await Wtm.SetCurrentTenant(tenant == "" ? null : tenant); return Ok(rv); } [AllowAnonymous] [HttpPost("[action]")] - public IActionResult Reg(SimpleReg regInfo) + public async Task Reg (SimpleReg regInfo) { - var exist = DC.Set().Any(x => x.ITCode.ToLower() == regInfo.ITCode.ToLower()); + var exist = await DC.Set().AnyAsync(x => x.ITCode.ToLower() == regInfo.ITCode.ToLower()); if (exist == true) { @@ -110,7 +111,7 @@ public IActionResult Reg(SimpleReg regInfo) return BadRequest(ModelState.GetErrorJson()); } - var hasuserrole = DC.Set().Where(x => x.RoleCode == "002").FirstOrDefault(); + var hasuserrole = await DC.Set().Where(x => x.RoleCode == "002").FirstOrDefaultAsync(); FrameworkUser user = new FrameworkUser { ITCode = regInfo.ITCode, @@ -126,10 +127,10 @@ public IActionResult Reg(SimpleReg regInfo) UserCode = user.ITCode, RoleCode = "002" }; - DC.Set().Add(userrole); + await DC.Set().AddAsync(userrole); } - DC.Set().Add(user); - DC.SaveChanges(); + await DC.Set().AddAsync(user); + await DC.SaveChangesAsync(); return Ok(); } @@ -152,18 +153,18 @@ public IActionResult RefreshToken(string refreshToken) [AllRights] [HttpGet("[action]")] - public IActionResult CheckUserInfo(bool IsApi = true) + public async Task CheckUserInfo (bool IsApi = true) { - if (Wtm.LoginUserInfo == null) + if ((await Wtm.GetLoginUserInfo ()) == null) { return BadRequest(); } else { - var forapi = Wtm.LoginUserInfo; + var forapi = (await Wtm.GetLoginUserInfo ()); if (IsApi) { - forapi.SetAttributesForApi(Wtm); + await forapi.SetAttributesForApi(Wtm); } forapi.DataPrivileges = null; forapi.FunctionPrivileges = null; @@ -175,7 +176,7 @@ public IActionResult CheckUserInfo(bool IsApi = true) { forapi.Attributes.Remove("IsMainHost"); } - if (ConfigInfo.HasMainHost && string.IsNullOrEmpty(Wtm.LoginUserInfo.TenantCode) == true) + if (ConfigInfo.HasMainHost && string.IsNullOrEmpty((await Wtm.GetLoginUserInfo ()).TenantCode) == true) { forapi.Attributes.Add("IsMainHost", true); } @@ -190,9 +191,9 @@ public IActionResult CheckUserInfo(bool IsApi = true) [AllRights] [HttpPost("[action]")] - public IActionResult ChangePassword(ChangePasswordVM vm) + public async Task ChangePassword (ChangePasswordVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -202,7 +203,7 @@ public IActionResult ChangePassword(ChangePasswordVM vm) } else { - vm.DoChange(); + await vm.DoChange(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -219,7 +220,7 @@ public IActionResult ChangePassword(ChangePasswordVM vm) [HttpGet("[action]")] public async Task Logout() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { await Wtm.CallAPI("mainhost", "/api/_account/logout", HttpMethodEnum.GET, new { }, 10); return Ok(ConfigInfo.MainHost); @@ -235,73 +236,73 @@ public async Task Logout() [HttpGet("GetFrameworkRoles")] [ActionDescription("GetRoles")] [AllRights] - public IActionResult GetFrameworkRoles() + public async Task GetFrameworkRoles () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_account/GetFrameworkRoles").Result; + return await Request.RedirectCall(Wtm, "/api/_account/GetFrameworkRoles"); } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); } [HttpGet("GetFrameworkGroups")] [ActionDescription("GetGroups")] [AllRights] - public IActionResult GetFrameworkGroups() + public async Task GetFrameworkGroups () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_account/GetFrameworkGroups").Result; + return await Request.RedirectCall(Wtm, "/api/_account/GetFrameworkGroups"); } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetFrameworkGroupsTree")] [ActionDescription("GetGroupsTree")] [AllRights] - public IActionResult GetFrameworkGroupsTree() + public async Task GetFrameworkGroupsTree () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_account/GetFrameworkGroupsTree").Result; + return await Request.RedirectCall(Wtm, "/api/_account/GetFrameworkGroupsTree"); } - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetUserById")] [AllRights] - public IActionResult GetUserById(string keywords) + public async Task GetUserById (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_account/GetUserById").Result; + return await Request.RedirectCall(Wtm, "/api/_account/GetUserById"); } - var users = DC.Set().Where(x => x.ITCode.ToLower().StartsWith(keywords.ToLower())).GetSelectListItems(Wtm, x => x.Name + "(" + x.ITCode + ")", x => x.ITCode); + var users = await DC.Set().Where(x => x.ITCode.ToLower().StartsWith(keywords.ToLower())).GetSelectListItems(Wtm, x => x.Name + "(" + x.ITCode + ")", x => x.ITCode); return Ok(users); } [HttpGet("GetUserByGroup")] [AllRights] - public IActionResult GetUserByGroup(string keywords) + public async Task GetUserByGroup (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetUserByGroup").Result; } - var users = DC.Set().Where(x => x.GroupCode == keywords).Select(x => x.UserCode).ToList(); + var users = await DC.Set().Where(x => x.GroupCode == keywords).Select(x => x.UserCode).ToListAsync(); return Ok(users); } [HttpGet("GetUserByRole")] [AllRights] - public IActionResult GetUserByRole(string keywords) + public async Task GetUserByRole (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_account/GetUserByRole").Result; + return await Request.RedirectCall(Wtm, "/api/_account/GetUserByRole"); } - var users = DC.Set().Where(x => x.RoleCode == keywords).Select(x => x.UserCode).ToList(); + var users = await DC.Set().Where(x => x.RoleCode == keywords).Select(x => x.UserCode).ToListAsync(); return Ok(users); } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/ActionLogController.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/ActionLogController.cs index 122b7bd26..aa77c2ed1 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/ActionLogController.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/ActionLogController.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -18,7 +19,7 @@ public class ActionLogController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(ActionLogSearcher searcher) + public async Task Search(ActionLogSearcher searcher) { if (ModelState.IsValid) { @@ -42,7 +43,7 @@ public ActionLogVM Get(Guid id) [HttpPost("[action]")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -53,7 +54,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -66,17 +67,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(ActionLogSearcher searcher) + public async Task ExportExcel(ActionLogSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -84,7 +85,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/DataPrivilegeController.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/DataPrivilegeController.cs index 0521d7d46..63f63415c 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/DataPrivilegeController.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/DataPrivilegeController.cs @@ -59,7 +59,7 @@ public async Task Add(DataPrivilegeVM vm) } else { - await vm.DoAddAsync(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -82,7 +82,7 @@ public async Task Edit(DataPrivilegeVM vm) } else { - await vm.DoEditAsync(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -108,7 +108,7 @@ public async Task Delete(SimpleDpModel dp) { vm = Wtm.CreateVM(values: x => x.Entity.TableName == dp.ModelName && x.Entity.GroupCode == dp.Id && x.DpType == dp.Type); } - await vm.DoDeleteAsync(); + await vm.DoDelete(); return Ok(1); } @@ -116,13 +116,13 @@ public async Task Delete(SimpleDpModel dp) [AllRights] [HttpGet("[action]")] - public ActionResult GetPrivilegeByTableName(string table) + public async Task GetPrivilegeByTableName (string table) { var AllItems = new List(); var dps =Wtm.DataPrivilegeSettings.Where(x => x.ModelName == table).SingleOrDefault(); if (dps != null) { - AllItems = dps.GetItemList(Wtm); + AllItems = await dps.GetItemList(Wtm); } return Ok(AllItems); } @@ -137,24 +137,24 @@ public ActionResult GetPrivileges() [AllRights] [HttpGet("[action]")] - public IActionResult GetUserGroups() + public async Task GetUserGroups () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_DataPrivilege/GetUserGroups").Result; + return await Request.RedirectCall(Wtm, "/api/_DataPrivilege/GetUserGroups"); } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [AllRights] [HttpGet("[action]")] - public IActionResult GetUserGroupsTree() + public async Task GetUserGroupsTree () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_DataPrivilege/GetUserGroupsTree").Result; + return await Request.RedirectCall(Wtm, "/api/_DataPrivilege/GetUserGroupsTree"); } - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FileApiController.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FileApiController.cs index f3549f710..18f16f1b2 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FileApiController.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FileApiController.cs @@ -23,20 +23,20 @@ public class FileApiController : BaseApiController { [HttpPost("[action]")] [ActionDescription("UploadFile")] - public IActionResult Upload([FromServices] WtmFileProvider fp, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) + public async Task Upload([FromServices] WtmFileProvider fp, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) { var FileData = Request.Form.Files[0]; - var file = fp.Upload(FileData.FileName, FileData.Length, FileData.OpenReadStream(), groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); + var file = await fp.Upload(FileData.FileName, FileData.Length, FileData.OpenReadStream(), groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); return Ok(new { Id = file.GetID(), Name = file.FileName }); } [HttpPost("[action]")] [ActionDescription("UploadPic")] - public IActionResult UploadImage([FromServices] WtmFileProvider fp, int? width = null, int? height = null, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) + public async Task UploadImage([FromServices] WtmFileProvider fp, int? width = null, int? height = null, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) { if (width == null && height == null) { - return Upload(fp, sm, groupName, csName); + return await Upload(fp, sm, groupName, csName); } var FileData = Request.Form.Files[0]; @@ -55,9 +55,9 @@ public IActionResult UploadImage([FromServices] WtmFileProvider fp, int? width = } MemoryStream ms = new MemoryStream(); oimage.Mutate(x => x.Resize(width.Value, height.Value)); - oimage.SaveAsJpeg(ms); + await oimage.SaveAsJpegAsync (ms); ms.Position = 0; - var file = fp.Upload(FileData.FileName, FileData.Length, ms, groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); + var file = await fp.Upload(FileData.FileName, FileData.Length, ms, groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); oimage.Dispose(); ms.Dispose(); @@ -106,7 +106,7 @@ public async Task GetFile([FromServices] WtmFileProvider fp, stri } var ms = new MemoryStream(); oimage.Mutate(x => x.Resize(width.Value, height.Value)); - oimage.SaveAsJpeg(ms); + await oimage.SaveAsJpegAsync (ms); ms.Position = 0; await ms?.CopyToAsync(Response.Body); file.DataStream.Dispose(); @@ -149,7 +149,7 @@ public IActionResult GetFileInfo([FromServices] WtmFileProvider fp, string id, s [Public] public async Task GetUserPhoto([FromServices] WtmFileProvider fp, string id, string csName = null, int? width = null, int? height = null) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Redirect(Wtm.ConfigInfo.MainHost+ Request.Path); } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkGroupController.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkGroupController.cs index 607479b1e..a30113dec 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkGroupController.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkGroupController.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Mvc; @@ -19,11 +20,11 @@ public class FrameworkGroupController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkGroupSearcher searcher) + public async Task Search(FrameworkGroupSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm).Result; + return await Request.RedirectCall(Wtm); } if (ModelState.IsValid) { @@ -47,9 +48,9 @@ public FrameworkGroupVM Get(Guid id) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkGroupVM vm) + public async Task Add(FrameworkGroupVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -59,7 +60,7 @@ public IActionResult Add(FrameworkGroupVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -74,9 +75,9 @@ public IActionResult Add(FrameworkGroupVM vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkGroupVM vm) + public async Task Edit (FrameworkGroupVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -86,7 +87,7 @@ public IActionResult Edit(FrameworkGroupVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -102,7 +103,7 @@ public IActionResult Edit(FrameworkGroupVM vm) [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -110,14 +111,14 @@ public async Task BatchDelete(string[] ids) List GroupCode = new List(); if (ids != null && ids.Count() > 0) { - GroupCode = DC.Set().CheckIDs(new List(ids)).Select(x => x.GroupCode).ToList(); + GroupCode = await DC.Set().CheckIDs(new List(ids)).Select(x => x.GroupCode).ToListAsync(); vm.Ids = ids; } else { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -126,32 +127,32 @@ public async Task BatchDelete(string[] ids) var gr = DC.Set().Where(x => GroupCode.Contains(x.GroupCode)).ToList(); var itcodes = gr.Select(x => x.UserCode).ToArray(); DC.Set().RemoveRange(gr); - DC.SaveChanges(); + await DC.SaveChangesAsync(); await Wtm.RemoveUserCacheByGroup(GroupCode.ToArray()); - Wtm.RemoveGroupCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + Wtm.RemoveGroupCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); return Ok(ids.Count()); } } [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkGroupSearcher searcher) + public async Task ExportExcel (FrameworkGroupSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -161,14 +162,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -185,45 +186,45 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkGroupImportVM vm) + public async Task Import(FrameworkGroupImportVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } else { - Wtm.RemoveGroupCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + Wtm.RemoveGroupCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); return Ok(vm.EntityList.Count); } } [AllRights] [HttpGet("[action]")] - public IActionResult GetParents() + public async Task GetParents () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkgroup/GetParents").Result; } - var data = DC.Set().GetSelectListItems(Wtm, x => x.GroupName); + var data = await DC.Set().GetSelectListItems(Wtm, x => x.GroupName); return Ok(data); } [AllRights] [HttpGet("[action]")] - public IActionResult GetParentsTree() + public async Task GetParentsTree () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkgroup/GetParentsTree").Result; } - var data = DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName); + var data = await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName); return Ok(data); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkMenuController.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkMenuController.cs index 971a7eb07..4aa99aeab 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkMenuController.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkMenuController.cs @@ -45,7 +45,7 @@ public FrameworkMenuVM2 Get(Guid id) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkMenuVM2 vm) + public async Task Add (FrameworkMenuVM2 vm) { if (!ModelState.IsValid) { @@ -53,7 +53,7 @@ public IActionResult Add(FrameworkMenuVM2 vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -68,7 +68,7 @@ public IActionResult Add(FrameworkMenuVM2 vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkMenuVM2 vm) + public async Task Edit(FrameworkMenuVM2 vm) { if (!ModelState.IsValid) { @@ -90,7 +90,7 @@ public IActionResult Edit(FrameworkMenuVM2 vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -101,7 +101,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -113,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(BaseSearcher searcher) + public async Task ExportExcel (BaseSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -131,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("_Admin.UnsetPages")] @@ -173,9 +173,9 @@ public ActionResult GetActionsByModel(string ModelName) [ActionDescription("GetFolders")] [HttpGet("GetFolders")] [AllRights] - public ActionResult GetFolders() + public async Task GetFolders () { - var AllParents = DC.Set().Where(x => x.FolderOnly == true).OrderBy(x => x.DisplayOrder).GetSelectListItems(Wtm, x => x.PageName); + var AllParents = await DC.Set().Where(x => x.FolderOnly == true).OrderBy(x => x.DisplayOrder).GetSelectListItems(Wtm, x => x.PageName); foreach (var p in AllParents) { if (p.Text.StartsWith("MenuKey.")) diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkRoleController.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkRoleController.cs index 62724cfde..c4eb09edf 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkRoleController.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkRoleController.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Mvc; @@ -19,9 +20,9 @@ public class FrameworkRoleController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkRoleSearcher searcher) + public async Task Search (FrameworkRoleSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -78,9 +79,9 @@ public async Task EditPrivilege(FrameworkRoleMDVM2 vm) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkRoleVM vm) + public async Task Add(FrameworkRoleVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -90,7 +91,7 @@ public IActionResult Add(FrameworkRoleVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -105,9 +106,9 @@ public IActionResult Add(FrameworkRoleVM vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkRoleVM vm) + public async Task Edit(FrameworkRoleVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -117,7 +118,7 @@ public IActionResult Edit(FrameworkRoleVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -133,7 +134,7 @@ public IActionResult Edit(FrameworkRoleVM vm) [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -141,14 +142,14 @@ public async Task BatchDelete(string[] ids) List RoleCode = new List(); if (ids != null && ids.Count() > 0) { - RoleCode = DC.Set().CheckIDs(new List(ids)).Select(x => x.RoleCode).ToList(); + RoleCode = await DC.Set().CheckIDs(new List(ids)).Select(x => x.RoleCode).ToListAsync(); vm.Ids = ids; } else { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -157,32 +158,32 @@ public async Task BatchDelete(string[] ids) var ur = DC.Set().Where(x => RoleCode.Contains(x.RoleCode)).ToList(); var itcodes = ur.Select(x => x.UserCode).ToArray(); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); await Wtm.RemoveUserCacheByRole(itcodes); - await Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant); + await Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant); return Ok(ids.Count()); } } [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkRoleSearcher searcher) + public async Task ExportExcel (FrameworkRoleSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -192,14 +193,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -216,20 +217,20 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkRoleImportVM vm) + public async Task Import(FrameworkRoleImportVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } else { - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); return Ok(vm.EntityList.Count); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkTenantController.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkTenantController.cs index 659455da6..d0bc6a3b5 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkTenantController.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkTenantController.cs @@ -20,9 +20,9 @@ public class FrameworkTenantController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkTenantSearcher searcher) + public async Task Search(FrameworkTenantSearcher searcher) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -50,9 +50,9 @@ public FrameworkTenantVM Get(Guid id) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkTenantVM vm) + public async Task Add (FrameworkTenantVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -64,7 +64,7 @@ public IActionResult Add(FrameworkTenantVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -79,9 +79,9 @@ public IActionResult Add(FrameworkTenantVM vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkTenantVM vm) + public async Task Edit (FrameworkTenantVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -93,7 +93,7 @@ public IActionResult Edit(FrameworkTenantVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -107,9 +107,9 @@ public IActionResult Edit(FrameworkTenantVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -124,7 +124,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -137,9 +137,9 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkTenantSearcher searcher) + public async Task ExportExcel (FrameworkTenantSearcher searcher) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -148,14 +148,14 @@ public IActionResult ExportExcel(FrameworkTenantSearcher searcher) var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -167,14 +167,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate () { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -193,16 +193,16 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkTenantImportVM vm) + public async Task Import (FrameworkTenantImportVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); return BadRequest(ModelState.GetErrorJson()); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -226,9 +226,10 @@ public IActionResult GetFrameworkTenants(string parent) - private bool CanUseTenant() + private async Task CanUseTenant() { - if (Wtm.LoginUserInfo != null && (Wtm.LoginUserInfo.CurrentTenant == null || Wtm.GlobaInfo.AllTenant.Any(x => x.TCode == Wtm.LoginUserInfo.CurrentTenant && x.Enabled == true && x.EnableSub == true))) + var _loginUserInfo = await Wtm.GetLoginUserInfo (); + if (_loginUserInfo != null && (_loginUserInfo.CurrentTenant == null || Wtm.GlobaInfo.AllTenant.Any(x => x.TCode == _loginUserInfo.CurrentTenant && x.Enabled == true && x.EnableSub == true))) { return true; } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkUserController.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkUserController.cs index e213fe8dd..12212dfb9 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkUserController.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/Controllers/FrameworkUserController.cs @@ -20,9 +20,9 @@ public class FrameworkUserController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkUserSearcher searcher) + public async Task Search (FrameworkUserSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -50,7 +50,7 @@ public FrameworkUserVM Get(Guid id) [HttpPost("[action]")] public async Task Add(FrameworkUserVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -60,7 +60,7 @@ public async Task Add(FrameworkUserVM vm) } else { - await vm.DoAddAsync(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -77,7 +77,7 @@ public async Task Add(FrameworkUserVM vm) [HttpPut("[action]")] public async Task Edit(FrameworkUserVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -88,7 +88,7 @@ public async Task Edit(FrameworkUserVM vm) } else { - await vm.DoEditAsync(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -104,7 +104,7 @@ public async Task Edit(FrameworkUserVM vm) [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -119,7 +119,7 @@ public async Task BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -133,7 +133,7 @@ public async Task BatchDelete(string[] ids) DC.Set().RemoveRange(ur); var ug = DC.Set().Where(x => itcode.Contains(x.UserCode)); DC.Set().RemoveRange(ug); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); } catch @@ -149,23 +149,23 @@ public async Task BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkUserSearcher searcher) + public async Task ExportExcel (FrameworkUserSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -175,14 +175,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -202,14 +202,14 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkUserImportVM vm) + public async Task Import(FrameworkUserImportVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -222,73 +222,73 @@ public ActionResult Import(FrameworkUserImportVM vm) [HttpGet("GetFrameworkRoles")] [ActionDescription("GetRoles")] [AllRights] - public IActionResult GetFrameworkRoles() + public async Task GetFrameworkRoles () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkRoles").Result; + return await Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkRoles"); } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); } [HttpGet("GetFrameworkGroups")] [ActionDescription("GetGroups")] [AllRights] - public IActionResult GetFrameworkGroups() + public async Task GetFrameworkGroups() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkGroups").Result; + return await Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkGroups"); } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetFrameworkGroupsTree")] [ActionDescription("GetGroupsTree")] [AllRights] - public IActionResult GetFrameworkGroupsTree() + public async Task GetFrameworkGroupsTree() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkGroupsTree").Result; + return await Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkGroupsTree"); } - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetUserById")] [AllRights] - public IActionResult GetUserById(string keywords) + public async Task GetUserById (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserById").Result; + return await Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserById"); } - var users = DC.Set().Where(x => x.ITCode.ToLower().StartsWith(keywords.ToLower())).GetSelectListItems(Wtm, x => x.Name + "(" + x.ITCode + ")", x => x.ITCode); + var users = await DC.Set().Where(x => x.ITCode.ToLower().StartsWith(keywords.ToLower())).GetSelectListItems(Wtm, x => x.Name + "(" + x.ITCode + ")", x => x.ITCode); return Ok(users); } [HttpGet("GetUserByGroup")] [AllRights] - public IActionResult GetUserByGroup(string keywords) + public async Task GetUserByGroup (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserByGroup").Result; + return await Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserByGroup"); } - var users = DC.Set().Where(x => x.GroupCode == keywords).Select(x=>x.UserCode).ToList(); + var users = await DC.Set().Where(x => x.GroupCode == keywords).Select(x=>x.UserCode).ToListAsync(); return Ok(users); } [HttpGet("GetUserByRole")] [AllRights] - public IActionResult GetUserByRole(string keywords) + public async Task GetUserByRole (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserByRole").Result; + return await Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserByRole"); } - var users = DC.Set().Where(x => x.RoleCode == keywords).Select(x => x.UserCode).ToList(); + var users = await DC.Set().Where(x => x.RoleCode == keywords).Select(x => x.UserCode).ToListAsync(); return Ok(users); } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs index 6a55aa57f..16062859a 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs @@ -1,5 +1,6 @@ // WTM默认页面 Wtm buidin page using System; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.ActionLogVMs @@ -17,8 +18,9 @@ public ActionLogBatchVM() public class ActionLog_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs index 691ec6ed4..6a97f76ff 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs @@ -1,6 +1,7 @@ // WTM默认页面 Wtm buidin page using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -8,7 +9,7 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.ActionLogVMs { public class ActionLogListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { var actions = new List { @@ -16,10 +17,10 @@ protected override List InitGridAction() this.MakeStandardAction("ActionLog", GridActionStandardTypesEnum.Details, "","_Admin", dialogWidth: 800).SetHideOnToolBar(true), this.MakeStandardAction("ActionLog", GridActionStandardTypesEnum.ExportExcel, "","_Admin"), }; - return actions; + return Task.FromResult (actions); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { var header = new List>(); @@ -62,10 +63,10 @@ protected override IEnumerable> InitGridHeader() })); header.Add(this.MakeGridHeaderAction(width: 120)); - return header; + return Task.FromResult>> (header); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.ITCode, x=>x.ITCode) @@ -76,7 +77,7 @@ public override IOrderedQueryable GetSearchQuery() .CheckWhere(Searcher.Duration,x=>x.Duration >= Searcher.Duration) .OrderByDescending(x=>x.ActionTime); - return query; + return Task.FromResult (query); } } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs index 6b9464eac..a0c4ef467 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -11,7 +12,7 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs public class DataPrivilegeListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { string tp = ""; if (Searcher.DpType == DpTypeEnum.User) @@ -23,16 +24,16 @@ protected override List InitGridAction() tp = "UserGroup"; } - return new List + return Task.FromResult (new List { this.MakeStandardAction("DataPrivilege", GridActionStandardTypesEnum.Create, "","_Admin", dialogWidth: 800).SetQueryString($"Type={tp}"), this.MakeStandardAction("DataPrivilege", GridActionStandardTypesEnum.ExportExcel, "","_Admin"), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name, 200), this.MakeGridHeader(x => x.PName).SetFormat((entity,val)=>GetPrivilegeName(entity)), this.MakeGridHeader(x => x.TableName), @@ -40,7 +41,7 @@ protected override IEnumerable> InitGridHead this.MakeGridHeader(x=>x.Edit,200).SetFormat((entity,val)=>GetOperation(entity)).SetHeader(Localizer["Sys.Operation"]).SetDisableExport(), this.MakeGridHeader(x => x.DpType).SetHide(true), this.MakeGridHeader(x => x.TargetId).SetHide(true) - }; + }); } @@ -81,7 +82,7 @@ public List GetOperation(DataPrivilege_ListView item) /// /// 查询结果 /// - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { IOrderedQueryable query = null; if (Searcher.DpType == DpTypeEnum.User) @@ -117,10 +118,10 @@ public override IOrderedQueryable GetSearchQuery() .OrderByDescending(x => x.Name).OrderByDescending(x => x.TableName); } - return query; + return Task.FromResult (query); } - public override void AfterDoSearcher() + public override async Task AfterDoSearcher() { if (Searcher.DpType == DpTypeEnum.User) { @@ -128,7 +129,7 @@ public override void AfterDoSearcher() } var groupIDs = EntityList.Select(x=>x.TargetId).ToList(); Dictionary groupdata = new Dictionary(); - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { var dd = Wtm.CallAPI>("mainhost", "/api/_account/GetFrameworkGroups").Result; if(dd.Data != null) @@ -141,7 +142,7 @@ public override void AfterDoSearcher() } else { - var ag = Wtm.GetTenantGroups(Wtm.LoginUserInfo?.CurrentTenant); + var ag = Wtm.GetTenantGroups((await Wtm.GetLoginUserInfo ())?.CurrentTenant); foreach (var item in ag) { groupdata.TryAdd(item.GroupCode, item.GroupName); @@ -151,7 +152,7 @@ public override void AfterDoSearcher() { item.Name = groupdata.ContainsKey(item.TargetId) ? groupdata[item.TargetId] : ""; } - base.AfterDoSearcher(); + await base.AfterDoSearcher(); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs index c5968f602..372fafa64 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs @@ -26,7 +27,7 @@ public class DataPrivilegeSearcher : BaseSearcher public DpTypeEnum DpType { get; set; } public Guid? DomainID { get; set; } public List AllDomains { get; set; } - protected override void InitVM() + protected override async Task InitVM() { TableNames = new List(); } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs index aa3564868..5257d6e1e 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs @@ -29,7 +29,7 @@ public DataPrivilegeVM() IsAll = false; } - protected override void InitVM() + protected override async Task InitVM() { TableNames = new List(); if (ControllerName.Contains("/api") == false) @@ -57,14 +57,14 @@ protected override void InitVM() } - protected override void ReInitVM() + protected override async Task ReInitVM() { TableNames = new List(); AllItems = new List(); TableNames = Wtm.DataPrivilegeSettings.ToListItems(x => x.PrivillegeName, x => x.ModelName); } - public override void Validate() + public override async Task Validate() { if (DpType == DpTypeEnum.User) { @@ -75,7 +75,7 @@ public override void Validate() else { string user = null; - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { var check = Wtm.CallAPI>("mainhost", "/api/_account/GetUserById").Result; if (check.Data != null) @@ -104,7 +104,7 @@ public override void Validate() base.Validate(); } - public override async Task DoAddAsync() + public override async Task DoAdd() { if (SelectedItemsID == null && IsAll == false) { @@ -134,7 +134,7 @@ public override async Task DoAddAsync() dp.RelateId = null; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } @@ -146,7 +146,7 @@ public override async Task DoAddAsync() dp.RelateId = id; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } @@ -159,7 +159,7 @@ public override async Task DoAddAsync() dp.RelateId = null; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } else @@ -170,7 +170,7 @@ public override async Task DoAddAsync() dp.RelateId = id; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } @@ -187,7 +187,7 @@ public override async Task DoAddAsync() } - public override async Task DoEditAsync(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { List oldIDs = null; @@ -213,7 +213,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = null; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } @@ -223,7 +223,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = null; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } @@ -238,7 +238,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = id; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } @@ -251,7 +251,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = id; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } @@ -268,7 +268,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) } } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { List oldIDs = null; diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs index aae6714fe..abed19cad 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs @@ -4,6 +4,7 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs @@ -15,20 +16,20 @@ public DpListVM() NeedPage = false; } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name), - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { var dps = Wtm.DataPrivilegeSettings.Where(x => x.ModelName == Searcher.TableName).SingleOrDefault(); if (dps != null) { - return dps.GetItemList(Wtm, Searcher.Filter).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); + return (await dps.GetItemList (Wtm, Searcher.Filter)).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); } else { @@ -36,12 +37,12 @@ public override IOrderedQueryable GetSearchQuery() } } - public override IOrderedQueryable GetBatchQuery() + public override async Task> GetBatchQuery() { var dps = Wtm.DataPrivilegeSettings.Where(x => x.ModelName == Searcher.TableName).SingleOrDefault(); if (dps != null) { - return dps.GetItemList(Wtm, null,Ids).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); + return (await dps.GetItemList (Wtm, null, Ids)).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); } else { diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs index 7ef3d7a1b..ac6b92506 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Core.Support.Json; @@ -15,9 +16,9 @@ public FrameworkGroupListVM() NeedPage = false; } - protected override List InitGridAction() + protected override async Task> InitGridAction() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return new List { @@ -39,9 +40,9 @@ protected override List InitGridAction() } } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.GroupName, 220), this.MakeGridHeader(x => x.GroupCode, 120), this.MakeGridHeader(x => x.ManagerName,220).SetFormat((a,b)=>{ @@ -59,12 +60,12 @@ protected override IEnumerable> InitGridHeader( this.MakeGridHeader(x => x.GroupRemark), this.MakeGridHeader(x => x.ParentId).SetHide(), this.MakeGridHeaderAction(width: 300) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { - return DC.Set() + return Task.FromResult (DC.Set() .CheckContain(Searcher.GroupCode, x => x.GroupCode) .CheckContain(Searcher.GroupName, x => x.GroupName) .GroupJoin(DC.Set(), ok => ok.Manager, ik => ik.ITCode, (group, user) => new { user = user, group = group }) @@ -77,9 +78,9 @@ public override IOrderedQueryable GetSearchQuery() Manager = a.group.Manager, ManagerName = b.Name, }) - .OrderBy(x => x.GroupCode); + .OrderBy(x => x.GroupCode)); } - public override void AfterDoSearcher() + public override Task AfterDoSearcher() { var topdata = EntityList.MakeTree(x => x.GroupCode).FlatTree(x => x.GroupCode); if (ControllerName.Contains("/api") == false) @@ -87,7 +88,7 @@ public override void AfterDoSearcher() topdata.ForEach((x) => { int l = x.GetLevel(); for (int i = 0; i < l; i++) { x.GroupName = "    " + x.GroupName; } }); } EntityList = topdata; - + return Task.CompletedTask; } } public class FrameworkGroup_View : TreePoco diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupMDVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupMDVM.cs index 01ea77724..a9cef500d 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupMDVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupMDVM.cs @@ -4,6 +4,7 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs; using WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkMenuVMs; @@ -21,7 +22,7 @@ public FrameworkGroupMDVM() { } - protected override void InitVM() + protected override async Task InitVM() { DpLists = new List(); foreach (var item in Wtm.DataPrivilegeSettings) @@ -51,9 +52,9 @@ protected override void InitVM() } } - public bool DoChange() + public async Task DoChange() { - List oldIDs = DC.Set().Where(x => x.GroupCode == GroupCode).Select(x => x.ID).ToList(); + List oldIDs = await DC.Set().Where(x => x.GroupCode == GroupCode).Select(x => x.ID).ToListAsync(); foreach (var oldid in oldIDs) { @@ -84,7 +85,7 @@ public bool DoChange() } } - DC.SaveChanges(); + await DC.SaveChangesAsync(); return true; } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs index 30326329f..f6c54896c 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs @@ -18,7 +18,7 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - public override void Validate() + public override async Task Validate() { if (string.IsNullOrEmpty(Entity.Manager) == false) { @@ -28,34 +28,34 @@ public override void Validate() MSD.AddModelError("Entity.Manager", Localizer["Sys.CannotFindUser", Entity.Manager]); } } - base.Validate(); + await base.Validate(); } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); - Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant).Wait(); + await base.DoAdd(); + Wtm.RemoveGroupCache((await GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); - Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant).Wait(); + await base.DoEdit(updateAllFields); + Wtm.RemoveGroupCache((await GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { using (var tran = DC.BeginTransaction()) { try { - await base.DoDeleteAsync(); + await base.DoDelete(); var ur = DC.Set().Where(x => x.GroupCode == Entity.GroupCode); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); await Wtm.RemoveUserCacheByGroup(Entity.GroupCode); - await Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant); + await Wtm.RemoveGroupCache((await GetLoginUserInfo ()).CurrentTenant); } catch { diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs index c09b6ed63..dbcf803d7 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkMenuVMs @@ -15,15 +16,15 @@ public FrameworkActionListVM() NeedPage = false; } - protected override List InitGridAction() + protected override Task> InitGridAction() { var actions = new List { }; - return actions; + return Task.FromResult (actions); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { var header = new List>(); @@ -32,10 +33,10 @@ protected override IEnumerable> InitGridHe header.Add(this.MakeGridHeader(x => x.ClassName, 150)); header.Add(this.MakeGridHeader(x => x.MethodName, 150)); - return header; + return Task.FromResult>> (header); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var newdc = DC as FrameworkContext; List actions = new List(); @@ -84,7 +85,7 @@ public override IOrderedQueryable GetSearchQuery() } } toremove.ForEach(x => actions.Remove(x)); - return actions.AsQueryable().OrderBy(x=>x.AreaName).ThenBy(x=>x.ModuleName).ThenBy(x=>x.MethodName); + return Task.FromResult (actions.AsQueryable ().OrderBy (x => x.AreaName).ThenBy (x => x.ModuleName).ThenBy (x => x.MethodName)); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs index 0c52f2848..10c5df118 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -13,11 +14,12 @@ public class FrameworkMenuBatchVM : BaseBatchVM DoBatchDelete() { if (Ids != null) { @@ -27,7 +29,7 @@ public override bool DoBatchDelete() DC.CascadeDelete(f); } } - DC.SaveChanges(); + await DC.SaveChangesAsync(); return true; } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs index cb8bd000c..4444ac8e2 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs @@ -4,6 +4,8 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text.RegularExpressions; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -16,7 +18,7 @@ public FrameworkMenuListVM2() this.NeedPage = false; } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { List> rv = new List>(); rv.AddRange(new GridColumn[] { @@ -32,15 +34,15 @@ protected override IEnumerable> InitGridHead this.MakeGridHeader(x=>x.ParentId).SetHide(), this.MakeGridHeaderAction(width: 290) }); - return rv; + return Task.FromResult>> (rv); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { List data = new List(); using (var maindc = Wtm.CreateDC(false, "default")) { - data = maindc.Set().ToList(); + data = await maindc.Set().ToListAsync(); } var topdata = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder).Where(x => x.IsInside == false || x.FolderOnly == true || x.Url.EndsWith("/Index") || string.IsNullOrEmpty(x.MethodName)).ToList(); foreach (var item in topdata) diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM.cs index 76421445e..0d2593a1b 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM.cs @@ -5,6 +5,7 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text.Json.Serialization; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Core.Support.Json; @@ -50,7 +51,7 @@ public FrameworkMenuVM() SelectedRolesIds = new List(); } - protected override void InitVM() + protected override async Task InitVM() { if (!string.IsNullOrEmpty(Entity.Icon)) { @@ -59,9 +60,9 @@ protected override void InitVM() IconFontItem = res[1]; } - SelectedRolesIds.AddRange(DC.Set().Where(x => x.MenuItemId == Entity.ID && x.RoleCode != null && x.Allowed == true).Select(x => x.RoleCode).ToList()); + SelectedRolesIds.AddRange(await DC.Set().Where(x => x.MenuItemId == Entity.ID && x.RoleCode != null && x.Allowed == true).Select(x => x.RoleCode).ToListAsync()); - var data = DC.Set().AsNoTracking().ToList(); + var data = await DC.Set().AsNoTracking().ToListAsync(); var topMenu = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder); var pids = Entity.GetAllChildrenIDs(DC); AllParents = data.Where(x => x.ID != Entity.ID && !pids.Contains(x.ID) && x.FolderOnly == true).ToList().ToListItems(y => y.PageName, x => x.ID); @@ -115,7 +116,7 @@ protected override void InitVM() - public override void Validate() + public override async Task Validate() { if (Entity.IsInside == true && Entity.FolderOnly == false) { @@ -124,17 +125,17 @@ public override void Validate() MSD.AddModelError("SelectedModule", Localizer["Validate.{0}required", Localizer["_Admin.Module"]]); } var modules = Wtm.GlobaInfo.AllModule; - var test = DC.Set().Where(x => x.ClassName == this.SelectedModule && (string.IsNullOrEmpty(x.MethodName) || x.MethodName == "Index") && x.ID != Entity.ID).FirstOrDefault(); + var test = await DC.Set().Where(x => x.ClassName == this.SelectedModule && (string.IsNullOrEmpty(x.MethodName) || x.MethodName == "Index") && x.ID != Entity.ID).FirstOrDefaultAsync(); if (test != null) { MSD.AddModelError(" error", Localizer["_Admin.ModuleHasSet"]); } } - base.Validate(); + await base.Validate(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { Entity.Icon = $"{IconFont} {IconFontItem}"; FC.Add("Entity.Icon", " "); @@ -243,17 +244,17 @@ public override void DoEdit(bool updateAllFields = false) } } FC.Add("Entity.ModuleName", 0); - base.DoEdit(); + await base.DoEdit(); List guids = new List(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } - AddPrivilege(guids); + await AddPrivilege(guids); } - public override void DoAdd() + public override async Task DoAdd() { Entity.Icon = $"{IconFont} {IconFontItem}"; if (Entity.IsInside == false) @@ -338,19 +339,19 @@ public override void DoAdd() } } - base.DoAdd(); + await base.DoAdd(); List guids = new List(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } - AddPrivilege(guids); + await AddPrivilege(guids); } - public void AddPrivilege(List menuids) + public async Task AddPrivilege(List menuids) { - var admin = DC.Set().Where(x => x.RoleCode == "001").SingleOrDefault(); + var admin = await DC.Set().Where(x => x.RoleCode == "001").SingleOrDefaultAsync(); if (admin != null && SelectedRolesIds.Contains(admin.RoleCode) == false) { SelectedRolesIds.Add(admin.RoleCode); @@ -366,22 +367,22 @@ public void AddPrivilege(List menuids) fp.MenuItemId = menuid; fp.RoleCode = code; fp.Allowed = true; - fp.TenantCode = LoginUserInfo?.CurrentTenant; - DC.Set().Add(fp); + fp.TenantCode = (await GetLoginUserInfo ())?.CurrentTenant; + await DC.Set().AddAsync(fp); } } } - DC.SaveChanges(); + await DC.SaveChangesAsync(); } - public override void DoDelete() + public override async Task DoDelete() { try { DC.CascadeDelete(Entity); - DC.SaveChanges(); + await DC.SaveChangesAsync(); } catch { } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs index 3550ccff2..93090bb33 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -27,12 +28,12 @@ public FrameworkMenuVM2() SelectedRolesCodes = new List(); } - protected override void InitVM() + protected override async Task InitVM() { - SelectedRolesCodes.AddRange(DC.Set().Where(x => x.MenuItemId == Entity.ID && x.RoleCode != null && x.Allowed == true).Select(x => x.RoleCode).ToList()); + SelectedRolesCodes.AddRange(await DC.Set().Where(x => x.MenuItemId == Entity.ID && x.RoleCode != null && x.Allowed == true).Select(x => x.RoleCode).ToListAsync ()); SelectedRolesCodes = SelectedRolesCodes.Distinct().ToList(); - var data = DC.Set().ToList(); + var data = await DC.Set().ToListAsync (); var topMenu = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder); var modules = Wtm.GlobaInfo.AllModule; @@ -42,7 +43,7 @@ protected override void InitVM() if (SelectedModule != null) { var urls = modules.Where(x => x.FullName == SelectedModule && x.IsApi == true).SelectMany(x => x.Actions).Where(x => x.IgnorePrivillege == false).Select(x => x.Url).ToList(); - SelectedActionIDs = DC.Set().Where(x => urls.Contains(x.Url) && x.IsInside == true && x.FolderOnly == false).Select(x => x.MethodName).ToList(); + SelectedActionIDs = await DC.Set().Where(x => urls.Contains(x.Url) && x.IsInside == true && x.FolderOnly == false).Select(x => x.MethodName).ToListAsync (); } else { @@ -51,7 +52,7 @@ protected override void InitVM() } } - public override void Validate() + public override async Task Validate() { if (Entity.IsInside == true && Entity.FolderOnly == false) { @@ -69,10 +70,10 @@ public override void Validate() } } } - base.Validate(); + await base.Validate(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { if (Entity.IsInside == false) { @@ -160,17 +161,17 @@ public override void DoEdit(bool updateAllFields = false) FC.Add("Entity.Children[0].MethodName", 0); FC.Add("Entity.Children[0].Url", 0); } - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); List guids = new List(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } - AddPrivilege(guids); + await AddPrivilege(guids); } - public override void DoAdd() + public override async Task DoAdd() { if (Entity.IsInside == false) { @@ -234,24 +235,24 @@ public override void DoAdd() } } - base.DoAdd(); + await base.DoAdd(); List guids = new List(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } - AddPrivilege(guids); + await AddPrivilege(guids); } - public void AddPrivilege(List menuids) + public async Task AddPrivilege(List menuids) { var admin = DC.Set().Where(x => x.RoleCode == "001").SingleOrDefault(); if (admin != null && SelectedRolesCodes.Contains(admin.RoleCode) == false) { SelectedRolesCodes.Add(admin.RoleCode); } - var toremove = DC.Set().Where(x => SelectedRolesCodes.Contains(x.RoleCode) && menuids.Contains(x.MenuItemId)).ToList(); + var toremove = await DC.Set().Where(x => SelectedRolesCodes.Contains(x.RoleCode) && menuids.Contains(x.MenuItemId)).ToListAsync (); toremove.ForEach(x => DC.DeleteEntity(x)); foreach (var menuid in menuids) { @@ -268,17 +269,17 @@ public void AddPrivilege(List menuids) } } } - DC.SaveChanges(); - Wtm.RemoveUserCacheByRole(SelectedRolesCodes.ToArray()).Wait(); + await DC.SaveChangesAsync(); + await Wtm.RemoveUserCacheByRole(SelectedRolesCodes.ToArray()); } - public override void DoDelete() + public override async Task DoDelete() { try { DC.CascadeDelete(Entity); - DC.SaveChanges(); + await DC.SaveChangesAsync(); } catch { } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs index d2d2f6ce5..cad654f22 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs @@ -1,6 +1,7 @@ // WTM默认页面 Wtm buidin page using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Core.Support.Json; @@ -9,9 +10,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkRoleVMs { public class FrameworkRoleListVM : BasePagedListVM { - protected override List InitGridAction() + protected override async Task> InitGridAction() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return new List { @@ -34,23 +35,23 @@ protected override List InitGridAction() } } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.RoleCode, 120), this.MakeGridHeader(x => x.RoleName, 120), this.MakeGridHeader(x => x.RoleRemark), this.MakeGridHeaderAction(width: 300) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.RoleCode, x => x.RoleCode) .CheckContain(Searcher.RoleName, x => x.RoleName) .OrderBy(x => x.RoleCode); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs index b79eb180a..cdebea5df 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs @@ -6,6 +6,7 @@ using System.Text.Json.Serialization; using System.Text.RegularExpressions; using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -20,19 +21,19 @@ public FrameworkRoleMDVM2() } - protected override FrameworkRole GetById(object Id) + protected override async Task GetById(object Id) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Wtm.CallAPI("mainhost", $"/api/_frameworkrole/{Id}").Result.Data.Entity; } else { - return base.GetById(Id); + return await base.GetById(Id); } } - protected override void InitVM() + protected override async Task InitVM() { var allowedids = DC.Set() .Where(x => x.RoleCode == Entity.RoleCode && x.Allowed == true).Select(x => x.MenuItemId) @@ -40,13 +41,14 @@ protected override void InitVM() List data = new List(); using (var maindc = Wtm.CreateDC(false, "default")) { - data = maindc.Set().ToList(); + data = await maindc.Set().ToListAsync(); } var topdata = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder).Where(x => x.IsInside == false || x.FolderOnly == true || string.IsNullOrEmpty(x.MethodName)).ToList(); - if (Wtm.ConfigInfo.EnableTenant == true && LoginUserInfo.CurrentTenant != null) + if (Wtm.ConfigInfo.EnableTenant == true && (await GetLoginUserInfo ()).CurrentTenant != null) { - var ct = Wtm.GlobaInfo.AllTenant.Where(x => x.TCode == LoginUserInfo.CurrentTenant).FirstOrDefault(); + var _current_tenant = (await GetLoginUserInfo ()).CurrentTenant; + var ct = Wtm.GlobaInfo.AllTenant.Where(x => x.TCode == _current_tenant).FirstOrDefault(); for (int i = 0; i < topdata.Count; i++) { if (topdata[i].TenantAllowed == false || (topdata[i].Url != null && ct.EnableSub == false && topdata[i].Url.ToLower().Contains("frameworktenant"))) @@ -133,7 +135,7 @@ public async Task DoChangeAsync() FunctionPrivilege fp = new FunctionPrivilege(); fp.MenuItemId = menuid; fp.RoleCode = Entity.RoleCode; - fp.TenantCode = LoginUserInfo.CurrentTenant; + fp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; fp.Allowed = true; DC.Set().Add(fp); } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs index 8066549fb..63564aa4b 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs @@ -18,31 +18,31 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + await base.DoAdd(); + Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + await base.DoEdit(updateAllFields); + Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { using (var tran = DC.BeginTransaction()) { try { - await base.DoDeleteAsync(); + await base.DoDelete(); var ur = DC.Set().Where(x => x.RoleCode == Entity.RoleCode); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); await Wtm.RemoveUserCacheByRole(Entity.RoleCode); - await Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant); + await Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant); } catch { diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs index bdb64c7d0..1894031ed 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs @@ -25,7 +25,7 @@ public FrameworkTenantBatchVM() public class FrameworkTenant_BatchEdit : BaseVM { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs index c794112f1..c4f2950d7 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs @@ -28,7 +28,7 @@ public partial class FrameworkTenantTemplateVM : BaseTemplateVM [Display(Name = "Sys.Enable")] public ExcelPropety Enabled_Excel = ExcelPropety.CreateProperty(x => x.Enabled); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs index b8af97c35..5c5093f36 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs @@ -12,9 +12,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkTenantVMs { public partial class FrameworkTenantListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "_Admin", dialogWidth: 800), @@ -24,13 +24,13 @@ protected override List InitGridAction() this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], "_Admin"), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.TCode), this.MakeGridHeader(x => x.TName), this.MakeGridHeader(x => x.TDb), @@ -40,10 +40,10 @@ protected override IEnumerable> InitGridHeader this.MakeGridHeader(x => x.Enabled), this.MakeGridHeader(x => x.EnableSub), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.TCode, x=>x.TCode) @@ -62,7 +62,7 @@ public override IOrderedQueryable GetSearchQuery() EnableSub = x.EnableSub }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs index 20ec9071d..ded5def05 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs @@ -18,7 +18,7 @@ public partial class FrameworkTenantSearcher : BaseSearcher [Display(Name = "_Admin.TenantDomain")] public String TDomain { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs index 2373a7081..35d4c74d4 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs @@ -26,13 +26,13 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); if (MSD.IsValid) { TenantOperation(); @@ -40,29 +40,29 @@ public override void DoAdd() } } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); if (MSD.IsValid) { if (MSD.IsValid) { - TenantOperation(); + await TenantOperation(); Cache.Delete(nameof(GlobalData.AllTenant)); } } } - private void TenantOperation() + private async Task TenantOperation() { List fps = new List(); - using (var userdc = LoginUserInfo.GetUserDC(Wtm)) + using (var userdc = await (await GetLoginUserInfo ()).GetUserDC(Wtm)) { - fps = userdc.Set().AsNoTracking().Where(x => x.RoleCode == AdminRoleCode).ToList(); + fps = await userdc.Set().AsNoTracking().Where(x => x.RoleCode == AdminRoleCode).ToListAsync(); List tenantmenus = new List(); using (var defaultdc = Wtm.CreateDC(false, "default", false)) { - tenantmenus = defaultdc.Set().Where(x => x.TenantAllowed == false || (x.Url.ToLower().Contains("frameworktenant") && Entity.EnableSub == false) || x.Url.ToLower().Contains("frameworkmenu")).Select(x => x.ID).ToList(); + tenantmenus = await defaultdc.Set().Where(x => x.TenantAllowed == false || (x.Url.ToLower().Contains("frameworktenant") && Entity.EnableSub == false) || x.Url.ToLower().Contains("frameworkmenu")).Select(x => x.ID).ToListAsync(); } fps = fps.Where(x => tenantmenus.Contains(x.MenuItemId) == false).ToList(); @@ -129,9 +129,9 @@ private void AddTenantData(IDataContext dc, List fps) var key = $"{GlobalConstants.CacheKey.UserInfo}:{"admin" + "$`$" + Entity.TCode}"; Cache.DeleteAsync(key).Wait(); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); Cache.Delete(nameof(GlobalData.AllTenant)); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs index 47610e589..07010f1be 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkUserVms @@ -26,10 +27,11 @@ public class ChangePasswordVM : BaseVM [StringLength(50, ErrorMessage = "Validate.{0}stringmax{1}")] public string NewPasswordComfirm { get; set; } - public override void Validate() + public override async Task Validate() { List rv = new List(); - if (DC.Set().Where(x => x.ITCode == LoginUserInfo.ITCode && x.Password == Utils.GetMD5String(OldPassword)).SingleOrDefault() == null) + var _itcode = (await GetLoginUserInfo ()).ITCode; + if (DC.Set().Where(x => x.ITCode == _itcode && x.Password == Utils.GetMD5String(OldPassword)).SingleOrDefault() == null) { MSD.AddModelError("OldPassword", Localizer["Login.OldPasswrodWrong"]); } @@ -39,14 +41,14 @@ public override void Validate() } } - public void DoChange() - { - var user = DC.Set().Where(x => x.ITCode == LoginUserInfo.ITCode).SingleOrDefault(); + public async Task DoChange() { + var _itcode = (await GetLoginUserInfo ()).ITCode; + var user = DC.Set().Where(x => x.ITCode == _itcode).SingleOrDefault(); if (user != null) { user.Password = Utils.GetMD5String(NewPassword); } - DC.SaveChanges(); + await DC.SaveChangesAsync(); } } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs index efba18b11..7e912d193 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs @@ -1,5 +1,6 @@ // WTM默认页面 Wtm buidin page using System.Collections.Generic; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkUserVms @@ -15,7 +16,7 @@ public class FrameworkUserTemplateVM : BaseTemplateVM public ExcelPropety c8 = ExcelPropety.CreateProperty(x => x.Address); public ExcelPropety c9 = ExcelPropety.CreateProperty(x => x.ZipCode); - protected override void InitVM() + protected override async Task InitVM() { } @@ -23,15 +24,15 @@ protected override void InitVM() public class FrameworkUserImportVM : BaseImportVM { - public override bool BatchSaveData() + public override async Task BatchSaveData() { - SetEntityList(); + await SetEntityList(); foreach (var item in EntityList) { item.IsValid = true; item.Password = Utils.GetMD5String(item.Password); } - return base.BatchSaveData(); + return await base.BatchSaveData(); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs index f3625412c..e47ef0cda 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -11,9 +12,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkUserVms { public class FrameworkUserListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.Create, "", "_Admin",dialogWidth: 800), this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.Edit, "", "_Admin",dialogWidth: 800), @@ -23,12 +24,12 @@ protected override List InitGridAction() this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.BatchDelete, "","_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.Import, "","_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.ExportExcel, "","_Admin"), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.ITCode), this.MakeGridHeader(x => x.Name), this.MakeGridHeader(x => x.Gender,80), @@ -38,7 +39,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x=> x.PhotoId,170).SetFormat(PhotoIdFormat), this.MakeGridHeader(x => x.IsValid).SetHeader(Localizer["Sys.Enable"]).SetWidth(80), this.MakeGridHeaderAction(width: 280) - }; + }); } private List PhotoIdFormat(FrameworkUser_View entity, object val) @@ -50,7 +51,7 @@ private List PhotoIdFormat(FrameworkUser_View entity, object v }; } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.ITCode,x=>x.ITCode) @@ -71,7 +72,7 @@ public override IOrderedQueryable GetSearchQuery() Gender = x.Gender }) .OrderBy(x => x.ITCode); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs index 7a1c57b8a..73a143a5a 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs @@ -29,13 +29,13 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - protected override void InitVM() + protected override async Task InitVM() { SelectedRolesCodes = DC.Set().Where(x => x.UserCode == Entity.ITCode).Select(x => x.RoleCode).ToList(); SelectedGroupCodes = DC.Set().Where(x => x.UserCode == Entity.ITCode).Select(x => x.GroupCode).ToList(); } - public override async Task DoAddAsync() + public override async Task DoAdd() { using (var trans = DC.BeginTransaction()) { @@ -47,7 +47,7 @@ public override async Task DoAddAsync() { RoleCode = rolecode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(r); } @@ -60,14 +60,14 @@ public override async Task DoAddAsync() { GroupCode = groupcode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(g); } } Entity.IsValid = true; Entity.Password = Utils.GetMD5String(Entity.Password); - await base.DoAddAsync(); + await base.DoAdd(); if (MSD.IsValid) { trans.Commit(); @@ -79,7 +79,7 @@ public override async Task DoAddAsync() } } - public override async Task DoEditAsync(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { using (var trans = DC.BeginTransaction()) { @@ -109,7 +109,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) { RoleCode = rolecode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(r); } @@ -122,12 +122,12 @@ public override async Task DoEditAsync(bool updateAllFields = false) { GroupCode = groupcode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(g); } } - await base.DoEditAsync(updateAllFields); + await base.DoEdit(updateAllFields); if (MSD.IsValid) { trans.Commit(); @@ -140,18 +140,18 @@ public override async Task DoEditAsync(bool updateAllFields = false) } } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { using (var tran = DC.BeginTransaction()) { try { - await base.DoDeleteAsync(); + await base.DoDelete(); var ur = DC.Set().Where(x => x.UserCode == Entity.ITCode); DC.Set().RemoveRange(ur); var ug = DC.Set().Where(x => x.UserCode == Entity.ITCode); DC.Set().RemoveRange(ug); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); } catch @@ -162,11 +162,11 @@ public override async Task DoDeleteAsync() await Wtm.RemoveUserCache(Entity.ITCode); } - public void ChangePassword() + public async Task ChangePassword() { Entity.Password = Utils.GetMD5String(Entity.Password); DC.UpdateProperty(Entity, x => x.Password); - DC.SaveChanges(); + await DC.SaveChangesAsync(); } } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Controllers/CityController.cs b/demo/WalkingTec.Mvvm.ReactDemo/Controllers/CityController.cs index d3dc592fd..e37fdcfcf 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Controllers/CityController.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Controllers/CityController.cs @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.ReactDemo.ViewModels.CityVMs; using WalkingTec.Mvvm.ReactDemo.Models; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.ReactDemo.Controllers { @@ -19,7 +20,7 @@ public partial class CityController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(CitySearcher searcher) + public async Task Search(CitySearcher searcher) { if (ModelState.IsValid) { @@ -43,7 +44,7 @@ public CityVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(CityVM vm) + public async Task Add (CityVM vm) { if (!ModelState.IsValid) { @@ -51,7 +52,7 @@ public IActionResult Add(CityVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -66,7 +67,7 @@ public IActionResult Add(CityVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(CityVM vm) + public async Task Edit (CityVM vm) { if (!ModelState.IsValid) { @@ -74,7 +75,7 @@ public IActionResult Edit(CityVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -88,7 +89,7 @@ public IActionResult Edit(CityVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -99,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -112,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(CitySearcher searcher) + public async Task ExportExcel (CitySearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -130,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -150,10 +151,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(CityImportVM vm) + public async Task Import (CityImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -165,15 +166,15 @@ public ActionResult Import(CityImportVM vm) [HttpGet("GetCitys")] - public ActionResult GetCitys() + public async Task GetCitys () { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } [HttpGet("GetCitysTree")] - public ActionResult GetCitysTree() + public async Task GetCitysTree () { - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.Name)); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Controllers/MajorController.cs b/demo/WalkingTec.Mvvm.ReactDemo/Controllers/MajorController.cs index 0d02c9826..c5b2da164 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Controllers/MajorController.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Controllers/MajorController.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.ReactDemo.ViewModels.MajorVMs; using WalkingTec.Mvvm.ReactDemo.Models; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.ReactDemo.Controllers { @@ -19,7 +20,7 @@ public partial class MajorController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(MajorSearcher searcher) + public async Task Search(MajorSearcher searcher) { if (ModelState.IsValid) { @@ -43,7 +44,7 @@ public MajorVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(MajorVM vm) + public async Task Add (MajorVM vm) { if (!ModelState.IsValid) { @@ -51,7 +52,7 @@ public IActionResult Add(MajorVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -66,7 +67,7 @@ public IActionResult Add(MajorVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(MajorVM vm) + public async Task Edit (MajorVM vm) { if (!ModelState.IsValid) { @@ -74,7 +75,7 @@ public IActionResult Edit(MajorVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -88,7 +89,7 @@ public IActionResult Edit(MajorVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -99,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -112,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(MajorSearcher searcher) + public async Task ExportExcel (MajorSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -130,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -150,10 +151,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(MajorImportVM vm) + public async Task Import (MajorImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -165,15 +166,15 @@ public ActionResult Import(MajorImportVM vm) [HttpGet("GetSchools")] - public ActionResult GetSchools() + public async Task GetSchools () { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.SchoolName)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.SchoolName)); } [HttpGet("GetStudents")] - public ActionResult GetStudents() + public async Task GetStudents () { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Controllers/SchoolController.cs b/demo/WalkingTec.Mvvm.ReactDemo/Controllers/SchoolController.cs index 7d71b13f3..2c82f5560 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Controllers/SchoolController.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Controllers/SchoolController.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.ReactDemo.ViewModels.SchoolVMs; using WalkingTec.Mvvm.ReactDemo.Models; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.ReactDemo.Controllers { @@ -19,7 +20,7 @@ public partial class SchoolController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(SchoolSearcher searcher) + public async Task Search(SchoolSearcher searcher) { if (ModelState.IsValid) { @@ -43,7 +44,7 @@ public SchoolVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(SchoolVM vm) + public async Task Add (SchoolVM vm) { if (!ModelState.IsValid) { @@ -51,7 +52,7 @@ public IActionResult Add(SchoolVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -66,7 +67,7 @@ public IActionResult Add(SchoolVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(SchoolVM vm) + public async Task Edit (SchoolVM vm) { if (!ModelState.IsValid) { @@ -74,7 +75,7 @@ public IActionResult Edit(SchoolVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -88,7 +89,7 @@ public IActionResult Edit(SchoolVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -99,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -112,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(SchoolSearcher searcher) + public async Task ExportExcel (SchoolSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -130,14 +131,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [HttpPost("BatchEdit")] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(SchoolBatchVM vm) + public async Task DoBatchEdit (SchoolBatchVM vm) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return BadRequest(ModelState.GetErrorJson()); } @@ -165,10 +166,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(SchoolImportVM vm) + public async Task Import (SchoolImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -180,9 +181,9 @@ public ActionResult Import(SchoolImportVM vm) [HttpGet("GetCitys")] - public ActionResult GetCitys() + public async Task GetCitys () { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/Controllers/StudentController.cs b/demo/WalkingTec.Mvvm.ReactDemo/Controllers/StudentController.cs index ac5d2ea95..a02214e09 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/Controllers/StudentController.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/Controllers/StudentController.cs @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.ReactDemo.ViewModels.StudentVMs; using WalkingTec.Mvvm.ReactDemo.Models; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.ReactDemo.Controllers { @@ -19,7 +20,7 @@ public partial class StudentController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(StudentSearcher searcher) + public async Task Search(StudentSearcher searcher) { if (ModelState.IsValid) { @@ -43,7 +44,7 @@ public StudentVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(StudentVM vm) + public async Task Add (StudentVM vm) { if (!ModelState.IsValid) { @@ -51,7 +52,7 @@ public IActionResult Add(StudentVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -66,7 +67,7 @@ public IActionResult Add(StudentVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(StudentVM vm) + public async Task Edit (StudentVM vm) { if (!ModelState.IsValid) { @@ -74,7 +75,7 @@ public IActionResult Edit(StudentVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -88,7 +89,7 @@ public IActionResult Edit(StudentVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -99,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -112,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(StudentSearcher searcher) + public async Task ExportExcel (StudentSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -130,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -150,10 +151,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(StudentImportVM vm) + public async Task Import (StudentImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -165,27 +166,27 @@ public ActionResult Import(StudentImportVM vm) [HttpGet("GetMajors")] - public ActionResult GetMajors() + public async Task GetMajors () { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.MajorName)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.MajorName)); } [HttpGet("GetCitys")] - public ActionResult GetCitys() + public async Task GetCitys () { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } [HttpGet("GetSchoolsByCity/{id}")] - public ActionResult GetSchoolsByCity(Guid id) + public async Task GetSchoolsByCity (Guid id) { - return Ok(DC.Set().Where(x=>x.PlaceId == id).GetSelectListItems(Wtm, x => x.SchoolName)); + return Ok(await DC.Set().Where(x=>x.PlaceId == id).GetSelectListItems(Wtm, x => x.SchoolName)); } [HttpGet("GetMajorsBySchool/{id}")] - public ActionResult GetMajorsBySchool(int id) + public async Task GetMajorsBySchool (int id) { - return Ok(DC.Set().Where(x => x.SchoolId == id).GetSelectListItems(Wtm, x => x.MajorName)); + return Ok(await DC.Set().Where(x => x.SchoolId == id).GetSelectListItems(Wtm, x => x.MajorName)); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityBatchVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityBatchVM.cs index 454feee05..590ab5856 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityBatchVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -26,8 +26,9 @@ public CityBatchVM() public class City_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityImportVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityImportVM.cs index a7f332463..07d244ce8 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityImportVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -18,10 +18,10 @@ public partial class CityTemplateVM : BaseTemplateVM [Display(Name = "_Admin.Parent")] public ExcelPropety Parent_Excel = ExcelPropety.CreateProperty(x => x.ParentId); - protected override void InitVM() + protected override async Task InitVM() { Parent_Excel.DataType = ColumnDataType.ComboBox; - Parent_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Parent_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityListVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityListVM.cs index 1d1caa193..8f064416a 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityListVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,17 +14,17 @@ namespace WalkingTec.Mvvm.ReactDemo.ViewModels.CityVMs public partial class CityListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name), this.MakeGridHeader(x => x.Level), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckEqual(Searcher.ParentId, x=>x.ParentId) @@ -36,7 +36,7 @@ public override IOrderedQueryable GetSearchQuery() Name_view = x.Parent.Name, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CitySearcher.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CitySearcher.cs index 368d5130a..71e9580b5 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CitySearcher.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CitySearcher.cs @@ -15,7 +15,7 @@ public partial class CitySearcher : BaseSearcher [Display(Name = "_Admin.Parent")] public Guid? ParentId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityVM.cs index 61fdb466d..fd80944ac 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/CityVMs/CityVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -18,23 +18,9 @@ public CityVM() SetInclude(x => x.Parent); } - protected override void InitVM() + protected override Task InitVM() { - } - - public override void DoAdd() - { - base.DoAdd(); - } - - public override void DoEdit(bool updateAllFields = false) - { - base.DoEdit(updateAllFields); - } - - public override void DoDelete() - { - base.DoDelete(); + return Task.CompletedTask; } } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorBatchVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorBatchVM.cs index d8efa39f4..e8e0e005e 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorBatchVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorBatchVM.cs @@ -32,7 +32,7 @@ public class Major_BatchEdit : BaseVM [Display(Name = "所属学校")] public int? SchoolId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorImportVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorImportVM.cs index 263644115..8135390f6 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorImportVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -23,10 +23,10 @@ public partial class MajorTemplateVM : BaseTemplateVM [Display(Name = "所属学校")] public ExcelPropety School_Excel = ExcelPropety.CreateProperty(x => x.SchoolId); - protected override void InitVM() + protected override async Task InitVM() { School_Excel.DataType = ColumnDataType.ComboBox; - School_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); + School_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorListVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorListVM.cs index 35aa4473f..b5ad3d261 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorListVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.ReactDemo.ViewModels.MajorVMs public partial class MajorListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.MajorCode), this.MakeGridHeader(x => x.MajorName), this.MakeGridHeader(x => x.MajorType), @@ -24,10 +24,10 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.SchoolName_view), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.MajorCode, x=>x.MajorCode) @@ -45,7 +45,7 @@ public override IOrderedQueryable GetSearchQuery() Name_view = x.StudentMajors.Select(y=>y.Student.Name).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorSearcher.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorSearcher.cs index 195466a25..50c8a267a 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorSearcher.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorSearcher.cs @@ -21,7 +21,7 @@ public partial class MajorSearcher : BaseSearcher [Display(Name = "所属学校")] public int? SchoolId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorVM.cs index c59b07233..ee6aa410e 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/MajorVMs/MajorVM.cs @@ -19,23 +19,23 @@ public MajorVM() SetInclude(x => x.StudentMajors); } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolBatchVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolBatchVM.cs index a4b405773..24bc89d68 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolBatchVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolBatchVM.cs @@ -32,7 +32,7 @@ public class School_BatchEdit : BaseVM [Display(Name = "地点")] public Guid? PlaceId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolImportVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolImportVM.cs index 6700e7741..dbbaf97aa 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolImportVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -25,10 +25,10 @@ public partial class SchoolTemplateVM : BaseTemplateVM [Display(Name = "地点")] public ExcelPropety Place_Excel = ExcelPropety.CreateProperty(x => x.PlaceId); - protected override void InitVM() + protected override async Task InitVM() { Place_Excel.DataType = ColumnDataType.ComboBox; - Place_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Place_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolListVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolListVM.cs index 9878bc164..14a9a6e0f 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolListVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.ReactDemo.ViewModels.SchoolVMs public partial class SchoolListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.SchoolCode), this.MakeGridHeader(x => x.SchoolName), this.MakeGridHeader(x => x.SchoolType), @@ -24,10 +24,10 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.Level), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.SchoolCode, x=>x.SchoolCode) @@ -44,7 +44,7 @@ public override IOrderedQueryable GetSearchQuery() Name_view = x.Place.Name, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolSearcher.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolSearcher.cs index 13f22d5ea..cf4fff1e5 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolSearcher.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolSearcher.cs @@ -19,7 +19,7 @@ public partial class SchoolSearcher : BaseSearcher [Display(Name = "地点")] public Guid? PlaceId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolVM.cs index 28f7972bd..2b87abf4a 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/SchoolVMs/SchoolVM.cs @@ -18,23 +18,23 @@ public SchoolVM() SetInclude(x => x.Place); } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentBatchVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentBatchVM.cs index e68fa2729..f18516d30 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentBatchVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -30,8 +30,9 @@ public class Student_BatchEdit : BaseVM [Display(Name = "日期")] public DateRange EnRollDate { get; set; } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentImportVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentImportVM.cs index 093cb28ec..3d4c7878d 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentImportVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentImportVM.cs @@ -33,7 +33,7 @@ public partial class StudentTemplateVM : BaseTemplateVM [Display(Name = "日期")] public ExcelPropety EnRollDate_Excel = ExcelPropety.CreateProperty(x => x.EnRollDate); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentListVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentListVM.cs index c090e2973..6bb4b72ab 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentListVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.ReactDemo.ViewModels.StudentVMs public partial class StudentListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.ID), this.MakeGridHeader(x => x.Password), this.MakeGridHeader(x => x.Email), @@ -31,7 +31,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.EnRollDate), this.MakeGridHeader(x => x.MajorName_view), this.MakeGridHeaderAction(width: 200) - }; + }); } private List PhotoIdFormat(Student_View entity, object val) { @@ -52,7 +52,7 @@ private List FileIdFormat(Student_View entity, object val) } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.Name, x=>x.Name) @@ -76,7 +76,7 @@ public override IOrderedQueryable GetSearchQuery() MajorName_view = x.StudentMajor.Select(y=>y.Major.MajorName).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentSearcher.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentSearcher.cs index 4948342ed..104d572c8 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentSearcher.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentSearcher.cs @@ -21,7 +21,7 @@ public partial class StudentSearcher : BaseSearcher [Display(Name = "专业")] public List SelectedStudentMajorIDs { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentVM.cs b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentVM.cs index 25c1c3a39..f6cdafa63 100644 --- a/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentVM.cs +++ b/demo/WalkingTec.Mvvm.ReactDemo/ViewModels/StudentVMs/StudentVM.cs @@ -18,23 +18,23 @@ public StudentVM() SetInclude(x => x.StudentMajor); } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/CityController.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/CityController.cs index d3dc592fd..657a1982b 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/CityController.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/CityController.cs @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.ReactDemo.ViewModels.CityVMs; using WalkingTec.Mvvm.ReactDemo.Models; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.ReactDemo.Controllers { @@ -19,7 +20,7 @@ public partial class CityController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(CitySearcher searcher) + public async Task Search(CitySearcher searcher) { if (ModelState.IsValid) { @@ -43,7 +44,7 @@ public CityVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(CityVM vm) + public async Task Add(CityVM vm) { if (!ModelState.IsValid) { @@ -51,7 +52,7 @@ public IActionResult Add(CityVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -66,7 +67,7 @@ public IActionResult Add(CityVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(CityVM vm) + public async Task Edit(CityVM vm) { if (!ModelState.IsValid) { @@ -74,7 +75,7 @@ public IActionResult Edit(CityVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -88,7 +89,7 @@ public IActionResult Edit(CityVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -99,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -112,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(CitySearcher searcher) + public async Task ExportExcel(CitySearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -130,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -150,10 +151,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(CityImportVM vm) + public async Task Import(CityImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -165,15 +166,15 @@ public ActionResult Import(CityImportVM vm) [HttpGet("GetCitys")] - public ActionResult GetCitys() + public async Task GetCitys() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } [HttpGet("GetCitysTree")] - public ActionResult GetCitysTree() + public async Task GetCitysTree() { - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.Name)); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/MajorController.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/MajorController.cs index 0d02c9826..cb5c71386 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/MajorController.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/MajorController.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.ReactDemo.ViewModels.MajorVMs; using WalkingTec.Mvvm.ReactDemo.Models; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.ReactDemo.Controllers { @@ -19,7 +20,7 @@ public partial class MajorController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(MajorSearcher searcher) + public async Task Search(MajorSearcher searcher) { if (ModelState.IsValid) { @@ -43,7 +44,7 @@ public MajorVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(MajorVM vm) + public async Task Add(MajorVM vm) { if (!ModelState.IsValid) { @@ -51,7 +52,7 @@ public IActionResult Add(MajorVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -66,7 +67,7 @@ public IActionResult Add(MajorVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(MajorVM vm) + public async Task Edit(MajorVM vm) { if (!ModelState.IsValid) { @@ -74,7 +75,7 @@ public IActionResult Edit(MajorVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -88,7 +89,7 @@ public IActionResult Edit(MajorVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -99,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -112,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(MajorSearcher searcher) + public async Task ExportExcel(MajorSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -130,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -150,10 +151,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(MajorImportVM vm) + public async Task Import(MajorImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -165,15 +166,15 @@ public ActionResult Import(MajorImportVM vm) [HttpGet("GetSchools")] - public ActionResult GetSchools() + public async Task GetSchools () { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.SchoolName)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.SchoolName)); } [HttpGet("GetStudents")] - public ActionResult GetStudents() + public async Task GetStudents () { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/SchoolController.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/SchoolController.cs index 00661863e..c2786ccc7 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/SchoolController.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/SchoolController.cs @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.ReactDemo.ViewModels.SchoolVMs; using WalkingTec.Mvvm.ReactDemo.Models; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.ReactDemo.Controllers { @@ -19,7 +20,7 @@ public partial class SchoolController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(SchoolSearcher searcher) + public async Task Search(SchoolSearcher searcher) { if (ModelState.IsValid) { @@ -43,7 +44,7 @@ public SchoolVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(SchoolVM vm) + public async Task Add(SchoolVM vm) { if (!ModelState.IsValid) { @@ -51,7 +52,7 @@ public IActionResult Add(SchoolVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -66,7 +67,7 @@ public IActionResult Add(SchoolVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(SchoolVM vm) + public async Task Edit(SchoolVM vm) { if (!ModelState.IsValid) { @@ -74,7 +75,7 @@ public IActionResult Edit(SchoolVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -88,7 +89,7 @@ public IActionResult Edit(SchoolVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -99,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -112,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(SchoolSearcher searcher) + public async Task ExportExcel(SchoolSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -130,14 +131,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [HttpPost("BatchEdit")] [ActionDescription("Sys.BatchEdit")] - public ActionResult DoBatchEdit(SchoolBatchVM vm) + public async Task DoBatchEdit(SchoolBatchVM vm) { - if (!ModelState.IsValid || !vm.DoBatchEdit()) + if (!ModelState.IsValid || !await vm.DoBatchEdit()) { return BadRequest(ModelState.GetErrorJson()); } @@ -165,10 +166,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(SchoolImportVM vm) + public async Task Import(SchoolImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -180,9 +181,9 @@ public ActionResult Import(SchoolImportVM vm) [HttpGet("GetCitys")] - public ActionResult GetCitys() + public async Task GetCitys() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } [HttpGet("GetCharts")] diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/StudentController.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/StudentController.cs index ac5d2ea95..37d346c42 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/StudentController.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/Controllers/StudentController.cs @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.ReactDemo.ViewModels.StudentVMs; using WalkingTec.Mvvm.ReactDemo.Models; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.ReactDemo.Controllers { @@ -19,7 +20,7 @@ public partial class StudentController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(StudentSearcher searcher) + public async Task Search(StudentSearcher searcher) { if (ModelState.IsValid) { @@ -43,7 +44,7 @@ public StudentVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(StudentVM vm) + public async Task Add(StudentVM vm) { if (!ModelState.IsValid) { @@ -51,7 +52,7 @@ public IActionResult Add(StudentVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -66,7 +67,7 @@ public IActionResult Add(StudentVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(StudentVM vm) + public async Task Edit(StudentVM vm) { if (!ModelState.IsValid) { @@ -74,7 +75,7 @@ public IActionResult Edit(StudentVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -88,7 +89,7 @@ public IActionResult Edit(StudentVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -99,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -112,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(StudentSearcher searcher) + public async Task ExportExcel(StudentSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -130,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -150,10 +151,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(StudentImportVM vm) + public async Task Import(StudentImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -165,27 +166,27 @@ public ActionResult Import(StudentImportVM vm) [HttpGet("GetMajors")] - public ActionResult GetMajors() + public async Task GetMajors() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.MajorName)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.MajorName)); } [HttpGet("GetCitys")] - public ActionResult GetCitys() + public async Task GetCitys() { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.Name)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.Name)); } [HttpGet("GetSchoolsByCity/{id}")] - public ActionResult GetSchoolsByCity(Guid id) + public async Task GetSchoolsByCity(Guid id) { - return Ok(DC.Set().Where(x=>x.PlaceId == id).GetSelectListItems(Wtm, x => x.SchoolName)); + return Ok(await DC.Set().Where(x=>x.PlaceId == id).GetSelectListItems(Wtm, x => x.SchoolName)); } [HttpGet("GetMajorsBySchool/{id}")] - public ActionResult GetMajorsBySchool(int id) + public async Task GetMajorsBySchool(int id) { - return Ok(DC.Set().Where(x => x.SchoolId == id).GetSelectListItems(Wtm, x => x.MajorName)); + return Ok(await DC.Set().Where(x => x.SchoolId == id).GetSelectListItems(Wtm, x => x.MajorName)); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityBatchVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityBatchVM.cs index 454feee05..212c94e90 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityBatchVM.cs @@ -26,7 +26,7 @@ public CityBatchVM() public class City_BatchEdit : BaseVM { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityImportVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityImportVM.cs index a7f332463..07d244ce8 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityImportVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -18,10 +18,10 @@ public partial class CityTemplateVM : BaseTemplateVM [Display(Name = "_Admin.Parent")] public ExcelPropety Parent_Excel = ExcelPropety.CreateProperty(x => x.ParentId); - protected override void InitVM() + protected override async Task InitVM() { Parent_Excel.DataType = ColumnDataType.ComboBox; - Parent_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Parent_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityListVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityListVM.cs index 1d1caa193..8f064416a 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityListVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,17 +14,17 @@ namespace WalkingTec.Mvvm.ReactDemo.ViewModels.CityVMs public partial class CityListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name), this.MakeGridHeader(x => x.Level), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckEqual(Searcher.ParentId, x=>x.ParentId) @@ -36,7 +36,7 @@ public override IOrderedQueryable GetSearchQuery() Name_view = x.Parent.Name, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CitySearcher.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CitySearcher.cs index 368d5130a..71e9580b5 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CitySearcher.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CitySearcher.cs @@ -15,7 +15,7 @@ public partial class CitySearcher : BaseSearcher [Display(Name = "_Admin.Parent")] public Guid? ParentId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityVM.cs index 61fdb466d..fd80944ac 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/CityVMs/CityVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -18,23 +18,9 @@ public CityVM() SetInclude(x => x.Parent); } - protected override void InitVM() + protected override Task InitVM() { - } - - public override void DoAdd() - { - base.DoAdd(); - } - - public override void DoEdit(bool updateAllFields = false) - { - base.DoEdit(updateAllFields); - } - - public override void DoDelete() - { - base.DoDelete(); + return Task.CompletedTask; } } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorBatchVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorBatchVM.cs index d8efa39f4..e8e0e005e 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorBatchVM.cs @@ -32,7 +32,7 @@ public class Major_BatchEdit : BaseVM [Display(Name = "所属学校")] public int? SchoolId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorImportVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorImportVM.cs index 263644115..8135390f6 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorImportVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -23,10 +23,10 @@ public partial class MajorTemplateVM : BaseTemplateVM [Display(Name = "所属学校")] public ExcelPropety School_Excel = ExcelPropety.CreateProperty(x => x.SchoolId); - protected override void InitVM() + protected override async Task InitVM() { School_Excel.DataType = ColumnDataType.ComboBox; - School_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); + School_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorListVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorListVM.cs index 35aa4473f..b5ad3d261 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorListVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.ReactDemo.ViewModels.MajorVMs public partial class MajorListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.MajorCode), this.MakeGridHeader(x => x.MajorName), this.MakeGridHeader(x => x.MajorType), @@ -24,10 +24,10 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.SchoolName_view), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.MajorCode, x=>x.MajorCode) @@ -45,7 +45,7 @@ public override IOrderedQueryable GetSearchQuery() Name_view = x.StudentMajors.Select(y=>y.Student.Name).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorSearcher.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorSearcher.cs index 195466a25..50c8a267a 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorSearcher.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorSearcher.cs @@ -21,7 +21,7 @@ public partial class MajorSearcher : BaseSearcher [Display(Name = "所属学校")] public int? SchoolId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorVM.cs index c59b07233..ee6aa410e 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/MajorVMs/MajorVM.cs @@ -19,23 +19,23 @@ public MajorVM() SetInclude(x => x.StudentMajors); } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolBatchVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolBatchVM.cs index a4b405773..20d93c3a6 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -32,8 +32,9 @@ public class School_BatchEdit : BaseVM [Display(Name = "地点")] public Guid? PlaceId { get; set; } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolImportVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolImportVM.cs index 6700e7741..dbbaf97aa 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolImportVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -25,10 +25,10 @@ public partial class SchoolTemplateVM : BaseTemplateVM [Display(Name = "地点")] public ExcelPropety Place_Excel = ExcelPropety.CreateProperty(x => x.PlaceId); - protected override void InitVM() + protected override async Task InitVM() { Place_Excel.DataType = ColumnDataType.ComboBox; - Place_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.Name); + Place_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.Name); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolListVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolListVM.cs index 9878bc164..14a9a6e0f 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolListVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.ReactDemo.ViewModels.SchoolVMs public partial class SchoolListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.SchoolCode), this.MakeGridHeader(x => x.SchoolName), this.MakeGridHeader(x => x.SchoolType), @@ -24,10 +24,10 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.Level), this.MakeGridHeader(x => x.Name_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.SchoolCode, x=>x.SchoolCode) @@ -44,7 +44,7 @@ public override IOrderedQueryable GetSearchQuery() Name_view = x.Place.Name, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolSearcher.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolSearcher.cs index 13f22d5ea..cf4fff1e5 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolSearcher.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolSearcher.cs @@ -19,7 +19,7 @@ public partial class SchoolSearcher : BaseSearcher [Display(Name = "地点")] public Guid? PlaceId { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolVM.cs index 619db2e02..89aa5ee42 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/SchoolVMs/SchoolVM.cs @@ -18,23 +18,23 @@ public SchoolVM() SetInclude(x => x.Place, x=>x.Majors, x=>x.Photos); } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentBatchVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentBatchVM.cs index e68fa2729..34b387c95 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentBatchVM.cs @@ -30,7 +30,7 @@ public class Student_BatchEdit : BaseVM [Display(Name = "日期")] public DateRange EnRollDate { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentImportVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentImportVM.cs index 093cb28ec..3d4c7878d 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentImportVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentImportVM.cs @@ -33,7 +33,7 @@ public partial class StudentTemplateVM : BaseTemplateVM [Display(Name = "日期")] public ExcelPropety EnRollDate_Excel = ExcelPropety.CreateProperty(x => x.EnRollDate); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentListVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentListVM.cs index c090e2973..6bb4b72ab 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentListVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.ReactDemo.ViewModels.StudentVMs public partial class StudentListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.ID), this.MakeGridHeader(x => x.Password), this.MakeGridHeader(x => x.Email), @@ -31,7 +31,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.EnRollDate), this.MakeGridHeader(x => x.MajorName_view), this.MakeGridHeaderAction(width: 200) - }; + }); } private List PhotoIdFormat(Student_View entity, object val) { @@ -52,7 +52,7 @@ private List FileIdFormat(Student_View entity, object val) } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.Name, x=>x.Name) @@ -76,7 +76,7 @@ public override IOrderedQueryable GetSearchQuery() MajorName_view = x.StudentMajor.Select(y=>y.Major.MajorName).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentSearcher.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentSearcher.cs index 4948342ed..104d572c8 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentSearcher.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentSearcher.cs @@ -21,7 +21,7 @@ public partial class StudentSearcher : BaseSearcher [Display(Name = "专业")] public List SelectedStudentMajorIDs { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentVM.cs index 25c1c3a39..f6cdafa63 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/SchoolData/ViewModels/StudentVMs/StudentVM.cs @@ -18,23 +18,23 @@ public StudentVM() SetInclude(x => x.StudentMajor); } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/AccountController.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/AccountController.cs index 0388c1f4e..979d565fa 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/AccountController.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/AccountController.cs @@ -32,7 +32,7 @@ public class AccountController : BaseApiController public async Task Login([FromForm] string account, [FromForm] string password, [FromForm] string tenant = null, [FromForm] bool rememberLogin = false) { - var user = Wtm.DoLogin(account, password, tenant); + var user = await Wtm.DoLogin(account, password, tenant); if (user == null) { return BadRequest(Localizer["Sys.LoginFailed"].Value); @@ -40,7 +40,7 @@ public async Task Login([FromForm] string account, [FromForm] str //其他属性可以通过user.Attributes["aaa"] = "bbb"方式赋值 - Wtm.LoginUserInfo = user; + Wtm.SetLoginUserInfo (user); AuthenticationProperties properties = null; if (rememberLogin) @@ -52,9 +52,9 @@ public async Task Login([FromForm] string account, [FromForm] str }; } - var principal = Wtm.LoginUserInfo.CreatePrincipal(); + var principal = (await Wtm.GetLoginUserInfo ()).CreatePrincipal(); await Wtm.HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, properties); - return CheckUserInfo(); + return await CheckUserInfo(); } @@ -62,7 +62,7 @@ public async Task Login([FromForm] string account, [FromForm] str [HttpPost("[action]")] public async Task LoginJwt(SimpleLogin loginInfo) { - var user = Wtm.DoLogin(loginInfo.Account, loginInfo.Password, loginInfo.Tenant); + var user = await Wtm.DoLogin(loginInfo.Account, loginInfo.Password, loginInfo.Tenant); if (user == null) { ModelState.AddModelError(" ", Localizer["Sys.LoginFailed"]); @@ -71,9 +71,9 @@ public async Task LoginJwt(SimpleLogin loginInfo) //其他属性可以通过user.Attributes["aaa"] = "bbb"方式赋值 - Wtm.LoginUserInfo = user; + Wtm.SetLoginUserInfo (user); var authService = HttpContext.RequestServices.GetService(typeof(ITokenService)) as ITokenService; - var token = await authService.IssueTokenAsync(Wtm.LoginUserInfo); + var token = await authService.IssueTokenAsync((await Wtm.GetLoginUserInfo ())); return Content(JsonSerializer.Serialize(token), "application/json"); } @@ -81,26 +81,26 @@ public async Task LoginJwt(SimpleLogin loginInfo) [HttpGet("[action]")] public async Task LoginRemote([FromQuery] string _remotetoken) { - if (Wtm?.LoginUserInfo != null) + if ((await Wtm?.GetLoginUserInfo ()) != null) { - var principal = Wtm.LoginUserInfo.CreatePrincipal(); + var principal = (await Wtm.GetLoginUserInfo ()).CreatePrincipal(); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, null); } - return CheckUserInfo(); + return await CheckUserInfo(); } [AllRights] [HttpGet("[action]")] - public IActionResult SetTenant([FromQuery] string tenant) + public async Task SetTenant ([FromQuery] string tenant) { - bool rv = Wtm.SetCurrentTenant(tenant == "" ? null : tenant); + bool rv = await Wtm.SetCurrentTenant(tenant == "" ? null : tenant); return Ok(rv); } [AllowAnonymous] [HttpPost("[action]")] - public IActionResult Reg(SimpleReg regInfo) + public async Task Reg (SimpleReg regInfo) { var exist = DC.Set().Any(x => x.ITCode.ToLower() == regInfo.ITCode.ToLower()); @@ -129,7 +129,7 @@ public IActionResult Reg(SimpleReg regInfo) DC.Set().Add(userrole); } DC.Set().Add(user); - DC.SaveChanges(); + await DC.SaveChangesAsync(); return Ok(); } @@ -152,15 +152,15 @@ public IActionResult RefreshToken(string refreshToken) [AllRights] [HttpGet("[action]")] - public IActionResult CheckUserInfo(bool IsApi = true) + public async Task CheckUserInfo (bool IsApi = true) { - if (Wtm.LoginUserInfo == null) + if ((await Wtm.GetLoginUserInfo ()) == null) { return BadRequest(); } else { - var forapi = Wtm.LoginUserInfo; + var forapi = (await Wtm.GetLoginUserInfo ()); if (IsApi) { forapi.SetAttributesForApi(Wtm); @@ -175,7 +175,7 @@ public IActionResult CheckUserInfo(bool IsApi = true) { forapi.Attributes.Remove("IsMainHost"); } - if (ConfigInfo.HasMainHost && string.IsNullOrEmpty(Wtm.LoginUserInfo.TenantCode) == true) + if (ConfigInfo.HasMainHost && string.IsNullOrEmpty((await Wtm.GetLoginUserInfo ()).TenantCode) == true) { forapi.Attributes.Add("IsMainHost", true); } @@ -190,9 +190,9 @@ public IActionResult CheckUserInfo(bool IsApi = true) [AllRights] [HttpPost("[action]")] - public IActionResult ChangePassword(ChangePasswordVM vm) + public async Task ChangePassword (ChangePasswordVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -219,7 +219,7 @@ public IActionResult ChangePassword(ChangePasswordVM vm) [HttpGet("[action]")] public async Task Logout() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { await Wtm.CallAPI("mainhost", "/api/_account/logout", HttpMethodEnum.GET, new { }, 10); return Ok(ConfigInfo.MainHost); @@ -235,45 +235,45 @@ public async Task Logout() [HttpGet("GetFrameworkRoles")] [ActionDescription("GetRoles")] [AllRights] - public IActionResult GetFrameworkRoles() + public async Task GetFrameworkRoles () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetFrameworkRoles").Result; } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); } [HttpGet("GetFrameworkGroups")] [ActionDescription("GetGroups")] [AllRights] - public IActionResult GetFrameworkGroups() + public async Task GetFrameworkGroups () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetFrameworkGroups").Result; } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetFrameworkGroupsTree")] [ActionDescription("GetGroupsTree")] [AllRights] - public IActionResult GetFrameworkGroupsTree() + public async Task GetFrameworkGroupsTree () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetFrameworkGroupsTree").Result; } - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetUserById")] [AllRights] - public IActionResult GetUserById(string keywords) + public async Task GetUserById (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetUserById").Result; } @@ -283,9 +283,9 @@ public IActionResult GetUserById(string keywords) [HttpGet("GetUserByGroup")] [AllRights] - public IActionResult GetUserByGroup(string keywords) + public async Task GetUserByGroup (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetUserByGroup").Result; } @@ -295,9 +295,9 @@ public IActionResult GetUserByGroup(string keywords) [HttpGet("GetUserByRole")] [AllRights] - public IActionResult GetUserByRole(string keywords) + public async Task GetUserByRole (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetUserByRole").Result; } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/ActionLogController.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/ActionLogController.cs index 122b7bd26..aa77c2ed1 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/ActionLogController.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/ActionLogController.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -18,7 +19,7 @@ public class ActionLogController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(ActionLogSearcher searcher) + public async Task Search(ActionLogSearcher searcher) { if (ModelState.IsValid) { @@ -42,7 +43,7 @@ public ActionLogVM Get(Guid id) [HttpPost("[action]")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -53,7 +54,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -66,17 +67,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(ActionLogSearcher searcher) + public async Task ExportExcel(ActionLogSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -84,7 +85,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/DataPrivilegeController.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/DataPrivilegeController.cs index 0521d7d46..23330c9c1 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/DataPrivilegeController.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/DataPrivilegeController.cs @@ -59,7 +59,7 @@ public async Task Add(DataPrivilegeVM vm) } else { - await vm.DoAddAsync(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -82,7 +82,7 @@ public async Task Edit(DataPrivilegeVM vm) } else { - await vm.DoEditAsync(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -108,7 +108,7 @@ public async Task Delete(SimpleDpModel dp) { vm = Wtm.CreateVM(values: x => x.Entity.TableName == dp.ModelName && x.Entity.GroupCode == dp.Id && x.DpType == dp.Type); } - await vm.DoDeleteAsync(); + await vm.DoDelete(); return Ok(1); } @@ -116,13 +116,13 @@ public async Task Delete(SimpleDpModel dp) [AllRights] [HttpGet("[action]")] - public ActionResult GetPrivilegeByTableName(string table) + public async Task GetPrivilegeByTableName (string table) { var AllItems = new List(); var dps =Wtm.DataPrivilegeSettings.Where(x => x.ModelName == table).SingleOrDefault(); if (dps != null) { - AllItems = dps.GetItemList(Wtm); + AllItems = await dps.GetItemList(Wtm); } return Ok(AllItems); } @@ -137,24 +137,24 @@ public ActionResult GetPrivileges() [AllRights] [HttpGet("[action]")] - public IActionResult GetUserGroups() + public async Task GetUserGroups () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_DataPrivilege/GetUserGroups").Result; } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [AllRights] [HttpGet("[action]")] - public IActionResult GetUserGroupsTree() + public async Task GetUserGroupsTree () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_DataPrivilege/GetUserGroupsTree").Result; } - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FileApiController.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FileApiController.cs index f3549f710..85a634fbb 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FileApiController.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FileApiController.cs @@ -23,20 +23,20 @@ public class FileApiController : BaseApiController { [HttpPost("[action]")] [ActionDescription("UploadFile")] - public IActionResult Upload([FromServices] WtmFileProvider fp, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) + public async Task Upload ([FromServices] WtmFileProvider fp, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) { var FileData = Request.Form.Files[0]; - var file = fp.Upload(FileData.FileName, FileData.Length, FileData.OpenReadStream(), groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); + var file = await fp.Upload(FileData.FileName, FileData.Length, FileData.OpenReadStream(), groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); return Ok(new { Id = file.GetID(), Name = file.FileName }); } [HttpPost("[action]")] [ActionDescription("UploadPic")] - public IActionResult UploadImage([FromServices] WtmFileProvider fp, int? width = null, int? height = null, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) + public async Task UploadImage ([FromServices] WtmFileProvider fp, int? width = null, int? height = null, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) { if (width == null && height == null) { - return Upload(fp, sm, groupName, csName); + return await Upload(fp, sm, groupName, csName); } var FileData = Request.Form.Files[0]; @@ -55,9 +55,9 @@ public IActionResult UploadImage([FromServices] WtmFileProvider fp, int? width = } MemoryStream ms = new MemoryStream(); oimage.Mutate(x => x.Resize(width.Value, height.Value)); - oimage.SaveAsJpeg(ms); + await oimage.SaveAsJpegAsync (ms); ms.Position = 0; - var file = fp.Upload(FileData.FileName, FileData.Length, ms, groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); + var file = await fp.Upload(FileData.FileName, FileData.Length, ms, groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); oimage.Dispose(); ms.Dispose(); @@ -106,7 +106,7 @@ public async Task GetFile([FromServices] WtmFileProvider fp, stri } var ms = new MemoryStream(); oimage.Mutate(x => x.Resize(width.Value, height.Value)); - oimage.SaveAsJpeg(ms); + await oimage.SaveAsJpegAsync (ms); ms.Position = 0; await ms?.CopyToAsync(Response.Body); file.DataStream.Dispose(); @@ -149,7 +149,7 @@ public IActionResult GetFileInfo([FromServices] WtmFileProvider fp, string id, s [Public] public async Task GetUserPhoto([FromServices] WtmFileProvider fp, string id, string csName = null, int? width = null, int? height = null) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Redirect(Wtm.ConfigInfo.MainHost+ Request.Path); } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkGroupController.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkGroupController.cs index 607479b1e..0ae97c9da 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkGroupController.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkGroupController.cs @@ -19,9 +19,9 @@ public class FrameworkGroupController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkGroupSearcher searcher) + public async Task Search (FrameworkGroupSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -47,9 +47,9 @@ public FrameworkGroupVM Get(Guid id) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkGroupVM vm) + public async Task Add (FrameworkGroupVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -59,7 +59,7 @@ public IActionResult Add(FrameworkGroupVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -74,9 +74,9 @@ public IActionResult Add(FrameworkGroupVM vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkGroupVM vm) + public async Task Edit (FrameworkGroupVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -86,7 +86,7 @@ public IActionResult Edit(FrameworkGroupVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -102,7 +102,7 @@ public IActionResult Edit(FrameworkGroupVM vm) [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -117,7 +117,7 @@ public async Task BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -126,32 +126,32 @@ public async Task BatchDelete(string[] ids) var gr = DC.Set().Where(x => GroupCode.Contains(x.GroupCode)).ToList(); var itcodes = gr.Select(x => x.UserCode).ToArray(); DC.Set().RemoveRange(gr); - DC.SaveChanges(); + await DC.SaveChangesAsync(); await Wtm.RemoveUserCacheByGroup(GroupCode.ToArray()); - Wtm.RemoveGroupCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + Wtm.RemoveGroupCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); return Ok(ids.Count()); } } [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkGroupSearcher searcher) + public async Task ExportExcel (FrameworkGroupSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -161,14 +161,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -185,29 +185,29 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkGroupImportVM vm) + public async Task Import (FrameworkGroupImportVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } else { - Wtm.RemoveGroupCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + Wtm.RemoveGroupCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); return Ok(vm.EntityList.Count); } } [AllRights] [HttpGet("[action]")] - public IActionResult GetParents() + public async Task GetParents () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkgroup/GetParents").Result; } @@ -217,9 +217,9 @@ public IActionResult GetParents() [AllRights] [HttpGet("[action]")] - public IActionResult GetParentsTree() + public async Task GetParentsTree () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkgroup/GetParentsTree").Result; } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkMenuController.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkMenuController.cs index 024cff220..714fc4537 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkMenuController.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkMenuController.cs @@ -45,7 +45,7 @@ public FrameworkMenuVM2 Get(Guid id) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkMenuVM2 vm) + public async Task Add (FrameworkMenuVM2 vm) { if (!ModelState.IsValid) { @@ -53,7 +53,7 @@ public IActionResult Add(FrameworkMenuVM2 vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -68,7 +68,7 @@ public IActionResult Add(FrameworkMenuVM2 vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkMenuVM2 vm) + public async Task Edit (FrameworkMenuVM2 vm) { if (!ModelState.IsValid) { @@ -76,7 +76,7 @@ public IActionResult Edit(FrameworkMenuVM2 vm) } else { - vm.DoEdit(true); + await vm.DoEdit(true); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -90,7 +90,7 @@ public IActionResult Edit(FrameworkMenuVM2 vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -101,7 +101,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -113,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(BaseSearcher searcher) + public async Task ExportExcel (BaseSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -131,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("_Admin.UnsetPages")] @@ -173,9 +173,9 @@ public ActionResult GetActionsByModel(string ModelName) [ActionDescription("GetFolders")] [HttpGet("GetFolders")] [AllRights] - public ActionResult GetFolders() + public async Task GetFolders () { - var AllParents = DC.Set().Where(x => x.FolderOnly == true).OrderBy(x => x.DisplayOrder).GetSelectListItems(Wtm, x => x.PageName); + var AllParents = await DC.Set().Where(x => x.FolderOnly == true).OrderBy(x => x.DisplayOrder).GetSelectListItems(Wtm, x => x.PageName); foreach (var p in AllParents) { if (p.Text.StartsWith("MenuKey.")) diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkRoleController.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkRoleController.cs index 62724cfde..6e4bf5178 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkRoleController.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkRoleController.cs @@ -19,9 +19,9 @@ public class FrameworkRoleController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkRoleSearcher searcher) + public async Task Search (FrameworkRoleSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -78,9 +78,9 @@ public async Task EditPrivilege(FrameworkRoleMDVM2 vm) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkRoleVM vm) + public async Task Add (FrameworkRoleVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -90,7 +90,7 @@ public IActionResult Add(FrameworkRoleVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -105,9 +105,9 @@ public IActionResult Add(FrameworkRoleVM vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkRoleVM vm) + public async Task Edit (FrameworkRoleVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -117,7 +117,7 @@ public IActionResult Edit(FrameworkRoleVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -133,7 +133,7 @@ public IActionResult Edit(FrameworkRoleVM vm) [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -148,7 +148,7 @@ public async Task BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -157,32 +157,32 @@ public async Task BatchDelete(string[] ids) var ur = DC.Set().Where(x => RoleCode.Contains(x.RoleCode)).ToList(); var itcodes = ur.Select(x => x.UserCode).ToArray(); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); await Wtm.RemoveUserCacheByRole(itcodes); - await Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant); + await Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant); return Ok(ids.Count()); } } [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkRoleSearcher searcher) + public async Task ExportExcel (FrameworkRoleSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -192,14 +192,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -216,20 +216,20 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkRoleImportVM vm) + public async Task Import (FrameworkRoleImportVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } else { - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); return Ok(vm.EntityList.Count); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkTenantController.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkTenantController.cs index 659455da6..2c2564557 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkTenantController.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkTenantController.cs @@ -20,9 +20,9 @@ public class FrameworkTenantController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkTenantSearcher searcher) + public async Task Search (FrameworkTenantSearcher searcher) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -50,9 +50,9 @@ public FrameworkTenantVM Get(Guid id) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkTenantVM vm) + public async Task Add (FrameworkTenantVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -64,7 +64,7 @@ public IActionResult Add(FrameworkTenantVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -79,9 +79,9 @@ public IActionResult Add(FrameworkTenantVM vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkTenantVM vm) + public async Task Edit (FrameworkTenantVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -93,7 +93,7 @@ public IActionResult Edit(FrameworkTenantVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -107,9 +107,9 @@ public IActionResult Edit(FrameworkTenantVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -124,7 +124,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -137,9 +137,9 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkTenantSearcher searcher) + public async Task ExportExcel (FrameworkTenantSearcher searcher) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -148,14 +148,14 @@ public IActionResult ExportExcel(FrameworkTenantSearcher searcher) var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -167,14 +167,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate () { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -193,16 +193,16 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkTenantImportVM vm) + public async Task Import (FrameworkTenantImportVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); return BadRequest(ModelState.GetErrorJson()); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -226,9 +226,10 @@ public IActionResult GetFrameworkTenants(string parent) - private bool CanUseTenant() + private async Task CanUseTenant() { - if (Wtm.LoginUserInfo != null && (Wtm.LoginUserInfo.CurrentTenant == null || Wtm.GlobaInfo.AllTenant.Any(x => x.TCode == Wtm.LoginUserInfo.CurrentTenant && x.Enabled == true && x.EnableSub == true))) + var _loginUserInfo = await Wtm.GetLoginUserInfo (); + if (_loginUserInfo != null && (_loginUserInfo.CurrentTenant == null || Wtm.GlobaInfo.AllTenant.Any(x => x.TCode == _loginUserInfo.CurrentTenant && x.Enabled == true && x.EnableSub == true))) { return true; } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkUserController.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkUserController.cs index e213fe8dd..f642bf164 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkUserController.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/Controllers/FrameworkUserController.cs @@ -20,9 +20,9 @@ public class FrameworkUserController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkUserSearcher searcher) + public async Task Search (FrameworkUserSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -50,7 +50,7 @@ public FrameworkUserVM Get(Guid id) [HttpPost("[action]")] public async Task Add(FrameworkUserVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -60,7 +60,7 @@ public async Task Add(FrameworkUserVM vm) } else { - await vm.DoAddAsync(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -77,7 +77,7 @@ public async Task Add(FrameworkUserVM vm) [HttpPut("[action]")] public async Task Edit(FrameworkUserVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -88,7 +88,7 @@ public async Task Edit(FrameworkUserVM vm) } else { - await vm.DoEditAsync(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -104,7 +104,7 @@ public async Task Edit(FrameworkUserVM vm) [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -119,7 +119,7 @@ public async Task BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -133,7 +133,7 @@ public async Task BatchDelete(string[] ids) DC.Set().RemoveRange(ur); var ug = DC.Set().Where(x => itcode.Contains(x.UserCode)); DC.Set().RemoveRange(ug); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); } catch @@ -149,23 +149,23 @@ public async Task BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkUserSearcher searcher) + public async Task ExportExcel (FrameworkUserSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -175,14 +175,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -202,14 +202,14 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkUserImportVM vm) + public async Task Import (FrameworkUserImportVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -222,45 +222,45 @@ public ActionResult Import(FrameworkUserImportVM vm) [HttpGet("GetFrameworkRoles")] [ActionDescription("GetRoles")] [AllRights] - public IActionResult GetFrameworkRoles() + public async Task GetFrameworkRoles () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkRoles").Result; } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); } [HttpGet("GetFrameworkGroups")] [ActionDescription("GetGroups")] [AllRights] - public IActionResult GetFrameworkGroups() + public async Task GetFrameworkGroups () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkGroups").Result; } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetFrameworkGroupsTree")] [ActionDescription("GetGroupsTree")] [AllRights] - public IActionResult GetFrameworkGroupsTree() + public async Task GetFrameworkGroupsTree () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkGroupsTree").Result; } - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetUserById")] [AllRights] - public IActionResult GetUserById(string keywords) + public async Task GetUserById (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserById").Result; } @@ -270,9 +270,9 @@ public IActionResult GetUserById(string keywords) [HttpGet("GetUserByGroup")] [AllRights] - public IActionResult GetUserByGroup(string keywords) + public async Task GetUserByGroup (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserByGroup").Result; } @@ -282,19 +282,19 @@ public IActionResult GetUserByGroup(string keywords) [HttpGet("GetUserByRole")] [AllRights] - public IActionResult GetUserByRole(string keywords) + public async Task GetUserByRole (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserByRole").Result; + return await Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserByRole"); } - var users = DC.Set().Where(x => x.RoleCode == keywords).Select(x => x.UserCode).ToList(); + var users = await DC.Set().Where(x => x.RoleCode == keywords).Select(x => x.UserCode).ToListAsync(); return Ok(users); } [ActionDescription("Login.ChangePassword")] [HttpPut("[action]")] - public IActionResult Password(FrameworkUserVM vm) + public async Task Password (FrameworkUserVM vm) { var keys = ModelState.Keys.ToList(); foreach (var item in keys) @@ -310,7 +310,7 @@ public IActionResult Password(FrameworkUserVM vm) } else { - vm.ChangePassword(); + await vm.ChangePassword(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs index 6a55aa57f..16062859a 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs @@ -1,5 +1,6 @@ // WTM默认页面 Wtm buidin page using System; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.ActionLogVMs @@ -17,8 +18,9 @@ public ActionLogBatchVM() public class ActionLog_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs index 691ec6ed4..6a97f76ff 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs @@ -1,6 +1,7 @@ // WTM默认页面 Wtm buidin page using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -8,7 +9,7 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.ActionLogVMs { public class ActionLogListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { var actions = new List { @@ -16,10 +17,10 @@ protected override List InitGridAction() this.MakeStandardAction("ActionLog", GridActionStandardTypesEnum.Details, "","_Admin", dialogWidth: 800).SetHideOnToolBar(true), this.MakeStandardAction("ActionLog", GridActionStandardTypesEnum.ExportExcel, "","_Admin"), }; - return actions; + return Task.FromResult (actions); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { var header = new List>(); @@ -62,10 +63,10 @@ protected override IEnumerable> InitGridHeader() })); header.Add(this.MakeGridHeaderAction(width: 120)); - return header; + return Task.FromResult>> (header); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.ITCode, x=>x.ITCode) @@ -76,7 +77,7 @@ public override IOrderedQueryable GetSearchQuery() .CheckWhere(Searcher.Duration,x=>x.Duration >= Searcher.Duration) .OrderByDescending(x=>x.ActionTime); - return query; + return Task.FromResult (query); } } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs index 6b9464eac..3ebee73b0 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -11,7 +12,7 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs public class DataPrivilegeListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { string tp = ""; if (Searcher.DpType == DpTypeEnum.User) @@ -23,16 +24,16 @@ protected override List InitGridAction() tp = "UserGroup"; } - return new List + return Task.FromResult (new List { this.MakeStandardAction("DataPrivilege", GridActionStandardTypesEnum.Create, "","_Admin", dialogWidth: 800).SetQueryString($"Type={tp}"), this.MakeStandardAction("DataPrivilege", GridActionStandardTypesEnum.ExportExcel, "","_Admin"), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name, 200), this.MakeGridHeader(x => x.PName).SetFormat((entity,val)=>GetPrivilegeName(entity)), this.MakeGridHeader(x => x.TableName), @@ -40,7 +41,7 @@ protected override IEnumerable> InitGridHead this.MakeGridHeader(x=>x.Edit,200).SetFormat((entity,val)=>GetOperation(entity)).SetHeader(Localizer["Sys.Operation"]).SetDisableExport(), this.MakeGridHeader(x => x.DpType).SetHide(true), this.MakeGridHeader(x => x.TargetId).SetHide(true) - }; + }); } @@ -81,7 +82,7 @@ public List GetOperation(DataPrivilege_ListView item) /// /// 查询结果 /// - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { IOrderedQueryable query = null; if (Searcher.DpType == DpTypeEnum.User) @@ -117,10 +118,10 @@ public override IOrderedQueryable GetSearchQuery() .OrderByDescending(x => x.Name).OrderByDescending(x => x.TableName); } - return query; + return Task.FromResult (query); } - public override void AfterDoSearcher() + public override async Task AfterDoSearcher() { if (Searcher.DpType == DpTypeEnum.User) { @@ -128,9 +129,9 @@ public override void AfterDoSearcher() } var groupIDs = EntityList.Select(x=>x.TargetId).ToList(); Dictionary groupdata = new Dictionary(); - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - var dd = Wtm.CallAPI>("mainhost", "/api/_account/GetFrameworkGroups").Result; + var dd = await Wtm.CallAPI>("mainhost", "/api/_account/GetFrameworkGroups"); if(dd.Data != null) { foreach (var item in dd.Data) @@ -141,7 +142,7 @@ public override void AfterDoSearcher() } else { - var ag = Wtm.GetTenantGroups(Wtm.LoginUserInfo?.CurrentTenant); + var ag = Wtm.GetTenantGroups((await Wtm.GetLoginUserInfo ())?.CurrentTenant); foreach (var item in ag) { groupdata.TryAdd(item.GroupCode, item.GroupName); @@ -151,7 +152,7 @@ public override void AfterDoSearcher() { item.Name = groupdata.ContainsKey(item.TargetId) ? groupdata[item.TargetId] : ""; } - base.AfterDoSearcher(); + await base.AfterDoSearcher(); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs index c5968f602..372fafa64 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs @@ -26,7 +27,7 @@ public class DataPrivilegeSearcher : BaseSearcher public DpTypeEnum DpType { get; set; } public Guid? DomainID { get; set; } public List AllDomains { get; set; } - protected override void InitVM() + protected override async Task InitVM() { TableNames = new List(); } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs index aa3564868..5257d6e1e 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs @@ -29,7 +29,7 @@ public DataPrivilegeVM() IsAll = false; } - protected override void InitVM() + protected override async Task InitVM() { TableNames = new List(); if (ControllerName.Contains("/api") == false) @@ -57,14 +57,14 @@ protected override void InitVM() } - protected override void ReInitVM() + protected override async Task ReInitVM() { TableNames = new List(); AllItems = new List(); TableNames = Wtm.DataPrivilegeSettings.ToListItems(x => x.PrivillegeName, x => x.ModelName); } - public override void Validate() + public override async Task Validate() { if (DpType == DpTypeEnum.User) { @@ -75,7 +75,7 @@ public override void Validate() else { string user = null; - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { var check = Wtm.CallAPI>("mainhost", "/api/_account/GetUserById").Result; if (check.Data != null) @@ -104,7 +104,7 @@ public override void Validate() base.Validate(); } - public override async Task DoAddAsync() + public override async Task DoAdd() { if (SelectedItemsID == null && IsAll == false) { @@ -134,7 +134,7 @@ public override async Task DoAddAsync() dp.RelateId = null; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } @@ -146,7 +146,7 @@ public override async Task DoAddAsync() dp.RelateId = id; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } @@ -159,7 +159,7 @@ public override async Task DoAddAsync() dp.RelateId = null; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } else @@ -170,7 +170,7 @@ public override async Task DoAddAsync() dp.RelateId = id; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } @@ -187,7 +187,7 @@ public override async Task DoAddAsync() } - public override async Task DoEditAsync(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { List oldIDs = null; @@ -213,7 +213,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = null; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } @@ -223,7 +223,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = null; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } @@ -238,7 +238,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = id; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } @@ -251,7 +251,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = id; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } } @@ -268,7 +268,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) } } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { List oldIDs = null; diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs index aae6714fe..a49aeb53b 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs @@ -4,6 +4,7 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs @@ -15,20 +16,20 @@ public DpListVM() NeedPage = false; } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name), - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { var dps = Wtm.DataPrivilegeSettings.Where(x => x.ModelName == Searcher.TableName).SingleOrDefault(); if (dps != null) { - return dps.GetItemList(Wtm, Searcher.Filter).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); + return (await dps.GetItemList (Wtm, Searcher.Filter)).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); } else { @@ -36,12 +37,12 @@ public override IOrderedQueryable GetSearchQuery() } } - public override IOrderedQueryable GetBatchQuery() + public override async Task> GetBatchQuery() { var dps = Wtm.DataPrivilegeSettings.Where(x => x.ModelName == Searcher.TableName).SingleOrDefault(); if (dps != null) { - return dps.GetItemList(Wtm, null,Ids).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); + return (await dps.GetItemList(Wtm, null,Ids)).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); } else { diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs index 7ef3d7a1b..ac6b92506 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Core.Support.Json; @@ -15,9 +16,9 @@ public FrameworkGroupListVM() NeedPage = false; } - protected override List InitGridAction() + protected override async Task> InitGridAction() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return new List { @@ -39,9 +40,9 @@ protected override List InitGridAction() } } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.GroupName, 220), this.MakeGridHeader(x => x.GroupCode, 120), this.MakeGridHeader(x => x.ManagerName,220).SetFormat((a,b)=>{ @@ -59,12 +60,12 @@ protected override IEnumerable> InitGridHeader( this.MakeGridHeader(x => x.GroupRemark), this.MakeGridHeader(x => x.ParentId).SetHide(), this.MakeGridHeaderAction(width: 300) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { - return DC.Set() + return Task.FromResult (DC.Set() .CheckContain(Searcher.GroupCode, x => x.GroupCode) .CheckContain(Searcher.GroupName, x => x.GroupName) .GroupJoin(DC.Set(), ok => ok.Manager, ik => ik.ITCode, (group, user) => new { user = user, group = group }) @@ -77,9 +78,9 @@ public override IOrderedQueryable GetSearchQuery() Manager = a.group.Manager, ManagerName = b.Name, }) - .OrderBy(x => x.GroupCode); + .OrderBy(x => x.GroupCode)); } - public override void AfterDoSearcher() + public override Task AfterDoSearcher() { var topdata = EntityList.MakeTree(x => x.GroupCode).FlatTree(x => x.GroupCode); if (ControllerName.Contains("/api") == false) @@ -87,7 +88,7 @@ public override void AfterDoSearcher() topdata.ForEach((x) => { int l = x.GetLevel(); for (int i = 0; i < l; i++) { x.GroupName = "    " + x.GroupName; } }); } EntityList = topdata; - + return Task.CompletedTask; } } public class FrameworkGroup_View : TreePoco diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs index 30326329f..2f25b3ed6 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs @@ -18,7 +18,7 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - public override void Validate() + public override async Task Validate() { if (string.IsNullOrEmpty(Entity.Manager) == false) { @@ -31,31 +31,31 @@ public override void Validate() base.Validate(); } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); - Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant).Wait(); + await base.DoAdd(); + Wtm.RemoveGroupCache((await GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); - Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant).Wait(); + await base.DoEdit(updateAllFields); + Wtm.RemoveGroupCache((await GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { using (var tran = DC.BeginTransaction()) { try { - await base.DoDeleteAsync(); + await base.DoDelete(); var ur = DC.Set().Where(x => x.GroupCode == Entity.GroupCode); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); await Wtm.RemoveUserCacheByGroup(Entity.GroupCode); - await Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant); + await Wtm.RemoveGroupCache((await GetLoginUserInfo ()).CurrentTenant); } catch { diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs index c09b6ed63..dbcf803d7 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkMenuVMs @@ -15,15 +16,15 @@ public FrameworkActionListVM() NeedPage = false; } - protected override List InitGridAction() + protected override Task> InitGridAction() { var actions = new List { }; - return actions; + return Task.FromResult (actions); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { var header = new List>(); @@ -32,10 +33,10 @@ protected override IEnumerable> InitGridHe header.Add(this.MakeGridHeader(x => x.ClassName, 150)); header.Add(this.MakeGridHeader(x => x.MethodName, 150)); - return header; + return Task.FromResult>> (header); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var newdc = DC as FrameworkContext; List actions = new List(); @@ -84,7 +85,7 @@ public override IOrderedQueryable GetSearchQuery() } } toremove.ForEach(x => actions.Remove(x)); - return actions.AsQueryable().OrderBy(x=>x.AreaName).ThenBy(x=>x.ModuleName).ThenBy(x=>x.MethodName); + return Task.FromResult (actions.AsQueryable ().OrderBy (x => x.AreaName).ThenBy (x => x.ModuleName).ThenBy (x => x.MethodName)); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs index 0c52f2848..10c5df118 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -13,11 +14,12 @@ public class FrameworkMenuBatchVM : BaseBatchVM DoBatchDelete() { if (Ids != null) { @@ -27,7 +29,7 @@ public override bool DoBatchDelete() DC.CascadeDelete(f); } } - DC.SaveChanges(); + await DC.SaveChangesAsync(); return true; } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs index cb8bd000c..4444ac8e2 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs @@ -4,6 +4,8 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text.RegularExpressions; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -16,7 +18,7 @@ public FrameworkMenuListVM2() this.NeedPage = false; } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { List> rv = new List>(); rv.AddRange(new GridColumn[] { @@ -32,15 +34,15 @@ protected override IEnumerable> InitGridHead this.MakeGridHeader(x=>x.ParentId).SetHide(), this.MakeGridHeaderAction(width: 290) }); - return rv; + return Task.FromResult>> (rv); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { List data = new List(); using (var maindc = Wtm.CreateDC(false, "default")) { - data = maindc.Set().ToList(); + data = await maindc.Set().ToListAsync(); } var topdata = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder).Where(x => x.IsInside == false || x.FolderOnly == true || x.Url.EndsWith("/Index") || string.IsNullOrEmpty(x.MethodName)).ToList(); foreach (var item in topdata) diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs index 3550ccff2..8106fd602 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -27,12 +28,12 @@ public FrameworkMenuVM2() SelectedRolesCodes = new List(); } - protected override void InitVM() + protected override async Task InitVM() { - SelectedRolesCodes.AddRange(DC.Set().Where(x => x.MenuItemId == Entity.ID && x.RoleCode != null && x.Allowed == true).Select(x => x.RoleCode).ToList()); + SelectedRolesCodes.AddRange(await DC.Set().Where(x => x.MenuItemId == Entity.ID && x.RoleCode != null && x.Allowed == true).Select(x => x.RoleCode).ToListAsync()); SelectedRolesCodes = SelectedRolesCodes.Distinct().ToList(); - var data = DC.Set().ToList(); + var data = await DC.Set().ToListAsync (); var topMenu = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder); var modules = Wtm.GlobaInfo.AllModule; @@ -42,7 +43,7 @@ protected override void InitVM() if (SelectedModule != null) { var urls = modules.Where(x => x.FullName == SelectedModule && x.IsApi == true).SelectMany(x => x.Actions).Where(x => x.IgnorePrivillege == false).Select(x => x.Url).ToList(); - SelectedActionIDs = DC.Set().Where(x => urls.Contains(x.Url) && x.IsInside == true && x.FolderOnly == false).Select(x => x.MethodName).ToList(); + SelectedActionIDs = await DC.Set().Where(x => urls.Contains(x.Url) && x.IsInside == true && x.FolderOnly == false).Select(x => x.MethodName).ToListAsync (); } else { @@ -51,7 +52,7 @@ protected override void InitVM() } } - public override void Validate() + public override async Task Validate() { if (Entity.IsInside == true && Entity.FolderOnly == false) { @@ -62,17 +63,17 @@ public override void Validate() else { var modules = Wtm.GlobaInfo.AllModule; - var test = DC.Set().Where(x => x.Url != null && x.Url.ToLower() == this.Entity.Url.ToLower() && x.ID != Entity.ID).FirstOrDefault(); + var test = await DC.Set().Where(x => x.Url != null && x.Url.ToLower() == this.Entity.Url.ToLower() && x.ID != Entity.ID).FirstOrDefaultAsync(); if (test != null) { MSD.AddModelError(" error", Localizer["_Admin.ModuleHasSet"]); } } } - base.Validate(); + await base.Validate(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { if (Entity.IsInside == false) { @@ -160,17 +161,17 @@ public override void DoEdit(bool updateAllFields = false) FC.Add("Entity.Children[0].MethodName", 0); FC.Add("Entity.Children[0].Url", 0); } - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); List guids = new List(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } - AddPrivilege(guids); + await AddPrivilege(guids); } - public override void DoAdd() + public override async Task DoAdd() { if (Entity.IsInside == false) { @@ -234,17 +235,17 @@ public override void DoAdd() } } - base.DoAdd(); + await base.DoAdd(); List guids = new List(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } - AddPrivilege(guids); + await AddPrivilege(guids); } - public void AddPrivilege(List menuids) + public async Task AddPrivilege(List menuids) { var admin = DC.Set().Where(x => x.RoleCode == "001").SingleOrDefault(); if (admin != null && SelectedRolesCodes.Contains(admin.RoleCode) == false) @@ -268,17 +269,17 @@ public void AddPrivilege(List menuids) } } } - DC.SaveChanges(); + await DC.SaveChangesAsync(); Wtm.RemoveUserCacheByRole(SelectedRolesCodes.ToArray()).Wait(); } - public override void DoDelete() + public override async System.Threading.Tasks.Task DoDelete () { try { DC.CascadeDelete(Entity); - DC.SaveChanges(); + await DC.SaveChangesAsync(); } catch { } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs index d2d2f6ce5..cad654f22 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs @@ -1,6 +1,7 @@ // WTM默认页面 Wtm buidin page using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Core.Support.Json; @@ -9,9 +10,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkRoleVMs { public class FrameworkRoleListVM : BasePagedListVM { - protected override List InitGridAction() + protected override async Task> InitGridAction() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return new List { @@ -34,23 +35,23 @@ protected override List InitGridAction() } } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.RoleCode, 120), this.MakeGridHeader(x => x.RoleName, 120), this.MakeGridHeader(x => x.RoleRemark), this.MakeGridHeaderAction(width: 300) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.RoleCode, x => x.RoleCode) .CheckContain(Searcher.RoleName, x => x.RoleName) .OrderBy(x => x.RoleCode); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs index b79eb180a..9b894057c 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs @@ -20,19 +20,19 @@ public FrameworkRoleMDVM2() } - protected override FrameworkRole GetById(object Id) + protected override async Task GetById(object Id) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Wtm.CallAPI("mainhost", $"/api/_frameworkrole/{Id}").Result.Data.Entity; + return (await Wtm.CallAPI("mainhost", $"/api/_frameworkrole/{Id}")).Data.Entity; } else { - return base.GetById(Id); + return await base.GetById(Id); } } - protected override void InitVM() + protected override async Task InitVM() { var allowedids = DC.Set() .Where(x => x.RoleCode == Entity.RoleCode && x.Allowed == true).Select(x => x.MenuItemId) @@ -44,9 +44,10 @@ protected override void InitVM() } var topdata = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder).Where(x => x.IsInside == false || x.FolderOnly == true || string.IsNullOrEmpty(x.MethodName)).ToList(); - if (Wtm.ConfigInfo.EnableTenant == true && LoginUserInfo.CurrentTenant != null) + var _loginUserInfo = await GetLoginUserInfo (); + if (Wtm.ConfigInfo.EnableTenant == true && _loginUserInfo.CurrentTenant != null) { - var ct = Wtm.GlobaInfo.AllTenant.Where(x => x.TCode == LoginUserInfo.CurrentTenant).FirstOrDefault(); + var ct = Wtm.GlobaInfo.AllTenant.Where(x => x.TCode == _loginUserInfo.CurrentTenant).FirstOrDefault(); for (int i = 0; i < topdata.Count; i++) { if (topdata[i].TenantAllowed == false || (topdata[i].Url != null && ct.EnableSub == false && topdata[i].Url.ToLower().Contains("frameworktenant"))) @@ -133,7 +134,7 @@ public async Task DoChangeAsync() FunctionPrivilege fp = new FunctionPrivilege(); fp.MenuItemId = menuid; fp.RoleCode = Entity.RoleCode; - fp.TenantCode = LoginUserInfo.CurrentTenant; + fp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; fp.Allowed = true; DC.Set().Add(fp); } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs index 8066549fb..63564aa4b 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs @@ -18,31 +18,31 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + await base.DoAdd(); + Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + await base.DoEdit(updateAllFields); + Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { using (var tran = DC.BeginTransaction()) { try { - await base.DoDeleteAsync(); + await base.DoDelete(); var ur = DC.Set().Where(x => x.RoleCode == Entity.RoleCode); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); await Wtm.RemoveUserCacheByRole(Entity.RoleCode); - await Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant); + await Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant); } catch { diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs index bdb64c7d0..1894031ed 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs @@ -25,7 +25,7 @@ public FrameworkTenantBatchVM() public class FrameworkTenant_BatchEdit : BaseVM { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs index c794112f1..c4f2950d7 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs @@ -28,7 +28,7 @@ public partial class FrameworkTenantTemplateVM : BaseTemplateVM [Display(Name = "Sys.Enable")] public ExcelPropety Enabled_Excel = ExcelPropety.CreateProperty(x => x.Enabled); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs index b8af97c35..5c5093f36 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs @@ -12,9 +12,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkTenantVMs { public partial class FrameworkTenantListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "_Admin", dialogWidth: 800), @@ -24,13 +24,13 @@ protected override List InitGridAction() this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], "_Admin"), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.TCode), this.MakeGridHeader(x => x.TName), this.MakeGridHeader(x => x.TDb), @@ -40,10 +40,10 @@ protected override IEnumerable> InitGridHeader this.MakeGridHeader(x => x.Enabled), this.MakeGridHeader(x => x.EnableSub), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.TCode, x=>x.TCode) @@ -62,7 +62,7 @@ public override IOrderedQueryable GetSearchQuery() EnableSub = x.EnableSub }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs index 20ec9071d..ded5def05 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs @@ -18,7 +18,7 @@ public partial class FrameworkTenantSearcher : BaseSearcher [Display(Name = "_Admin.TenantDomain")] public String TDomain { get; set; } - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs index 2373a7081..c1a6ff493 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs @@ -6,6 +6,7 @@ using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using Microsoft.EntityFrameworkCore; +using Microsoft.AspNetCore.Mvc; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkTenantVMs { @@ -26,13 +27,13 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); if (MSD.IsValid) { TenantOperation(); @@ -40,9 +41,9 @@ public override void DoAdd() } } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); if (MSD.IsValid) { if (MSD.IsValid) @@ -53,12 +54,12 @@ public override void DoEdit(bool updateAllFields = false) } } - private void TenantOperation() + private async Task TenantOperation () { List fps = new List(); - using (var userdc = LoginUserInfo.GetUserDC(Wtm)) + using (var userdc = await (await GetLoginUserInfo ()).GetUserDC(Wtm)) { - fps = userdc.Set().AsNoTracking().Where(x => x.RoleCode == AdminRoleCode).ToList(); + fps = await userdc.Set().AsNoTracking().Where(x => x.RoleCode == AdminRoleCode).ToListAsync(); List tenantmenus = new List(); using (var defaultdc = Wtm.CreateDC(false, "default", false)) { @@ -129,9 +130,9 @@ private void AddTenantData(IDataContext dc, List fps) var key = $"{GlobalConstants.CacheKey.UserInfo}:{"admin" + "$`$" + Entity.TCode}"; Cache.DeleteAsync(key).Wait(); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); Cache.Delete(nameof(GlobalData.AllTenant)); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs index 47610e589..07010f1be 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkUserVms @@ -26,10 +27,11 @@ public class ChangePasswordVM : BaseVM [StringLength(50, ErrorMessage = "Validate.{0}stringmax{1}")] public string NewPasswordComfirm { get; set; } - public override void Validate() + public override async Task Validate() { List rv = new List(); - if (DC.Set().Where(x => x.ITCode == LoginUserInfo.ITCode && x.Password == Utils.GetMD5String(OldPassword)).SingleOrDefault() == null) + var _itcode = (await GetLoginUserInfo ()).ITCode; + if (DC.Set().Where(x => x.ITCode == _itcode && x.Password == Utils.GetMD5String(OldPassword)).SingleOrDefault() == null) { MSD.AddModelError("OldPassword", Localizer["Login.OldPasswrodWrong"]); } @@ -39,14 +41,14 @@ public override void Validate() } } - public void DoChange() - { - var user = DC.Set().Where(x => x.ITCode == LoginUserInfo.ITCode).SingleOrDefault(); + public async Task DoChange() { + var _itcode = (await GetLoginUserInfo ()).ITCode; + var user = DC.Set().Where(x => x.ITCode == _itcode).SingleOrDefault(); if (user != null) { user.Password = Utils.GetMD5String(NewPassword); } - DC.SaveChanges(); + await DC.SaveChangesAsync(); } } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs index efba18b11..7e912d193 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs @@ -1,5 +1,6 @@ // WTM默认页面 Wtm buidin page using System.Collections.Generic; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkUserVms @@ -15,7 +16,7 @@ public class FrameworkUserTemplateVM : BaseTemplateVM public ExcelPropety c8 = ExcelPropety.CreateProperty(x => x.Address); public ExcelPropety c9 = ExcelPropety.CreateProperty(x => x.ZipCode); - protected override void InitVM() + protected override async Task InitVM() { } @@ -23,15 +24,15 @@ protected override void InitVM() public class FrameworkUserImportVM : BaseImportVM { - public override bool BatchSaveData() + public override async Task BatchSaveData() { - SetEntityList(); + await SetEntityList(); foreach (var item in EntityList) { item.IsValid = true; item.Password = Utils.GetMD5String(item.Password); } - return base.BatchSaveData(); + return await base.BatchSaveData(); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs index f3625412c..e47ef0cda 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -11,9 +12,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkUserVms { public class FrameworkUserListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.Create, "", "_Admin",dialogWidth: 800), this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.Edit, "", "_Admin",dialogWidth: 800), @@ -23,12 +24,12 @@ protected override List InitGridAction() this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.BatchDelete, "","_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.Import, "","_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.ExportExcel, "","_Admin"), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.ITCode), this.MakeGridHeader(x => x.Name), this.MakeGridHeader(x => x.Gender,80), @@ -38,7 +39,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x=> x.PhotoId,170).SetFormat(PhotoIdFormat), this.MakeGridHeader(x => x.IsValid).SetHeader(Localizer["Sys.Enable"]).SetWidth(80), this.MakeGridHeaderAction(width: 280) - }; + }); } private List PhotoIdFormat(FrameworkUser_View entity, object val) @@ -50,7 +51,7 @@ private List PhotoIdFormat(FrameworkUser_View entity, object v }; } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.ITCode,x=>x.ITCode) @@ -71,7 +72,7 @@ public override IOrderedQueryable GetSearchQuery() Gender = x.Gender }) .OrderBy(x => x.ITCode); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs index 7a1c57b8a..73a143a5a 100644 --- a/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs +++ b/demo/WalkingTec.Mvvm.Vue3Demo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs @@ -29,13 +29,13 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - protected override void InitVM() + protected override async Task InitVM() { SelectedRolesCodes = DC.Set().Where(x => x.UserCode == Entity.ITCode).Select(x => x.RoleCode).ToList(); SelectedGroupCodes = DC.Set().Where(x => x.UserCode == Entity.ITCode).Select(x => x.GroupCode).ToList(); } - public override async Task DoAddAsync() + public override async Task DoAdd() { using (var trans = DC.BeginTransaction()) { @@ -47,7 +47,7 @@ public override async Task DoAddAsync() { RoleCode = rolecode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(r); } @@ -60,14 +60,14 @@ public override async Task DoAddAsync() { GroupCode = groupcode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(g); } } Entity.IsValid = true; Entity.Password = Utils.GetMD5String(Entity.Password); - await base.DoAddAsync(); + await base.DoAdd(); if (MSD.IsValid) { trans.Commit(); @@ -79,7 +79,7 @@ public override async Task DoAddAsync() } } - public override async Task DoEditAsync(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { using (var trans = DC.BeginTransaction()) { @@ -109,7 +109,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) { RoleCode = rolecode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(r); } @@ -122,12 +122,12 @@ public override async Task DoEditAsync(bool updateAllFields = false) { GroupCode = groupcode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(g); } } - await base.DoEditAsync(updateAllFields); + await base.DoEdit(updateAllFields); if (MSD.IsValid) { trans.Commit(); @@ -140,18 +140,18 @@ public override async Task DoEditAsync(bool updateAllFields = false) } } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { using (var tran = DC.BeginTransaction()) { try { - await base.DoDeleteAsync(); + await base.DoDelete(); var ur = DC.Set().Where(x => x.UserCode == Entity.ITCode); DC.Set().RemoveRange(ur); var ug = DC.Set().Where(x => x.UserCode == Entity.ITCode); DC.Set().RemoveRange(ug); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); } catch @@ -162,11 +162,11 @@ public override async Task DoDeleteAsync() await Wtm.RemoveUserCache(Entity.ITCode); } - public void ChangePassword() + public async Task ChangePassword() { Entity.Password = Utils.GetMD5String(Entity.Password); DC.UpdateProperty(Entity, x => x.Password); - DC.SaveChanges(); + await DC.SaveChangesAsync(); } } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/Controllers/SchoolController.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/Controllers/SchoolController.cs index 7615a90a1..9326e5503 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/Controllers/SchoolController.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/Controllers/SchoolController.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; @@ -7,7 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.VueDemo.BasicData.ViewModels.SchoolVMs; using WalkingTec.Mvvm.Demo.Models; - +using System.Threading.Tasks; namespace WalkingTec.Mvvm.VueDemo.Controllers { @@ -20,7 +20,7 @@ public partial class SchoolController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(SchoolSearcher searcher) + public async Task Search(SchoolSearcher searcher) { if (ModelState.IsValid) { @@ -44,7 +44,7 @@ public SchoolVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(SchoolVM vm) + public async Task Add (SchoolVM vm) { if (!ModelState.IsValid) { @@ -52,7 +52,7 @@ public IActionResult Add(SchoolVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -67,7 +67,7 @@ public IActionResult Add(SchoolVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(SchoolVM vm) + public async Task Edit (SchoolVM vm) { if (!ModelState.IsValid) { @@ -75,7 +75,7 @@ public IActionResult Edit(SchoolVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -89,7 +89,7 @@ public IActionResult Edit(SchoolVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -100,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -113,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(SchoolSearcher searcher) + public async Task ExportExcel (SchoolSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -131,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -151,10 +151,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(SchoolImportVM vm) + public async Task Import (SchoolImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolBatchVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolBatchVM.cs index 2a3609391..5c7ebaa39 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolBatchVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolBatchVM.cs @@ -26,7 +26,7 @@ public SchoolBatchVM() public class School_BatchEdit : BaseVM { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolImportVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolImportVM.cs index 9549ce18e..349fd63fb 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolImportVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolImportVM.cs @@ -21,7 +21,7 @@ public partial class SchoolTemplateVM : BaseTemplateVM [Display(Name = "备注")] public ExcelPropety Remark_Excel = ExcelPropety.CreateProperty(x => x.Remark); - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolListVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolListVM.cs index 134658039..ed1bdd89d 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolListVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,16 +14,16 @@ namespace WalkingTec.Mvvm.VueDemo.BasicData.ViewModels.SchoolVMs public partial class SchoolListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.SchoolCode), this.MakeGridHeader(x => x.SchoolName), this.MakeGridHeader(x => x.FileId).SetFormat(FileIdFormat), this.MakeGridHeader(x => x.SchoolType), this.MakeGridHeader(x => x.Remark), this.MakeGridHeaderAction(width: 200) - }; + }); } private List FileIdFormat(School_View entity, object val) { @@ -35,7 +35,7 @@ private List FileIdFormat(School_View entity, object val) } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .Select(x => new School_View @@ -48,7 +48,7 @@ public override IOrderedQueryable GetSearchQuery() Remark = x.Remark, }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolSearcher.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolSearcher.cs index 2c0f47830..9b982a1cc 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolSearcher.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolSearcher.cs @@ -13,7 +13,7 @@ namespace WalkingTec.Mvvm.VueDemo.BasicData.ViewModels.SchoolVMs public partial class SchoolSearcher : BaseSearcher { - protected override void InitVM() + protected override async Task InitVM() { } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolVM.cs index a4c10640b..8e05ff84f 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/BasicData/ViewModels/SchoolVMs/SchoolVM.cs @@ -17,23 +17,23 @@ public SchoolVM() { } - protected override void InitVM() + protected override async Task InitVM() { } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/AccountController.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/AccountController.cs index 0388c1f4e..54278bb30 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/AccountController.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/AccountController.cs @@ -10,6 +10,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -32,7 +33,7 @@ public class AccountController : BaseApiController public async Task Login([FromForm] string account, [FromForm] string password, [FromForm] string tenant = null, [FromForm] bool rememberLogin = false) { - var user = Wtm.DoLogin(account, password, tenant); + var user = await Wtm.DoLogin(account, password, tenant); if (user == null) { return BadRequest(Localizer["Sys.LoginFailed"].Value); @@ -40,7 +41,7 @@ public async Task Login([FromForm] string account, [FromForm] str //其他属性可以通过user.Attributes["aaa"] = "bbb"方式赋值 - Wtm.LoginUserInfo = user; + Wtm.SetLoginUserInfo (user); AuthenticationProperties properties = null; if (rememberLogin) @@ -52,9 +53,9 @@ public async Task Login([FromForm] string account, [FromForm] str }; } - var principal = Wtm.LoginUserInfo.CreatePrincipal(); + var principal = (await Wtm.GetLoginUserInfo ()).CreatePrincipal(); await Wtm.HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, properties); - return CheckUserInfo(); + return await CheckUserInfo(); } @@ -62,7 +63,7 @@ public async Task Login([FromForm] string account, [FromForm] str [HttpPost("[action]")] public async Task LoginJwt(SimpleLogin loginInfo) { - var user = Wtm.DoLogin(loginInfo.Account, loginInfo.Password, loginInfo.Tenant); + var user = await Wtm.DoLogin(loginInfo.Account, loginInfo.Password, loginInfo.Tenant); if (user == null) { ModelState.AddModelError(" ", Localizer["Sys.LoginFailed"]); @@ -71,9 +72,9 @@ public async Task LoginJwt(SimpleLogin loginInfo) //其他属性可以通过user.Attributes["aaa"] = "bbb"方式赋值 - Wtm.LoginUserInfo = user; + Wtm.SetLoginUserInfo (user); var authService = HttpContext.RequestServices.GetService(typeof(ITokenService)) as ITokenService; - var token = await authService.IssueTokenAsync(Wtm.LoginUserInfo); + var token = await authService.IssueTokenAsync((await Wtm.GetLoginUserInfo ())); return Content(JsonSerializer.Serialize(token), "application/json"); } @@ -81,28 +82,28 @@ public async Task LoginJwt(SimpleLogin loginInfo) [HttpGet("[action]")] public async Task LoginRemote([FromQuery] string _remotetoken) { - if (Wtm?.LoginUserInfo != null) + if ((await Wtm?.GetLoginUserInfo ()) != null) { - var principal = Wtm.LoginUserInfo.CreatePrincipal(); + var principal = (await Wtm.GetLoginUserInfo ()).CreatePrincipal(); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, null); } - return CheckUserInfo(); + return await CheckUserInfo(); } [AllRights] [HttpGet("[action]")] - public IActionResult SetTenant([FromQuery] string tenant) + public async Task SetTenant([FromQuery] string tenant) { - bool rv = Wtm.SetCurrentTenant(tenant == "" ? null : tenant); + bool rv = await Wtm.SetCurrentTenant(tenant == "" ? null : tenant); return Ok(rv); } [AllowAnonymous] [HttpPost("[action]")] - public IActionResult Reg(SimpleReg regInfo) + public async Task Reg(SimpleReg regInfo) { - var exist = DC.Set().Any(x => x.ITCode.ToLower() == regInfo.ITCode.ToLower()); + var exist = await DC.Set().AnyAsync(x => x.ITCode.ToLower() == regInfo.ITCode.ToLower()); if (exist == true) { @@ -110,7 +111,7 @@ public IActionResult Reg(SimpleReg regInfo) return BadRequest(ModelState.GetErrorJson()); } - var hasuserrole = DC.Set().Where(x => x.RoleCode == "002").FirstOrDefault(); + var hasuserrole = await DC.Set().Where(x => x.RoleCode == "002").FirstOrDefaultAsync(); FrameworkUser user = new FrameworkUser { ITCode = regInfo.ITCode, @@ -129,7 +130,7 @@ public IActionResult Reg(SimpleReg regInfo) DC.Set().Add(userrole); } DC.Set().Add(user); - DC.SaveChanges(); + await DC.SaveChangesAsync(); return Ok(); } @@ -152,18 +153,18 @@ public IActionResult RefreshToken(string refreshToken) [AllRights] [HttpGet("[action]")] - public IActionResult CheckUserInfo(bool IsApi = true) + public async Task CheckUserInfo(bool IsApi = true) { - if (Wtm.LoginUserInfo == null) + if ((await Wtm.GetLoginUserInfo ()) == null) { return BadRequest(); } else { - var forapi = Wtm.LoginUserInfo; + var forapi = (await Wtm.GetLoginUserInfo ()); if (IsApi) { - forapi.SetAttributesForApi(Wtm); + await forapi.SetAttributesForApi(Wtm); } forapi.DataPrivileges = null; forapi.FunctionPrivileges = null; @@ -175,7 +176,7 @@ public IActionResult CheckUserInfo(bool IsApi = true) { forapi.Attributes.Remove("IsMainHost"); } - if (ConfigInfo.HasMainHost && string.IsNullOrEmpty(Wtm.LoginUserInfo.TenantCode) == true) + if (ConfigInfo.HasMainHost && string.IsNullOrEmpty((await Wtm.GetLoginUserInfo ()).TenantCode) == true) { forapi.Attributes.Add("IsMainHost", true); } @@ -190,9 +191,9 @@ public IActionResult CheckUserInfo(bool IsApi = true) [AllRights] [HttpPost("[action]")] - public IActionResult ChangePassword(ChangePasswordVM vm) + public async Task ChangePassword(ChangePasswordVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -202,7 +203,7 @@ public IActionResult ChangePassword(ChangePasswordVM vm) } else { - vm.DoChange(); + await vm.DoChange(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -219,7 +220,7 @@ public IActionResult ChangePassword(ChangePasswordVM vm) [HttpGet("[action]")] public async Task Logout() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { await Wtm.CallAPI("mainhost", "/api/_account/logout", HttpMethodEnum.GET, new { }, 10); return Ok(ConfigInfo.MainHost); @@ -235,73 +236,73 @@ public async Task Logout() [HttpGet("GetFrameworkRoles")] [ActionDescription("GetRoles")] [AllRights] - public IActionResult GetFrameworkRoles() + public async Task GetFrameworkRoles() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_account/GetFrameworkRoles").Result; + return await Request.RedirectCall(Wtm, "/api/_account/GetFrameworkRoles"); } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); } [HttpGet("GetFrameworkGroups")] [ActionDescription("GetGroups")] [AllRights] - public IActionResult GetFrameworkGroups() + public async Task GetFrameworkGroups() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_account/GetFrameworkGroups").Result; + return await Request.RedirectCall(Wtm, "/api/_account/GetFrameworkGroups"); } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetFrameworkGroupsTree")] [ActionDescription("GetGroupsTree")] [AllRights] - public IActionResult GetFrameworkGroupsTree() + public async Task GetFrameworkGroupsTree() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_account/GetFrameworkGroupsTree").Result; } - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetUserById")] [AllRights] - public IActionResult GetUserById(string keywords) + public async Task GetUserById (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_account/GetUserById").Result; + return await Request.RedirectCall(Wtm, "/api/_account/GetUserById"); } - var users = DC.Set().Where(x => x.ITCode.ToLower().StartsWith(keywords.ToLower())).GetSelectListItems(Wtm, x => x.Name + "(" + x.ITCode + ")", x => x.ITCode); + var users = await DC.Set().Where(x => x.ITCode.ToLower().StartsWith(keywords.ToLower())).GetSelectListItems(Wtm, x => x.Name + "(" + x.ITCode + ")", x => x.ITCode); return Ok(users); } [HttpGet("GetUserByGroup")] [AllRights] - public IActionResult GetUserByGroup(string keywords) + public async Task GetUserByGroup (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_account/GetUserByGroup").Result; + return await Request.RedirectCall(Wtm, "/api/_account/GetUserByGroup"); } - var users = DC.Set().Where(x => x.GroupCode == keywords).Select(x => x.UserCode).ToList(); + var users = await DC.Set().Where(x => x.GroupCode == keywords).Select(x => x.UserCode).ToListAsync(); return Ok(users); } [HttpGet("GetUserByRole")] [AllRights] - public IActionResult GetUserByRole(string keywords) + public async Task GetUserByRole (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_account/GetUserByRole").Result; + return await Request.RedirectCall(Wtm, "/api/_account/GetUserByRole"); } - var users = DC.Set().Where(x => x.RoleCode == keywords).Select(x => x.UserCode).ToList(); + var users = await DC.Set().Where(x => x.RoleCode == keywords).Select(x => x.UserCode).ToListAsync(); return Ok(users); } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/ActionLogController.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/ActionLogController.cs index 122b7bd26..667f5d34a 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/ActionLogController.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/ActionLogController.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -18,7 +19,7 @@ public class ActionLogController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(ActionLogSearcher searcher) + public async Task Search(ActionLogSearcher searcher) { if (ModelState.IsValid) { @@ -42,7 +43,7 @@ public ActionLogVM Get(Guid id) [HttpPost("[action]")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -53,7 +54,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -66,17 +67,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(ActionLogSearcher searcher) + public async Task ExportExcel (ActionLogSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -84,7 +85,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/DataPrivilegeController.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/DataPrivilegeController.cs index 0521d7d46..910d59464 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/DataPrivilegeController.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/DataPrivilegeController.cs @@ -59,7 +59,7 @@ public async Task Add(DataPrivilegeVM vm) } else { - await vm.DoAddAsync(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -82,7 +82,7 @@ public async Task Edit(DataPrivilegeVM vm) } else { - await vm.DoEditAsync(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -108,7 +108,7 @@ public async Task Delete(SimpleDpModel dp) { vm = Wtm.CreateVM(values: x => x.Entity.TableName == dp.ModelName && x.Entity.GroupCode == dp.Id && x.DpType == dp.Type); } - await vm.DoDeleteAsync(); + await vm.DoDelete(); return Ok(1); } @@ -116,13 +116,13 @@ public async Task Delete(SimpleDpModel dp) [AllRights] [HttpGet("[action]")] - public ActionResult GetPrivilegeByTableName(string table) + public async Task GetPrivilegeByTableName(string table) { var AllItems = new List(); var dps =Wtm.DataPrivilegeSettings.Where(x => x.ModelName == table).SingleOrDefault(); if (dps != null) { - AllItems = dps.GetItemList(Wtm); + AllItems = await dps.GetItemList(Wtm); } return Ok(AllItems); } @@ -137,24 +137,24 @@ public ActionResult GetPrivileges() [AllRights] [HttpGet("[action]")] - public IActionResult GetUserGroups() + public async Task GetUserGroups () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_DataPrivilege/GetUserGroups").Result; + return await Request.RedirectCall(Wtm, "/api/_DataPrivilege/GetUserGroups"); } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [AllRights] [HttpGet("[action]")] - public IActionResult GetUserGroupsTree() + public async Task GetUserGroupsTree () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_DataPrivilege/GetUserGroupsTree").Result; + return await Request.RedirectCall(Wtm, "/api/_DataPrivilege/GetUserGroupsTree"); } - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FileApiController.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FileApiController.cs index f3549f710..18f16f1b2 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FileApiController.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FileApiController.cs @@ -23,20 +23,20 @@ public class FileApiController : BaseApiController { [HttpPost("[action]")] [ActionDescription("UploadFile")] - public IActionResult Upload([FromServices] WtmFileProvider fp, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) + public async Task Upload([FromServices] WtmFileProvider fp, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) { var FileData = Request.Form.Files[0]; - var file = fp.Upload(FileData.FileName, FileData.Length, FileData.OpenReadStream(), groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); + var file = await fp.Upload(FileData.FileName, FileData.Length, FileData.OpenReadStream(), groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); return Ok(new { Id = file.GetID(), Name = file.FileName }); } [HttpPost("[action]")] [ActionDescription("UploadPic")] - public IActionResult UploadImage([FromServices] WtmFileProvider fp, int? width = null, int? height = null, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) + public async Task UploadImage([FromServices] WtmFileProvider fp, int? width = null, int? height = null, string sm = null, string groupName = null, string subdir = null, string extra = null, string csName = null) { if (width == null && height == null) { - return Upload(fp, sm, groupName, csName); + return await Upload(fp, sm, groupName, csName); } var FileData = Request.Form.Files[0]; @@ -55,9 +55,9 @@ public IActionResult UploadImage([FromServices] WtmFileProvider fp, int? width = } MemoryStream ms = new MemoryStream(); oimage.Mutate(x => x.Resize(width.Value, height.Value)); - oimage.SaveAsJpeg(ms); + await oimage.SaveAsJpegAsync (ms); ms.Position = 0; - var file = fp.Upload(FileData.FileName, FileData.Length, ms, groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); + var file = await fp.Upload(FileData.FileName, FileData.Length, ms, groupName, subdir, extra, sm, Wtm.CreateDC(cskey: csName)); oimage.Dispose(); ms.Dispose(); @@ -106,7 +106,7 @@ public async Task GetFile([FromServices] WtmFileProvider fp, stri } var ms = new MemoryStream(); oimage.Mutate(x => x.Resize(width.Value, height.Value)); - oimage.SaveAsJpeg(ms); + await oimage.SaveAsJpegAsync (ms); ms.Position = 0; await ms?.CopyToAsync(Response.Body); file.DataStream.Dispose(); @@ -149,7 +149,7 @@ public IActionResult GetFileInfo([FromServices] WtmFileProvider fp, string id, s [Public] public async Task GetUserPhoto([FromServices] WtmFileProvider fp, string id, string csName = null, int? width = null, int? height = null) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Redirect(Wtm.ConfigInfo.MainHost+ Request.Path); } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkGroupController.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkGroupController.cs index 607479b1e..413ef1027 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkGroupController.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkGroupController.cs @@ -19,9 +19,9 @@ public class FrameworkGroupController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkGroupSearcher searcher) + public async Task Search(FrameworkGroupSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -47,9 +47,9 @@ public FrameworkGroupVM Get(Guid id) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkGroupVM vm) + public async Task Add(FrameworkGroupVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -59,7 +59,7 @@ public IActionResult Add(FrameworkGroupVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -74,9 +74,9 @@ public IActionResult Add(FrameworkGroupVM vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkGroupVM vm) + public async Task Edit(FrameworkGroupVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -86,7 +86,7 @@ public IActionResult Edit(FrameworkGroupVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -102,7 +102,7 @@ public IActionResult Edit(FrameworkGroupVM vm) [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -117,7 +117,7 @@ public async Task BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -126,32 +126,32 @@ public async Task BatchDelete(string[] ids) var gr = DC.Set().Where(x => GroupCode.Contains(x.GroupCode)).ToList(); var itcodes = gr.Select(x => x.UserCode).ToArray(); DC.Set().RemoveRange(gr); - DC.SaveChanges(); + await DC.SaveChangesAsync(); await Wtm.RemoveUserCacheByGroup(GroupCode.ToArray()); - Wtm.RemoveGroupCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + Wtm.RemoveGroupCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); return Ok(ids.Count()); } } [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkGroupSearcher searcher) + public async Task ExportExcel(FrameworkGroupSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -161,14 +161,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -185,45 +185,45 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkGroupImportVM vm) + public async Task Import(FrameworkGroupImportVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } else { - Wtm.RemoveGroupCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + await Wtm.RemoveGroupCache((await Wtm.GetLoginUserInfo ()).CurrentTenant); return Ok(vm.EntityList.Count); } } [AllRights] [HttpGet("[action]")] - public IActionResult GetParents() + public async Task GetParents() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_frameworkgroup/GetParents").Result; + return await Request.RedirectCall(Wtm, "/api/_frameworkgroup/GetParents"); } - var data = DC.Set().GetSelectListItems(Wtm, x => x.GroupName); + var data = await DC.Set().GetSelectListItems(Wtm, x => x.GroupName); return Ok(data); } [AllRights] [HttpGet("[action]")] - public IActionResult GetParentsTree() + public async Task GetParentsTree() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_frameworkgroup/GetParentsTree").Result; + return await Request.RedirectCall(Wtm, "/api/_frameworkgroup/GetParentsTree"); } - var data = DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName); + var data = await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName); return Ok(data); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkMenuController.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkMenuController.cs index 024cff220..365401b15 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkMenuController.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkMenuController.cs @@ -45,7 +45,7 @@ public FrameworkMenuVM2 Get(Guid id) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkMenuVM2 vm) + public async Task Add (FrameworkMenuVM2 vm) { if (!ModelState.IsValid) { @@ -53,7 +53,7 @@ public IActionResult Add(FrameworkMenuVM2 vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -68,7 +68,7 @@ public IActionResult Add(FrameworkMenuVM2 vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkMenuVM2 vm) + public async Task Edit(FrameworkMenuVM2 vm) { if (!ModelState.IsValid) { @@ -76,7 +76,7 @@ public IActionResult Edit(FrameworkMenuVM2 vm) } else { - vm.DoEdit(true); + await vm.DoEdit(true); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -90,7 +90,7 @@ public IActionResult Edit(FrameworkMenuVM2 vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -101,7 +101,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -113,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(BaseSearcher searcher) + public async Task ExportExcel (BaseSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -131,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("_Admin.UnsetPages")] @@ -173,9 +173,9 @@ public ActionResult GetActionsByModel(string ModelName) [ActionDescription("GetFolders")] [HttpGet("GetFolders")] [AllRights] - public ActionResult GetFolders() + public async Task GetFolders () { - var AllParents = DC.Set().Where(x => x.FolderOnly == true).OrderBy(x => x.DisplayOrder).GetSelectListItems(Wtm, x => x.PageName); + var AllParents = await DC.Set().Where(x => x.FolderOnly == true).OrderBy(x => x.DisplayOrder).GetSelectListItems(Wtm, x => x.PageName); foreach (var p in AllParents) { if (p.Text.StartsWith("MenuKey.")) diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkRoleController.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkRoleController.cs index 62724cfde..44192e119 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkRoleController.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkRoleController.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Mvc; @@ -19,9 +20,9 @@ public class FrameworkRoleController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkRoleSearcher searcher) + public async Task Search (FrameworkRoleSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -78,9 +79,9 @@ public async Task EditPrivilege(FrameworkRoleMDVM2 vm) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkRoleVM vm) + public async Task Add (FrameworkRoleVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -90,7 +91,7 @@ public IActionResult Add(FrameworkRoleVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -105,9 +106,9 @@ public IActionResult Add(FrameworkRoleVM vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkRoleVM vm) + public async Task Edit (FrameworkRoleVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -117,7 +118,7 @@ public IActionResult Edit(FrameworkRoleVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -133,7 +134,7 @@ public IActionResult Edit(FrameworkRoleVM vm) [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -141,48 +142,48 @@ public async Task BatchDelete(string[] ids) List RoleCode = new List(); if (ids != null && ids.Count() > 0) { - RoleCode = DC.Set().CheckIDs(new List(ids)).Select(x => x.RoleCode).ToList(); + RoleCode = await DC.Set().CheckIDs(new List(ids)).Select(x => x.RoleCode).ToListAsync(); vm.Ids = ids; } else { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } else { - var ur = DC.Set().Where(x => RoleCode.Contains(x.RoleCode)).ToList(); + var ur = await DC.Set().Where(x => RoleCode.Contains(x.RoleCode)).ToListAsync(); var itcodes = ur.Select(x => x.UserCode).ToArray(); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); await Wtm.RemoveUserCacheByRole(itcodes); - await Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant); + await Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant); return Ok(ids.Count()); } } [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkRoleSearcher searcher) + public async Task ExportExcel (FrameworkRoleSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -192,14 +193,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -216,20 +217,20 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkRoleImportVM vm) + public async Task Import(FrameworkRoleImportVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } else { - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + await Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant); return Ok(vm.EntityList.Count); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkTenantController.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkTenantController.cs index 659455da6..2c2564557 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkTenantController.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkTenantController.cs @@ -20,9 +20,9 @@ public class FrameworkTenantController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkTenantSearcher searcher) + public async Task Search (FrameworkTenantSearcher searcher) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -50,9 +50,9 @@ public FrameworkTenantVM Get(Guid id) [ActionDescription("Sys.Create")] [HttpPost("[action]")] - public IActionResult Add(FrameworkTenantVM vm) + public async Task Add (FrameworkTenantVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -64,7 +64,7 @@ public IActionResult Add(FrameworkTenantVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -79,9 +79,9 @@ public IActionResult Add(FrameworkTenantVM vm) [ActionDescription("Sys.Edit")] [HttpPut("[action]")] - public IActionResult Edit(FrameworkTenantVM vm) + public async Task Edit (FrameworkTenantVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -93,7 +93,7 @@ public IActionResult Edit(FrameworkTenantVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -107,9 +107,9 @@ public IActionResult Edit(FrameworkTenantVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -124,7 +124,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -137,9 +137,9 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkTenantSearcher searcher) + public async Task ExportExcel (FrameworkTenantSearcher searcher) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -148,14 +148,14 @@ public IActionResult ExportExcel(FrameworkTenantSearcher searcher) var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -167,14 +167,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate () { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); @@ -193,16 +193,16 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkTenantImportVM vm) + public async Task Import (FrameworkTenantImportVM vm) { - if (CanUseTenant() == false) + if (await CanUseTenant() == false) { ModelState.Clear(); ModelState.AddModelError(" TenantNotAllowed", Localizer["_Admin.TenantNotAllowed"]); return BadRequest(ModelState.GetErrorJson()); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -226,9 +226,10 @@ public IActionResult GetFrameworkTenants(string parent) - private bool CanUseTenant() + private async Task CanUseTenant() { - if (Wtm.LoginUserInfo != null && (Wtm.LoginUserInfo.CurrentTenant == null || Wtm.GlobaInfo.AllTenant.Any(x => x.TCode == Wtm.LoginUserInfo.CurrentTenant && x.Enabled == true && x.EnableSub == true))) + var _loginUserInfo = await Wtm.GetLoginUserInfo (); + if (_loginUserInfo != null && (_loginUserInfo.CurrentTenant == null || Wtm.GlobaInfo.AllTenant.Any(x => x.TCode == _loginUserInfo.CurrentTenant && x.Enabled == true && x.EnableSub == true))) { return true; } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkUserController.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkUserController.cs index e213fe8dd..2739d41d5 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkUserController.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/Controllers/FrameworkUserController.cs @@ -20,9 +20,9 @@ public class FrameworkUserController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] - public IActionResult Search(FrameworkUserSearcher searcher) + public async Task Search(FrameworkUserSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm).Result; } @@ -50,7 +50,7 @@ public FrameworkUserVM Get(Guid id) [HttpPost("[action]")] public async Task Add(FrameworkUserVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -60,7 +60,7 @@ public async Task Add(FrameworkUserVM vm) } else { - await vm.DoAddAsync(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -77,7 +77,7 @@ public async Task Add(FrameworkUserVM vm) [HttpPut("[action]")] public async Task Edit(FrameworkUserVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -88,7 +88,7 @@ public async Task Edit(FrameworkUserVM vm) } else { - await vm.DoEditAsync(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -104,7 +104,7 @@ public async Task Edit(FrameworkUserVM vm) [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -113,13 +113,13 @@ public async Task BatchDelete(string[] ids) if (ids != null && ids.Count() > 0) { vm.Ids = ids; - itcode = DC.Set().CheckIDs(new List(ids)).Select(x => x.ITCode).ToList(); + itcode = await DC.Set().CheckIDs(new List(ids)).Select(x => x.ITCode).ToListAsync(); } else { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -133,7 +133,7 @@ public async Task BatchDelete(string[] ids) DC.Set().RemoveRange(ur); var ug = DC.Set().Where(x => itcode.Contains(x.UserCode)); DC.Set().RemoveRange(ug); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); } catch @@ -149,23 +149,23 @@ public async Task BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("[action]")] - public IActionResult ExportExcel(FrameworkUserSearcher searcher) + public async Task ExportExcel(FrameworkUserSearcher searcher) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds(string[] ids) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -175,14 +175,14 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] - public IActionResult GetExcelTemplate() + public async Task GetExcelTemplate() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } @@ -202,14 +202,14 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("[action]")] - public ActionResult Import(FrameworkUserImportVM vm) + public async Task Import (FrameworkUserImportVM vm) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Content(Localizer["_Admin.HasMainHost"]); } - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -222,73 +222,73 @@ public ActionResult Import(FrameworkUserImportVM vm) [HttpGet("GetFrameworkRoles")] [ActionDescription("GetRoles")] [AllRights] - public IActionResult GetFrameworkRoles() + public async Task GetFrameworkRoles () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkRoles").Result; + return await Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkRoles"); } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.RoleName, x => x.RoleCode)); } [HttpGet("GetFrameworkGroups")] [ActionDescription("GetGroups")] [AllRights] - public IActionResult GetFrameworkGroups() + public async Task GetFrameworkGroups () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkGroups").Result; + return await Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkGroups"); } - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetFrameworkGroupsTree")] [ActionDescription("GetGroupsTree")] [AllRights] - public IActionResult GetFrameworkGroupsTree() + public async Task GetFrameworkGroupsTree () { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetFrameworkGroupsTree").Result; } - return Ok(DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); + return Ok(await DC.Set().GetTreeSelectListItems(Wtm, x => x.GroupName, x => x.GroupCode)); } [HttpGet("GetUserById")] [AllRights] - public IActionResult GetUserById(string keywords) + public async Task GetUserById (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserById").Result; + return await Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserById"); } - var users = DC.Set().Where(x => x.ITCode.ToLower().StartsWith(keywords.ToLower())).GetSelectListItems(Wtm, x => x.Name + "(" + x.ITCode + ")", x => x.ITCode); + var users = await DC.Set().Where(x => x.ITCode.ToLower().StartsWith(keywords.ToLower())).GetSelectListItems(Wtm, x => x.Name + "(" + x.ITCode + ")", x => x.ITCode); return Ok(users); } [HttpGet("GetUserByGroup")] [AllRights] - public IActionResult GetUserByGroup(string keywords) + public async Task GetUserByGroup (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserByGroup").Result; + return await Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserByGroup"); } - var users = DC.Set().Where(x => x.GroupCode == keywords).Select(x=>x.UserCode).ToList(); + var users = await DC.Set().Where(x => x.GroupCode == keywords).Select(x=>x.UserCode).ToListAsync(); return Ok(users); } [HttpGet("GetUserByRole")] [AllRights] - public IActionResult GetUserByRole(string keywords) + public async Task GetUserByRole (string keywords) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserByRole").Result; + return await Request.RedirectCall(Wtm, "/api/_frameworkuser/GetUserByRole"); } - var users = DC.Set().Where(x => x.RoleCode == keywords).Select(x => x.UserCode).ToList(); + var users = await DC.Set().Where(x => x.RoleCode == keywords).Select(x => x.UserCode).ToListAsync(); return Ok(users); } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs index 6a55aa57f..16062859a 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogBatchVM.cs @@ -1,5 +1,6 @@ // WTM默认页面 Wtm buidin page using System; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.ActionLogVMs @@ -17,8 +18,9 @@ public ActionLogBatchVM() public class ActionLog_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs index 691ec6ed4..6a97f76ff 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/ActionLogVMs/ActionLogListVM.cs @@ -1,6 +1,7 @@ // WTM默认页面 Wtm buidin page using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -8,7 +9,7 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.ActionLogVMs { public class ActionLogListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { var actions = new List { @@ -16,10 +17,10 @@ protected override List InitGridAction() this.MakeStandardAction("ActionLog", GridActionStandardTypesEnum.Details, "","_Admin", dialogWidth: 800).SetHideOnToolBar(true), this.MakeStandardAction("ActionLog", GridActionStandardTypesEnum.ExportExcel, "","_Admin"), }; - return actions; + return Task.FromResult (actions); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { var header = new List>(); @@ -62,10 +63,10 @@ protected override IEnumerable> InitGridHeader() })); header.Add(this.MakeGridHeaderAction(width: 120)); - return header; + return Task.FromResult>> (header); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.ITCode, x=>x.ITCode) @@ -76,7 +77,7 @@ public override IOrderedQueryable GetSearchQuery() .CheckWhere(Searcher.Duration,x=>x.Duration >= Searcher.Duration) .OrderByDescending(x=>x.ActionTime); - return query; + return Task.FromResult (query); } } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs index 6b9464eac..a0c4ef467 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeListVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -11,7 +12,7 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs public class DataPrivilegeListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { string tp = ""; if (Searcher.DpType == DpTypeEnum.User) @@ -23,16 +24,16 @@ protected override List InitGridAction() tp = "UserGroup"; } - return new List + return Task.FromResult (new List { this.MakeStandardAction("DataPrivilege", GridActionStandardTypesEnum.Create, "","_Admin", dialogWidth: 800).SetQueryString($"Type={tp}"), this.MakeStandardAction("DataPrivilege", GridActionStandardTypesEnum.ExportExcel, "","_Admin"), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name, 200), this.MakeGridHeader(x => x.PName).SetFormat((entity,val)=>GetPrivilegeName(entity)), this.MakeGridHeader(x => x.TableName), @@ -40,7 +41,7 @@ protected override IEnumerable> InitGridHead this.MakeGridHeader(x=>x.Edit,200).SetFormat((entity,val)=>GetOperation(entity)).SetHeader(Localizer["Sys.Operation"]).SetDisableExport(), this.MakeGridHeader(x => x.DpType).SetHide(true), this.MakeGridHeader(x => x.TargetId).SetHide(true) - }; + }); } @@ -81,7 +82,7 @@ public List GetOperation(DataPrivilege_ListView item) /// /// 查询结果 /// - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { IOrderedQueryable query = null; if (Searcher.DpType == DpTypeEnum.User) @@ -117,10 +118,10 @@ public override IOrderedQueryable GetSearchQuery() .OrderByDescending(x => x.Name).OrderByDescending(x => x.TableName); } - return query; + return Task.FromResult (query); } - public override void AfterDoSearcher() + public override async Task AfterDoSearcher() { if (Searcher.DpType == DpTypeEnum.User) { @@ -128,7 +129,7 @@ public override void AfterDoSearcher() } var groupIDs = EntityList.Select(x=>x.TargetId).ToList(); Dictionary groupdata = new Dictionary(); - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { var dd = Wtm.CallAPI>("mainhost", "/api/_account/GetFrameworkGroups").Result; if(dd.Data != null) @@ -141,7 +142,7 @@ public override void AfterDoSearcher() } else { - var ag = Wtm.GetTenantGroups(Wtm.LoginUserInfo?.CurrentTenant); + var ag = Wtm.GetTenantGroups((await Wtm.GetLoginUserInfo ())?.CurrentTenant); foreach (var item in ag) { groupdata.TryAdd(item.GroupCode, item.GroupName); @@ -151,7 +152,7 @@ public override void AfterDoSearcher() { item.Name = groupdata.ContainsKey(item.TargetId) ? groupdata[item.TargetId] : ""; } - base.AfterDoSearcher(); + await base.AfterDoSearcher(); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs index c5968f602..744ba6356 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeSearcher.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs @@ -26,9 +27,10 @@ public class DataPrivilegeSearcher : BaseSearcher public DpTypeEnum DpType { get; set; } public Guid? DomainID { get; set; } public List AllDomains { get; set; } - protected override void InitVM() + protected override Task InitVM() { TableNames = new List(); + return Task.CompletedTask; } } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs index aa3564868..00a96b0d5 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DataPrivilegeVM.cs @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkGroupVMs; using WalkingTec.Mvvm.Core.Extensions; using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs { @@ -29,7 +30,7 @@ public DataPrivilegeVM() IsAll = false; } - protected override void InitVM() + protected override async Task InitVM() { TableNames = new List(); if (ControllerName.Contains("/api") == false) @@ -40,11 +41,11 @@ protected override void InitVM() List rids = null; if (DpType == DpTypeEnum.User) { - rids = DC.Set().Where(x => x.TableName == Entity.TableName && x.UserCode == Entity.UserCode).Select(x => x.RelateId).ToList(); + rids = await DC.Set().Where(x => x.TableName == Entity.TableName && x.UserCode == Entity.UserCode).Select(x => x.RelateId).ToListAsync(); } else { - rids = DC.Set().Where(x => x.TableName == Entity.TableName && x.GroupCode == Entity.GroupCode).Select(x => x.RelateId).ToList(); + rids = await DC.Set().Where(x => x.TableName == Entity.TableName && x.GroupCode == Entity.GroupCode).Select(x => x.RelateId).ToListAsync(); } if (rids.Contains(null)) { @@ -57,14 +58,15 @@ protected override void InitVM() } - protected override void ReInitVM() + protected override Task ReInitVM() { TableNames = new List(); AllItems = new List(); TableNames = Wtm.DataPrivilegeSettings.ToListItems(x => x.PrivillegeName, x => x.ModelName); + return Task.CompletedTask; } - public override void Validate() + public override async Task Validate() { if (DpType == DpTypeEnum.User) { @@ -75,7 +77,7 @@ public override void Validate() else { string user = null; - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { var check = Wtm.CallAPI>("mainhost", "/api/_account/GetUserById").Result; if (check.Data != null) @@ -85,7 +87,7 @@ public override void Validate() } else { - user = DC.Set().Where(x => x.ITCode == Entity.UserCode).Select(x=>x.ITCode).FirstOrDefault(); + user = await DC.Set().Where(x => x.ITCode == Entity.UserCode).Select(x=>x.ITCode).FirstOrDefaultAsync(); } if (user == null) { @@ -101,10 +103,10 @@ public override void Validate() } } - base.Validate(); + await base.Validate(); } - public override async Task DoAddAsync() + public override async Task DoAdd() { if (SelectedItemsID == null && IsAll == false) { @@ -134,7 +136,7 @@ public override async Task DoAddAsync() dp.RelateId = null; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; DC.Set().Add(dp); } @@ -146,8 +148,8 @@ public override async Task DoAddAsync() dp.RelateId = id; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; - DC.Set().Add(dp); + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; + await DC.Set().AddAsync(dp); } } } @@ -159,8 +161,8 @@ public override async Task DoAddAsync() dp.RelateId = null; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; - DC.Set().Add(dp); + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; + await DC.Set().AddAsync(dp); } else { @@ -170,8 +172,8 @@ public override async Task DoAddAsync() dp.RelateId = id; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; - DC.Set().Add(dp); + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; + await DC.Set().AddAsync(dp); } } } @@ -187,17 +189,17 @@ public override async Task DoAddAsync() } - public override async Task DoEditAsync(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { List oldIDs = null; if (DpType == DpTypeEnum.User) { - oldIDs = DC.Set().Where(x => x.UserCode == Entity.UserCode && x.TableName == this.Entity.TableName).Select(x => x.ID).ToList(); + oldIDs = await DC.Set().Where(x => x.UserCode == Entity.UserCode && x.TableName == this.Entity.TableName).Select(x => x.ID).ToListAsync(); } else { - oldIDs = DC.Set().Where(x => x.GroupCode == Entity.GroupCode && x.TableName == this.Entity.TableName).Select(x => x.ID).ToList(); + oldIDs = await DC.Set().Where(x => x.GroupCode == Entity.GroupCode && x.TableName == this.Entity.TableName).Select(x => x.ID).ToListAsync(); } foreach (var oldid in oldIDs) { @@ -213,8 +215,8 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = null; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; - DC.Set().Add(dp); + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; + await DC.Set().AddAsync(dp); } else @@ -223,8 +225,8 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = null; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; - DC.Set().Add(dp); + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; + await DC.Set().AddAsync(dp); } } else { @@ -238,8 +240,8 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = id; dp.UserCode = Entity.UserCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; - DC.Set().Add(dp); + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; + await DC.Set().AddAsync(dp); } } @@ -251,8 +253,8 @@ public override async Task DoEditAsync(bool updateAllFields = false) dp.RelateId = id; dp.GroupCode = Entity.GroupCode; dp.TableName = this.Entity.TableName; - dp.TenantCode = LoginUserInfo.CurrentTenant; - DC.Set().Add(dp); + dp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; + await DC.Set().AddAsync(dp); } } } @@ -268,7 +270,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) } } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { List oldIDs = null; diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs index aae6714fe..abed19cad 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/DataPrivilegeVMs/DpListVM.cs @@ -4,6 +4,7 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.DataPrivilegeVMs @@ -15,20 +16,20 @@ public DpListVM() NeedPage = false; } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Name), - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { var dps = Wtm.DataPrivilegeSettings.Where(x => x.ModelName == Searcher.TableName).SingleOrDefault(); if (dps != null) { - return dps.GetItemList(Wtm, Searcher.Filter).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); + return (await dps.GetItemList (Wtm, Searcher.Filter)).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); } else { @@ -36,12 +37,12 @@ public override IOrderedQueryable GetSearchQuery() } } - public override IOrderedQueryable GetBatchQuery() + public override async Task> GetBatchQuery() { var dps = Wtm.DataPrivilegeSettings.Where(x => x.ModelName == Searcher.TableName).SingleOrDefault(); if (dps != null) { - return dps.GetItemList(Wtm, null,Ids).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); + return (await dps.GetItemList (Wtm, null, Ids)).Select(x => new DpView { ID = x.Value.ToString(), Name = x.Text }).AsQueryable().OrderBy(x => x.Name); } else { diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs index 7ef3d7a1b..ac6b92506 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupListVM.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Core.Support.Json; @@ -15,9 +16,9 @@ public FrameworkGroupListVM() NeedPage = false; } - protected override List InitGridAction() + protected override async Task> InitGridAction() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return new List { @@ -39,9 +40,9 @@ protected override List InitGridAction() } } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.GroupName, 220), this.MakeGridHeader(x => x.GroupCode, 120), this.MakeGridHeader(x => x.ManagerName,220).SetFormat((a,b)=>{ @@ -59,12 +60,12 @@ protected override IEnumerable> InitGridHeader( this.MakeGridHeader(x => x.GroupRemark), this.MakeGridHeader(x => x.ParentId).SetHide(), this.MakeGridHeaderAction(width: 300) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { - return DC.Set() + return Task.FromResult (DC.Set() .CheckContain(Searcher.GroupCode, x => x.GroupCode) .CheckContain(Searcher.GroupName, x => x.GroupName) .GroupJoin(DC.Set(), ok => ok.Manager, ik => ik.ITCode, (group, user) => new { user = user, group = group }) @@ -77,9 +78,9 @@ public override IOrderedQueryable GetSearchQuery() Manager = a.group.Manager, ManagerName = b.Name, }) - .OrderBy(x => x.GroupCode); + .OrderBy(x => x.GroupCode)); } - public override void AfterDoSearcher() + public override Task AfterDoSearcher() { var topdata = EntityList.MakeTree(x => x.GroupCode).FlatTree(x => x.GroupCode); if (ControllerName.Contains("/api") == false) @@ -87,7 +88,7 @@ public override void AfterDoSearcher() topdata.ForEach((x) => { int l = x.GetLevel(); for (int i = 0; i < l; i++) { x.GroupName = "    " + x.GroupName; } }); } EntityList = topdata; - + return Task.CompletedTask; } } public class FrameworkGroup_View : TreePoco diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs index 30326329f..15f5a89d8 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkGroupVMs/FrameworkGroupVM.cs @@ -4,6 +4,7 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -18,44 +19,44 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - public override void Validate() + public override async Task Validate() { if (string.IsNullOrEmpty(Entity.Manager) == false) { - var user = DC.Set().Where(x => x.ITCode == Entity.Manager).FirstOrDefault(); + var user = await DC.Set().Where(x => x.ITCode == Entity.Manager).FirstOrDefaultAsync(); if (user == null) { MSD.AddModelError("Entity.Manager", Localizer["Sys.CannotFindUser", Entity.Manager]); } } - base.Validate(); + await base.Validate(); } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); - Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant).Wait(); + await base.DoAdd(); + Wtm.RemoveGroupCache((await GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); - Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant).Wait(); + await base.DoEdit(updateAllFields); + Wtm.RemoveGroupCache((await GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { using (var tran = DC.BeginTransaction()) { try { - await base.DoDeleteAsync(); + await base.DoDelete(); var ur = DC.Set().Where(x => x.GroupCode == Entity.GroupCode); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); await Wtm.RemoveUserCacheByGroup(Entity.GroupCode); - await Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant); + await Wtm.RemoveGroupCache((await GetLoginUserInfo ()).CurrentTenant); } catch { diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs index c09b6ed63..dbcf803d7 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkActionListVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkMenuVMs @@ -15,15 +16,15 @@ public FrameworkActionListVM() NeedPage = false; } - protected override List InitGridAction() + protected override Task> InitGridAction() { var actions = new List { }; - return actions; + return Task.FromResult (actions); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { var header = new List>(); @@ -32,10 +33,10 @@ protected override IEnumerable> InitGridHe header.Add(this.MakeGridHeader(x => x.ClassName, 150)); header.Add(this.MakeGridHeader(x => x.MethodName, 150)); - return header; + return Task.FromResult>> (header); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var newdc = DC as FrameworkContext; List actions = new List(); @@ -84,7 +85,7 @@ public override IOrderedQueryable GetSearchQuery() } } toremove.ForEach(x => actions.Remove(x)); - return actions.AsQueryable().OrderBy(x=>x.AreaName).ThenBy(x=>x.ModuleName).ThenBy(x=>x.MethodName); + return Task.FromResult (actions.AsQueryable ().OrderBy (x => x.AreaName).ThenBy (x => x.ModuleName).ThenBy (x => x.MethodName)); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs index 0c52f2848..10c5df118 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuBatchVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -13,11 +14,12 @@ public class FrameworkMenuBatchVM : BaseBatchVM DoBatchDelete() { if (Ids != null) { @@ -27,7 +29,7 @@ public override bool DoBatchDelete() DC.CascadeDelete(f); } } - DC.SaveChanges(); + await DC.SaveChangesAsync(); return true; } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs index cb8bd000c..4444ac8e2 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuListVM2.cs @@ -4,6 +4,8 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text.RegularExpressions; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -16,7 +18,7 @@ public FrameworkMenuListVM2() this.NeedPage = false; } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { List> rv = new List>(); rv.AddRange(new GridColumn[] { @@ -32,15 +34,15 @@ protected override IEnumerable> InitGridHead this.MakeGridHeader(x=>x.ParentId).SetHide(), this.MakeGridHeaderAction(width: 290) }); - return rv; + return Task.FromResult>> (rv); } - public override IOrderedQueryable GetSearchQuery() + public override async Task> GetSearchQuery() { List data = new List(); using (var maindc = Wtm.CreateDC(false, "default")) { - data = maindc.Set().ToList(); + data = await maindc.Set().ToListAsync(); } var topdata = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder).Where(x => x.IsInside == false || x.FolderOnly == true || x.Url.EndsWith("/Index") || string.IsNullOrEmpty(x.MethodName)).ToList(); foreach (var item in topdata) diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs index 3550ccff2..2b58cb2e2 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkMenuVMs/FrameworkMenuVM2.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -27,12 +28,12 @@ public FrameworkMenuVM2() SelectedRolesCodes = new List(); } - protected override void InitVM() + protected override async Task InitVM() { - SelectedRolesCodes.AddRange(DC.Set().Where(x => x.MenuItemId == Entity.ID && x.RoleCode != null && x.Allowed == true).Select(x => x.RoleCode).ToList()); + SelectedRolesCodes.AddRange(await DC.Set().Where(x => x.MenuItemId == Entity.ID && x.RoleCode != null && x.Allowed == true).Select(x => x.RoleCode).ToListAsync ()); SelectedRolesCodes = SelectedRolesCodes.Distinct().ToList(); - var data = DC.Set().ToList(); + var data = await DC.Set().ToListAsync(); var topMenu = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder); var modules = Wtm.GlobaInfo.AllModule; @@ -42,7 +43,7 @@ protected override void InitVM() if (SelectedModule != null) { var urls = modules.Where(x => x.FullName == SelectedModule && x.IsApi == true).SelectMany(x => x.Actions).Where(x => x.IgnorePrivillege == false).Select(x => x.Url).ToList(); - SelectedActionIDs = DC.Set().Where(x => urls.Contains(x.Url) && x.IsInside == true && x.FolderOnly == false).Select(x => x.MethodName).ToList(); + SelectedActionIDs = await DC.Set().Where(x => urls.Contains(x.Url) && x.IsInside == true && x.FolderOnly == false).Select(x => x.MethodName).ToListAsync(); } else { @@ -51,7 +52,7 @@ protected override void InitVM() } } - public override void Validate() + public override async Task Validate() { if (Entity.IsInside == true && Entity.FolderOnly == false) { @@ -62,17 +63,17 @@ public override void Validate() else { var modules = Wtm.GlobaInfo.AllModule; - var test = DC.Set().Where(x => x.Url != null && x.Url.ToLower() == this.Entity.Url.ToLower() && x.ID != Entity.ID).FirstOrDefault(); + var test = await DC.Set().Where(x => x.Url != null && x.Url.ToLower() == this.Entity.Url.ToLower() && x.ID != Entity.ID).FirstOrDefaultAsync(); if (test != null) { MSD.AddModelError(" error", Localizer["_Admin.ModuleHasSet"]); } } } - base.Validate(); + await base.Validate(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { if (Entity.IsInside == false) { @@ -160,17 +161,17 @@ public override void DoEdit(bool updateAllFields = false) FC.Add("Entity.Children[0].MethodName", 0); FC.Add("Entity.Children[0].Url", 0); } - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); List guids = new List(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } - AddPrivilege(guids); + await AddPrivilege(guids); } - public override void DoAdd() + public override async Task DoAdd() { if (Entity.IsInside == false) { @@ -234,24 +235,24 @@ public override void DoAdd() } } - base.DoAdd(); + await base.DoAdd(); List guids = new List(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } - AddPrivilege(guids); + await AddPrivilege(guids); } - public void AddPrivilege(List menuids) + public async Task AddPrivilege(List menuids) { - var admin = DC.Set().Where(x => x.RoleCode == "001").SingleOrDefault(); + var admin = await DC.Set().Where(x => x.RoleCode == "001").SingleOrDefaultAsync(); if (admin != null && SelectedRolesCodes.Contains(admin.RoleCode) == false) { SelectedRolesCodes.Add(admin.RoleCode); } - var toremove = DC.Set().Where(x => SelectedRolesCodes.Contains(x.RoleCode) && menuids.Contains(x.MenuItemId)).ToList(); + var toremove = await DC.Set().Where(x => SelectedRolesCodes.Contains(x.RoleCode) && menuids.Contains(x.MenuItemId)).ToListAsync(); toremove.ForEach(x => DC.DeleteEntity(x)); foreach (var menuid in menuids) { @@ -264,21 +265,21 @@ public void AddPrivilege(List menuids) fp.MenuItemId = menuid; fp.RoleCode = code; fp.Allowed = true; - DC.Set().Add(fp); + await DC.Set().AddAsync(fp); } } } - DC.SaveChanges(); + await DC.SaveChangesAsync(); Wtm.RemoveUserCacheByRole(SelectedRolesCodes.ToArray()).Wait(); } - public override void DoDelete() + public override async Task DoDelete() { try { DC.CascadeDelete(Entity); - DC.SaveChanges(); + await DC.SaveChangesAsync(); } catch { } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs index d2d2f6ce5..cad654f22 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleListVM.cs @@ -1,6 +1,7 @@ // WTM默认页面 Wtm buidin page using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Core.Support.Json; @@ -9,9 +10,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkRoleVMs { public class FrameworkRoleListVM : BasePagedListVM { - protected override List InitGridAction() + protected override async Task> InitGridAction() { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { return new List { @@ -34,23 +35,23 @@ protected override List InitGridAction() } } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.RoleCode, 120), this.MakeGridHeader(x => x.RoleName, 120), this.MakeGridHeader(x => x.RoleRemark), this.MakeGridHeaderAction(width: 300) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.RoleCode, x => x.RoleCode) .CheckContain(Searcher.RoleName, x => x.RoleName) .OrderBy(x => x.RoleCode); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs index b79eb180a..c0ce858f3 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleMDVM2.cs @@ -20,19 +20,19 @@ public FrameworkRoleMDVM2() } - protected override FrameworkRole GetById(object Id) + protected override async Task GetById(object Id) { - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { - return Wtm.CallAPI("mainhost", $"/api/_frameworkrole/{Id}").Result.Data.Entity; + return (await Wtm.CallAPI("mainhost", $"/api/_frameworkrole/{Id}")).Data.Entity; } else { - return base.GetById(Id); + return await base.GetById(Id); } } - protected override void InitVM() + protected override async Task InitVM() { var allowedids = DC.Set() .Where(x => x.RoleCode == Entity.RoleCode && x.Allowed == true).Select(x => x.MenuItemId) @@ -44,9 +44,10 @@ protected override void InitVM() } var topdata = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder).Where(x => x.IsInside == false || x.FolderOnly == true || string.IsNullOrEmpty(x.MethodName)).ToList(); - if (Wtm.ConfigInfo.EnableTenant == true && LoginUserInfo.CurrentTenant != null) + if (Wtm.ConfigInfo.EnableTenant == true && (await GetLoginUserInfo ()).CurrentTenant != null) { - var ct = Wtm.GlobaInfo.AllTenant.Where(x => x.TCode == LoginUserInfo.CurrentTenant).FirstOrDefault(); + var _currentTenant = (await GetLoginUserInfo ()).CurrentTenant; + var ct = Wtm.GlobaInfo.AllTenant.Where(x => x.TCode == _currentTenant).FirstOrDefault(); for (int i = 0; i < topdata.Count; i++) { if (topdata[i].TenantAllowed == false || (topdata[i].Url != null && ct.EnableSub == false && topdata[i].Url.ToLower().Contains("frameworktenant"))) @@ -133,7 +134,7 @@ public async Task DoChangeAsync() FunctionPrivilege fp = new FunctionPrivilege(); fp.MenuItemId = menuid; fp.RoleCode = Entity.RoleCode; - fp.TenantCode = LoginUserInfo.CurrentTenant; + fp.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; fp.Allowed = true; DC.Set().Add(fp); } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs index 8066549fb..63564aa4b 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkRoleVMs/FrameworkRoleVM.cs @@ -18,31 +18,31 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + await base.DoAdd(); + Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); - Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant).Wait(); + await base.DoEdit(updateAllFields); + Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant).Wait(); } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { using (var tran = DC.BeginTransaction()) { try { - await base.DoDeleteAsync(); + await base.DoDelete(); var ur = DC.Set().Where(x => x.RoleCode == Entity.RoleCode); DC.Set().RemoveRange(ur); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); await Wtm.RemoveUserCacheByRole(Entity.RoleCode); - await Wtm.RemoveRoleCache(Wtm.LoginUserInfo.CurrentTenant); + await Wtm.RemoveRoleCache((await Wtm.GetLoginUserInfo ()).CurrentTenant); } catch { diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs index bdb64c7d0..06f59e10d 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantBatchVM.cs @@ -25,8 +25,9 @@ public FrameworkTenantBatchVM() public class FrameworkTenant_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs index c794112f1..a6211d745 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantImportVM.cs @@ -28,8 +28,9 @@ public partial class FrameworkTenantTemplateVM : BaseTemplateVM [Display(Name = "Sys.Enable")] public ExcelPropety Enabled_Excel = ExcelPropety.CreateProperty(x => x.Enabled); - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs index b8af97c35..5c5093f36 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantListVM.cs @@ -12,9 +12,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkTenantVMs { public partial class FrameworkTenantListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.Create, Localizer["Sys.Create"],"_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.Edit, Localizer["Sys.Edit"], "_Admin", dialogWidth: 800), @@ -24,13 +24,13 @@ protected override List InitGridAction() this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.BatchDelete, Localizer["Sys.BatchDelete"], "_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.Import, Localizer["Sys.Import"], "_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkTenant", GridActionStandardTypesEnum.ExportExcel, Localizer["Sys.Export"], "_Admin"), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.TCode), this.MakeGridHeader(x => x.TName), this.MakeGridHeader(x => x.TDb), @@ -40,10 +40,10 @@ protected override IEnumerable> InitGridHeader this.MakeGridHeader(x => x.Enabled), this.MakeGridHeader(x => x.EnableSub), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.TCode, x=>x.TCode) @@ -62,7 +62,7 @@ public override IOrderedQueryable GetSearchQuery() EnableSub = x.EnableSub }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs index 20ec9071d..5a5eef4ec 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantSearcher.cs @@ -18,8 +18,9 @@ public partial class FrameworkTenantSearcher : BaseSearcher [Display(Name = "_Admin.TenantDomain")] public String TDomain { get; set; } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs index 2373a7081..ab3d59858 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkTenantVMs/FrameworkTenantVM.cs @@ -26,39 +26,40 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); if (MSD.IsValid) { - TenantOperation(); + await TenantOperation(); Cache.Delete(nameof(GlobalData.AllTenant)); } } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); if (MSD.IsValid) { if (MSD.IsValid) { - TenantOperation(); + await TenantOperation(); Cache.Delete(nameof(GlobalData.AllTenant)); } } } - private void TenantOperation() + private async Task TenantOperation() { List fps = new List(); - using (var userdc = LoginUserInfo.GetUserDC(Wtm)) + using (var userdc = await (await GetLoginUserInfo ()).GetUserDC(Wtm)) { - fps = userdc.Set().AsNoTracking().Where(x => x.RoleCode == AdminRoleCode).ToList(); + fps = await userdc.Set().AsNoTracking().Where(x => x.RoleCode == AdminRoleCode).ToListAsync(); List tenantmenus = new List(); using (var defaultdc = Wtm.CreateDC(false, "default", false)) { @@ -129,9 +130,9 @@ private void AddTenantData(IDataContext dc, List fps) var key = $"{GlobalConstants.CacheKey.UserInfo}:{"admin" + "$`$" + Entity.TCode}"; Cache.DeleteAsync(key).Wait(); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); Cache.Delete(nameof(GlobalData.AllTenant)); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs index 47610e589..f1e8df7db 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/ChangePasswordVM.cs @@ -2,6 +2,8 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkUserVms @@ -26,10 +28,11 @@ public class ChangePasswordVM : BaseVM [StringLength(50, ErrorMessage = "Validate.{0}stringmax{1}")] public string NewPasswordComfirm { get; set; } - public override void Validate() + public override async Task Validate() { List rv = new List(); - if (DC.Set().Where(x => x.ITCode == LoginUserInfo.ITCode && x.Password == Utils.GetMD5String(OldPassword)).SingleOrDefault() == null) + var _itcode = (await GetLoginUserInfo ()).ITCode; + if (DC.Set().Where(x => x.ITCode == _itcode && x.Password == Utils.GetMD5String(OldPassword)).SingleOrDefault() == null) { MSD.AddModelError("OldPassword", Localizer["Login.OldPasswrodWrong"]); } @@ -39,14 +42,15 @@ public override void Validate() } } - public void DoChange() + public async Task DoChange() { - var user = DC.Set().Where(x => x.ITCode == LoginUserInfo.ITCode).SingleOrDefault(); + var _itcode = (await GetLoginUserInfo ()).ITCode; + var user = await DC.Set().Where(x => x.ITCode == _itcode).SingleOrDefaultAsync(); if (user != null) { user.Password = Utils.GetMD5String(NewPassword); } - DC.SaveChanges(); + await DC.SaveChangesAsync(); } } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs index efba18b11..9b6c71fe0 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserImportVM.cs @@ -1,5 +1,6 @@ // WTM默认页面 Wtm buidin page using System.Collections.Generic; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkUserVms @@ -15,23 +16,24 @@ public class FrameworkUserTemplateVM : BaseTemplateVM public ExcelPropety c8 = ExcelPropety.CreateProperty(x => x.Address); public ExcelPropety c9 = ExcelPropety.CreateProperty(x => x.ZipCode); - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } public class FrameworkUserImportVM : BaseImportVM { - public override bool BatchSaveData() + public override async Task BatchSaveData() { - SetEntityList(); + await SetEntityList(); foreach (var item in EntityList) { item.IsValid = true; item.Password = Utils.GetMD5String(item.Password); } - return base.BatchSaveData(); + return await base.BatchSaveData(); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs index f3625412c..e47ef0cda 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserListVM.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -11,9 +12,9 @@ namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkUserVms { public class FrameworkUserListVM : BasePagedListVM { - protected override List InitGridAction() + protected override Task> InitGridAction() { - return new List + return Task.FromResult (new List { this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.Create, "", "_Admin",dialogWidth: 800), this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.Edit, "", "_Admin",dialogWidth: 800), @@ -23,12 +24,12 @@ protected override List InitGridAction() this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.BatchDelete, "","_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.Import, "","_Admin", dialogWidth: 800), this.MakeStandardAction("FrameworkUser", GridActionStandardTypesEnum.ExportExcel, "","_Admin"), - }; + }); } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.ITCode), this.MakeGridHeader(x => x.Name), this.MakeGridHeader(x => x.Gender,80), @@ -38,7 +39,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x=> x.PhotoId,170).SetFormat(PhotoIdFormat), this.MakeGridHeader(x => x.IsValid).SetHeader(Localizer["Sys.Enable"]).SetWidth(80), this.MakeGridHeaderAction(width: 280) - }; + }); } private List PhotoIdFormat(FrameworkUser_View entity, object val) @@ -50,7 +51,7 @@ private List PhotoIdFormat(FrameworkUser_View entity, object v }; } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.ITCode,x=>x.ITCode) @@ -71,7 +72,7 @@ public override IOrderedQueryable GetSearchQuery() Gender = x.Gender }) .OrderBy(x => x.ITCode); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs index 7a1c57b8a..73a143a5a 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Areas/_Admin/ViewModels/FrameworkUserVms/FrameworkUserVM.cs @@ -29,13 +29,13 @@ public override DuplicatedInfo SetDuplicatedCheck() return rv; } - protected override void InitVM() + protected override async Task InitVM() { SelectedRolesCodes = DC.Set().Where(x => x.UserCode == Entity.ITCode).Select(x => x.RoleCode).ToList(); SelectedGroupCodes = DC.Set().Where(x => x.UserCode == Entity.ITCode).Select(x => x.GroupCode).ToList(); } - public override async Task DoAddAsync() + public override async Task DoAdd() { using (var trans = DC.BeginTransaction()) { @@ -47,7 +47,7 @@ public override async Task DoAddAsync() { RoleCode = rolecode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(r); } @@ -60,14 +60,14 @@ public override async Task DoAddAsync() { GroupCode = groupcode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(g); } } Entity.IsValid = true; Entity.Password = Utils.GetMD5String(Entity.Password); - await base.DoAddAsync(); + await base.DoAdd(); if (MSD.IsValid) { trans.Commit(); @@ -79,7 +79,7 @@ public override async Task DoAddAsync() } } - public override async Task DoEditAsync(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { using (var trans = DC.BeginTransaction()) { @@ -109,7 +109,7 @@ public override async Task DoEditAsync(bool updateAllFields = false) { RoleCode = rolecode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(r); } @@ -122,12 +122,12 @@ public override async Task DoEditAsync(bool updateAllFields = false) { GroupCode = groupcode, UserCode = Entity.ITCode, - TenantCode = LoginUserInfo.CurrentTenant + TenantCode = (await GetLoginUserInfo ()).CurrentTenant }; DC.AddEntity(g); } } - await base.DoEditAsync(updateAllFields); + await base.DoEdit(updateAllFields); if (MSD.IsValid) { trans.Commit(); @@ -140,18 +140,18 @@ public override async Task DoEditAsync(bool updateAllFields = false) } } - public override async Task DoDeleteAsync() + public override async Task DoDelete() { using (var tran = DC.BeginTransaction()) { try { - await base.DoDeleteAsync(); + await base.DoDelete(); var ur = DC.Set().Where(x => x.UserCode == Entity.ITCode); DC.Set().RemoveRange(ur); var ug = DC.Set().Where(x => x.UserCode == Entity.ITCode); DC.Set().RemoveRange(ug); - DC.SaveChanges(); + await DC.SaveChangesAsync(); tran.Commit(); } catch @@ -162,11 +162,11 @@ public override async Task DoDeleteAsync() await Wtm.RemoveUserCache(Entity.ITCode); } - public void ChangePassword() + public async Task ChangePassword() { Entity.Password = Utils.GetMD5String(Entity.Password); DC.UpdateProperty(Entity, x => x.Password); - DC.SaveChanges(); + await DC.SaveChangesAsync(); } } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Controllers/MajorController.cs b/demo/WalkingTec.Mvvm.VueDemo/Controllers/MajorController.cs index dd6fc294d..7aa82a830 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Controllers/MajorController.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Controllers/MajorController.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; @@ -7,7 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.VueDemo.ViewModels.MajorVMs; using WalkingTec.Mvvm.Demo.Models; - +using System.Threading.Tasks; namespace WalkingTec.Mvvm.VueDemo.Controllers { @@ -20,7 +20,7 @@ public partial class MajorController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(MajorSearcher searcher) + public IActionResult Search (MajorSearcher searcher) { if (ModelState.IsValid) { @@ -44,7 +44,7 @@ public MajorVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(MajorVM vm) + public async Task Add (MajorVM vm) { if (!ModelState.IsValid) { @@ -52,7 +52,7 @@ public IActionResult Add(MajorVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -67,7 +67,7 @@ public IActionResult Add(MajorVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(MajorVM vm) + public async Task Edit (MajorVM vm) { if (!ModelState.IsValid) { @@ -75,7 +75,7 @@ public IActionResult Edit(MajorVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -89,7 +89,7 @@ public IActionResult Edit(MajorVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -100,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -113,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(MajorSearcher searcher) + public async Task ExportExcel (MajorSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -131,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -151,10 +151,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(MajorImportVM vm) + public async Task Import (MajorImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -166,15 +166,15 @@ public ActionResult Import(MajorImportVM vm) [HttpGet("GetSchools")] - public ActionResult GetSchools() + public async Task GetSchools () { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.SchoolName)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.SchoolName)); } [HttpGet("GetStudents")] - public ActionResult GetStudents() + public async Task GetStudents () { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.LoginName)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.LoginName)); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/Controllers/StudentController.cs b/demo/WalkingTec.Mvvm.VueDemo/Controllers/StudentController.cs index cc7f2cb7f..b2702f13c 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/Controllers/StudentController.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/Controllers/StudentController.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; @@ -7,6 +7,7 @@ using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.VueDemo.ViewModels.StudentVMs; using WalkingTec.Mvvm.Demo.Models; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.VueDemo.Controllers { @@ -19,7 +20,7 @@ public partial class StudentController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("Search")] - public IActionResult Search(StudentSearcher searcher) + public IActionResult Search (StudentSearcher searcher) { if (ModelState.IsValid) { @@ -43,7 +44,7 @@ public StudentVM Get(string id) [ActionDescription("Sys.Create")] [HttpPost("Add")] - public IActionResult Add(StudentVM vm) + public async Task Add (StudentVM vm) { if (!ModelState.IsValid) { @@ -51,7 +52,7 @@ public IActionResult Add(StudentVM vm) } else { - vm.DoAdd(); + await vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -66,7 +67,7 @@ public IActionResult Add(StudentVM vm) [ActionDescription("Sys.Edit")] [HttpPut("Edit")] - public IActionResult Edit(StudentVM vm) + public async Task Edit (StudentVM vm) { if (!ModelState.IsValid) { @@ -74,7 +75,7 @@ public IActionResult Edit(StudentVM vm) } else { - vm.DoEdit(false); + await vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); @@ -88,7 +89,7 @@ public IActionResult Edit(StudentVM vm) [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] - public IActionResult BatchDelete(string[] ids) + public async Task BatchDelete (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -99,7 +100,7 @@ public IActionResult BatchDelete(string[] ids) { return Ok(); } - if (!ModelState.IsValid || !vm.DoBatchDelete()) + if (!ModelState.IsValid || !await vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } @@ -112,17 +113,17 @@ public IActionResult BatchDelete(string[] ids) [ActionDescription("Sys.Export")] [HttpPost("ExportExcel")] - public IActionResult ExportExcel(StudentSearcher searcher) + public async Task ExportExcel (StudentSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.CheckExport")] [HttpPost("ExportExcelByIds")] - public IActionResult ExportExcelByIds(string[] ids) + public async Task ExportExcelByIds (string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) @@ -130,7 +131,7 @@ public IActionResult ExportExcelByIds(string[] ids) vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } - return vm.GetExportData(); + return await vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] @@ -150,10 +151,10 @@ public IActionResult GetExcelTemplate() [ActionDescription("Sys.Import")] [HttpPost("Import")] - public ActionResult Import(StudentImportVM vm) + public async Task Import (StudentImportVM vm) { - if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) + if (vm.ErrorListVM.EntityList.Count > 0 || !await vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } @@ -165,9 +166,9 @@ public ActionResult Import(StudentImportVM vm) [HttpGet("GetMajors")] - public ActionResult GetMajors() + public async Task GetMajors () { - return Ok(DC.Set().GetSelectListItems(Wtm, x => x.MajorName)); + return Ok(await DC.Set().GetSelectListItems(Wtm, x => x.MajorName)); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorBatchVM.cs b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorBatchVM.cs index 7b14d34ad..5f72d716f 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorBatchVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -26,8 +26,9 @@ public MajorBatchVM() public class Major_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorImportVM.cs b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorImportVM.cs index bbbb9a63c..3f85b3a29 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorImportVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -23,10 +23,10 @@ public partial class MajorTemplateVM : BaseTemplateVM [Display(Name = "所属学校")] public ExcelPropety School_Excel = ExcelPropety.CreateProperty(x => x.SchoolId); - protected override void InitVM() + protected override async Task InitVM() { School_Excel.DataType = ColumnDataType.ComboBox; - School_Excel.ListItems = DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); + School_Excel.ListItems = await DC.Set().GetSelectListItems(Wtm, y => y.SchoolName); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorListVM.cs b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorListVM.cs index faab7e6ed..63d2a2c06 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorListVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.VueDemo.ViewModels.MajorVMs public partial class MajorListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.MajorCode), this.MakeGridHeader(x => x.MajorName), this.MakeGridHeader(x => x.MajorType), @@ -24,10 +24,10 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.SchoolName_view), this.MakeGridHeader(x => x.LoginName_view), this.MakeGridHeaderAction(width: 200) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .Select(x => new Major_View @@ -41,7 +41,7 @@ public override IOrderedQueryable GetSearchQuery() LoginName_view = x.StudentMajors.Select(y=>y.Student.LoginName).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorSearcher.cs b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorSearcher.cs index 2fab8349e..d6ef8522d 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorSearcher.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorSearcher.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -13,8 +13,9 @@ namespace WalkingTec.Mvvm.VueDemo.ViewModels.MajorVMs public partial class MajorSearcher : BaseSearcher { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorVM.cs b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorVM.cs index 79d4f72a3..13eaf7ca5 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/MajorVMs/MajorVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -19,23 +19,24 @@ public MajorVM() SetInclude(x => x.StudentMajors); } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentBatchVM.cs b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentBatchVM.cs index 339977ce4..835af0f33 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentBatchVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentBatchVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -26,8 +26,9 @@ public StudentBatchVM() public class Student_BatchEdit : BaseVM { - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentImportVM.cs b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentImportVM.cs index 8f06693e8..c7225d267 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentImportVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentImportVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -33,8 +33,9 @@ public partial class StudentTemplateVM : BaseTemplateVM [Display(Name = "日期")] public ExcelPropety EnRollDate_Excel = ExcelPropety.CreateProperty(x => x.EnRollDate); - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentListVM.cs b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentListVM.cs index 10ce7d594..e2fbd0dca 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentListVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentListVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -14,9 +14,9 @@ namespace WalkingTec.Mvvm.VueDemo.ViewModels.StudentVMs public partial class StudentListVM : BasePagedListVM { - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.LoginName), this.MakeGridHeader(x => x.Password), this.MakeGridHeader(x => x.Email), @@ -30,7 +30,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x => x.EnRollDate), this.MakeGridHeader(x => x.MajorName_view), this.MakeGridHeaderAction(width: 200) - }; + }); } private List PhotoIdFormat(Student_View entity, object val) { @@ -42,7 +42,7 @@ private List PhotoIdFormat(Student_View entity, object val) } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set() .CheckContain(Searcher.Name, x=>x.Name) @@ -66,7 +66,7 @@ public override IOrderedQueryable GetSearchQuery() MajorName_view = x.StudentMajor.Select(y=>y.Major.MajorName).ToSepratedString(null,","), }) .OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentSearcher.cs b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentSearcher.cs index 0a1fd57d7..a9f00ca34 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentSearcher.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentSearcher.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -21,8 +21,9 @@ public partial class StudentSearcher : BaseSearcher [Display(Name = "专业")] public List SelectedStudentMajorIDs { get; set; } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } } diff --git a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentVM.cs b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentVM.cs index 95e7ee7fa..29354c937 100644 --- a/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentVM.cs +++ b/demo/WalkingTec.Mvvm.VueDemo/ViewModels/StudentVMs/StudentVM.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -18,23 +18,24 @@ public StudentVM() SetInclude(x => x.StudentMajor); } - protected override void InitVM() + protected override Task InitVM() { + return Task.CompletedTask; } - public override void DoAdd() + public override async Task DoAdd() { - base.DoAdd(); + await base.DoAdd(); } - public override void DoEdit(bool updateAllFields = false) + public override async Task DoEdit(bool updateAllFields = false) { - base.DoEdit(updateAllFields); + await base.DoEdit(updateAllFields); } - public override void DoDelete() + public override async Task DoDelete() { - base.DoDelete(); + await base.DoDelete(); } } } diff --git a/src/WalkingTec.Mvvm.Core/BaseBatchVM.cs b/src/WalkingTec.Mvvm.Core/BaseBatchVM.cs index 5dfc5e0dc..35762b7ab 100644 --- a/src/WalkingTec.Mvvm.Core/BaseBatchVM.cs +++ b/src/WalkingTec.Mvvm.Core/BaseBatchVM.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Reflection; using System.Text.Json.Serialization; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Core.Support.FileHandlers; @@ -109,7 +110,7 @@ protected virtual bool CheckIfCanDelete(object id, out string errorMessage) /// 批量删除,默认对Ids中包含的主键的数据进行删除。子类如果有特殊判断应重载本函数 /// /// true代表成功,false代表失败 - public virtual bool DoBatchDelete() + public virtual async Task DoBatchDelete() { bool rv = true; //循环所有数据Id @@ -150,7 +151,7 @@ public virtual bool DoBatchDelete() if (isBasePoco) { (Entity as IBasePoco).UpdateTime = DateTime.Now; - (Entity as IBasePoco).UpdateBy = LoginUserInfo.ITCode; + (Entity as IBasePoco).UpdateBy = (await GetLoginUserInfo ()).ITCode; DC.UpdateProperty(Entity, "UpdateTime"); DC.UpdateProperty(Entity, "UpdateBy"); } @@ -217,7 +218,7 @@ public virtual bool DoBatchDelete() { try { - DC.SaveChanges(); + await DC.SaveChangesAsync(); var fp = Wtm.ServiceProvider.GetRequiredService(); foreach (var item in fileids) { @@ -246,7 +247,7 @@ public virtual bool DoBatchDelete() ListVM?.DoSearch(); if (ListVM != null) { - foreach (var item in ListVM?.GetEntityList()) + foreach (var item in await ListVM?.GetEntityList()) { item.BatchError = ErrorMessage.Where(x => x.Key == item.GetID().ToString()).Select(x => x.Value).FirstOrDefault(); } @@ -261,7 +262,7 @@ public virtual bool DoBatchDelete() /// 批量修改,默认对Ids中包含的数据进行修改,子类如果有特殊判断应重载本函数 /// /// true代表成功,false代表失败 - public virtual bool DoBatchEdit() + public virtual async Task DoBatchEdit() { //获取批量修改VM的所有属性 var pros = LinkedVM.GetType().GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.DeclaredOnly); @@ -326,7 +327,7 @@ public virtual bool DoBatchEdit() //如果有对应的BaseCRUDVM则使用其进行数据验证 if (vm != null) { - vm.Validate(); + await vm.Validate(); var errors = vm.MSD; if (errors != null && errors.Count > 0) { @@ -356,7 +357,7 @@ public virtual bool DoBatchEdit() } if (string.IsNullOrEmpty(ent.UpdateBy)) { - ent.UpdateBy = LoginUserInfo?.ITCode; + ent.UpdateBy = (await GetLoginUserInfo ())?.ITCode; DC.UpdateProperty(entity, nameof(ent.UpdateBy)); } } @@ -372,7 +373,7 @@ public virtual bool DoBatchEdit() { try { - DC.SaveChanges(); + await DC.SaveChangesAsync(); } catch (Exception e) { @@ -394,15 +395,15 @@ public virtual bool DoBatchEdit() } } } - RefreshErrorList(); + await RefreshErrorList(); } return rv; } - protected void RefreshErrorList() + protected async Task RefreshErrorList() { - ListVM.DoSearch(); - foreach (var item in ListVM.GetEntityList()) + await ListVM.DoSearch(); + foreach (var item in await ListVM.GetEntityList()) { item.BatchError = ErrorMessage.Where(x => x.Key == item.GetID().ToString()).Select(x => x.Value).FirstOrDefault(); } diff --git a/src/WalkingTec.Mvvm.Core/BaseCRUDVM.cs b/src/WalkingTec.Mvvm.Core/BaseCRUDVM.cs index 654d8be60..35ad616c8 100644 --- a/src/WalkingTec.Mvvm.Core/BaseCRUDVM.cs +++ b/src/WalkingTec.Mvvm.Core/BaseCRUDVM.cs @@ -27,7 +27,7 @@ namespace WalkingTec.Mvvm.Core /// 根据主键Id获取Entity /// /// 主键Id - void SetEntityById(object id); + Task SetEntityById(object id); /// /// 设置Entity @@ -38,27 +38,22 @@ namespace WalkingTec.Mvvm.Core /// /// 添加 /// - void DoAdd(); - - Task DoAddAsync(); + Task DoAdd(); /// /// 修改 /// - void DoEdit(bool updateAllFields); - Task DoEditAsync(bool updateAllFields); + Task DoEdit(bool updateAllFields); /// /// 删除,对于TopBasePoco进行物理删除,对于PersistPoco把IsValid修改为false /// - void DoDelete(); - Task DoDeleteAsync(); + Task DoDelete(); /// /// 彻底删除,对PersistPoco进行物理删除 /// - void DoRealDelete(); - Task DoRealDeleteAsync(); + Task DoRealDelete(); /// /// 将源VM的上数据库上下文,Session,登录用户信息,模型状态信息,缓存信息等内容复制到本VM中 @@ -71,7 +66,7 @@ namespace WalkingTec.Mvvm.Core /// bool ByPassBaseValidation { get; set; } - void Validate(); + Task Validate(); IModelStateService MSD { get; } } @@ -143,9 +138,9 @@ public void SetInclude(params Expression>[] exps) /// 根据主键Id设定Entity /// /// 主键Id - public void SetEntityById(object id) + public async Task SetEntityById(object id) { - this.Entity = GetById(id); + this.Entity = await GetById(id); } /// @@ -162,7 +157,7 @@ public void SetEntity(object entity) /// /// 主键Id /// Entity - protected virtual TModel GetById(object Id) + protected virtual Task GetById(object Id) { TModel rv = null; var ModelType = typeof(TModel); @@ -334,31 +329,15 @@ protected virtual TModel GetById(object Id) rv.SetPropertyValue(f.Name, file); } } - return rv; + return Task.FromResult (rv); } /// /// 添加,进行默认的添加操作。子类如有自定义操作应重载本函数 /// - public virtual void DoAdd() - { - DoAddPrepare(); - //删除不需要的附件 - if (DeletedFileIds != null && DeletedFileIds.Count > 0 && Wtm.ServiceProvider != null) - { - var fp = Wtm.ServiceProvider.GetRequiredService(); - - foreach (var item in DeletedFileIds) - { - fp.DeleteFile(item.ToString(), DC); - } - } - DC.SaveChanges(); - } - - public virtual async Task DoAddAsync() + public virtual async Task DoAdd() { - DoAddPrepare(); + await DoAddPrepare(); //删除不需要的附件 if (DeletedFileIds != null && DeletedFileIds.Count > 0 && Wtm.ServiceProvider != null) { @@ -372,7 +351,7 @@ public virtual async Task DoAddAsync() await DC.SaveChangesAsync(); } - private void DoAddPrepare() + private async Task DoAddPrepare() { var pros = typeof(TModel).GetAllProperties(); //将所有TopBasePoco的属性赋空值,防止添加关联的重复内容 @@ -405,13 +384,13 @@ private void DoAddPrepare() } if (string.IsNullOrEmpty(ent.CreateBy)) { - ent.CreateBy = LoginUserInfo?.ITCode; + ent.CreateBy = (await GetLoginUserInfo ())?.ITCode; } } if (typeof(ITenant).IsAssignableFrom(typeof(TModel))) { ITenant ent = Entity as ITenant; - ent.TenantCode = LoginUserInfo?.CurrentTenant; + ent.TenantCode = (await GetLoginUserInfo ())?.CurrentTenant; } if (typeof(IPersistPoco).IsAssignableFrom(typeof(TModel))) { @@ -490,13 +469,13 @@ private void DoAddPrepare() } if (string.IsNullOrEmpty(ent.CreateBy)) { - ent.CreateBy = LoginUserInfo?.ITCode; + ent.CreateBy = (await GetLoginUserInfo ())?.ITCode; } } if (typeof(ITenant).IsAssignableFrom(subtype)) { ITenant ent = newitem as ITenant; - ent.TenantCode = LoginUserInfo?.CurrentTenant; + ent.TenantCode = (await GetLoginUserInfo ())?.CurrentTenant; } } } @@ -515,34 +494,9 @@ private void DoAddPrepare() /// 修改,进行默认的修改操作。子类如有自定义操作应重载本函数 /// /// 为true时,框架会更新当前Entity的全部值,为false时,框架会检查Request.Form里的key,只更新表单提交的字段 - public virtual void DoEdit(bool updateAllFields = false) - { - DoEditPrepare(updateAllFields); - - try - { - DC.SaveChanges(); - } - catch - { - MSD.AddModelError(" ", Localizer["Sys.EditFailed"]); - } - //删除不需要的附件 - if (DeletedFileIds != null && DeletedFileIds.Count > 0 && Wtm.ServiceProvider != null) - { - var fp = Wtm.ServiceProvider.GetRequiredService(); - - foreach (var item in DeletedFileIds) - { - fp.DeleteFile(item.ToString(), DC.ReCreate()); - } - } - - } - - public virtual async Task DoEditAsync(bool updateAllFields = false) + public virtual async Task DoEdit(bool updateAllFields = false) { - DoEditPrepare(updateAllFields); + await DoEditPrepare(updateAllFields); await DC.SaveChangesAsync(); //删除不需要的附件 @@ -557,7 +511,7 @@ public virtual async Task DoEditAsync(bool updateAllFields = false) } } - private void DoEditPrepare(bool updateAllFields) + private async Task DoEditPrepare(bool updateAllFields) { if (typeof(IBasePoco).IsAssignableFrom(typeof(TModel))) { @@ -568,7 +522,7 @@ private void DoEditPrepare(bool updateAllFields) //} //if (string.IsNullOrEmpty(ent.UpdateBy)) //{ - ent.UpdateBy = LoginUserInfo?.ITCode; + ent.UpdateBy = (await GetLoginUserInfo ())?.ITCode; //} } var pros = typeof(TModel).GetAllProperties(); @@ -631,7 +585,7 @@ private void DoEditPrepare(bool updateAllFields) } if (string.IsNullOrEmpty(ent.UpdateBy)) { - ent.UpdateBy = LoginUserInfo?.ITCode; + ent.UpdateBy = (await GetLoginUserInfo ())?.ITCode; } } //循环页面传过来的子表数据,将关联到TopBasePoco的字段设为null,并且把外键字段的值设定为主表ID @@ -734,7 +688,7 @@ private void DoEditPrepare(bool updateAllFields) if (typeof(IBasePoco).IsAssignableFrom(ftype)) { (item as IBasePoco).UpdateTime = DateTime.Now; - (item as IBasePoco).UpdateBy = LoginUserInfo?.ITCode; + (item as IBasePoco).UpdateBy = (await GetLoginUserInfo ())?.ITCode; } dynamic i = item; DC.UpdateEntity(i); @@ -764,13 +718,13 @@ private void DoEditPrepare(bool updateAllFields) } if (string.IsNullOrEmpty(ent.CreateBy)) { - ent.CreateBy = LoginUserInfo?.ITCode; + ent.CreateBy = (await GetLoginUserInfo ())?.ITCode; } } if (typeof(ITenant).IsAssignableFrom(item.GetType())) { ITenant ent = item as ITenant; - ent.TenantCode = LoginUserInfo?.CurrentTenant; + ent.TenantCode = (await GetLoginUserInfo ())?.CurrentTenant; } DC.AddEntity(item); } @@ -807,7 +761,7 @@ private void DoEditPrepare(bool updateAllFields) if (typeof(IBasePoco).IsAssignableFrom(ftype)) { (item as IBasePoco).UpdateTime = DateTime.Now; - (item as IBasePoco).UpdateBy = LoginUserInfo?.ITCode; + (item as IBasePoco).UpdateBy = (await GetLoginUserInfo ())?.ITCode; } dynamic i = item; DC.UpdateEntity(i); @@ -903,36 +857,7 @@ private void DoEditPrepare(bool updateAllFields) } } - /// - /// 删除,进行默认的删除操作。子类如有自定义操作应重载本函数 - /// - public virtual void DoDelete() - { - //如果是PersistPoco,则把IsValid设为false,并不进行物理删除 - if (typeof(IPersistPoco).IsAssignableFrom(typeof(TModel))) - { - FC.Add("Entity.IsValid", 0); - (Entity as IPersistPoco).IsValid = false; - - var pros = typeof(TModel).GetAllProperties(); - //如果包含List,将子表IsValid也设置为false - var fas = pros.Where(x => typeof(IEnumerable).IsAssignableFrom(x.PropertyType)).ToList(); - foreach (var f in fas) - { - f.SetValue(Entity, f.PropertyType.GetConstructor(Type.EmptyTypes).Invoke(null)); - } - - DoEditPrepare(false); - DC.SaveChanges(); - } - //如果是普通的TopBasePoco,则进行物理删除 - else if (typeof(TModel).GetTypeInfo().IsSubclassOf(typeof(TopBasePoco))) - { - DoRealDelete(); - } - } - - public virtual async Task DoDeleteAsync() + public virtual async Task DoDelete() { //如果是PersistPoco,则把IsValid设为false,并不进行物理删除 if (typeof(IPersistPoco).IsAssignableFrom(typeof(TModel))) @@ -951,7 +876,7 @@ public virtual async Task DoDeleteAsync() { f.SetValue(Entity, null); } - DoEditPrepare(false); + await DoEditPrepare(false); try { await DC.SaveChangesAsync(); @@ -964,78 +889,12 @@ public virtual async Task DoDeleteAsync() //如果是普通的TopBasePoco,则进行物理删除 else if (typeof(TModel).GetTypeInfo().IsSubclassOf(typeof(TopBasePoco))) { - DoRealDelete(); - } - } - - /// - /// 物理删除,对于普通的TopBasePoco和Delete操作相同,对于PersistPoco则进行真正的删除。子类如有自定义操作应重载本函数 - /// - public virtual void DoRealDelete() - { - try - { - List fileids = new List(); - var pros = typeof(TModel).GetAllProperties(); - - //如果包含附件,则先删除附件 - var fa = pros.Where(x => x.PropertyType == typeof(FileAttachment) || typeof(TopBasePoco).IsAssignableFrom(x.PropertyType)).ToList(); - foreach (var f in fa) - { - if (f.GetValue(Entity) is FileAttachment file) - { - fileids.Add(file.ID); - } - f.SetValue(Entity, null); - } - - var fas = pros.Where(x => typeof(IEnumerable).IsAssignableFrom(x.PropertyType)).ToList(); - foreach (var f in fas) - { - var subs = f.GetValue(Entity) as IEnumerable; - if (subs == null) - { - var fullEntity = DC.Set().AsQueryable().Include(f.Name).AsNoTracking().CheckID(Entity.ID).FirstOrDefault(); - subs = f.GetValue(fullEntity) as IEnumerable; - } - if (subs != null) - { - foreach (var sub in subs) - { - fileids.Add(sub.FileId); - } - f.SetValue(Entity, null); - } - } - if (typeof(TModel) != typeof(FileAttachment)) - { - foreach (var pro in pros) - { - if (pro.PropertyType.GetTypeInfo().IsSubclassOf(typeof(TopBasePoco))) - { - pro.SetValue(Entity, null); - } - } - } - DC.DeleteEntity(Entity); - DC.SaveChanges(); - if (Wtm.ServiceProvider != null) - { - var fp = Wtm.ServiceProvider.GetRequiredService(); - foreach (var item in fileids) - { - fp.DeleteFile(item.ToString(), DC.ReCreate()); - } - } - } - catch (Exception) - { - MSD.AddModelError("", CoreProgram._localizer?["Sys.DeleteFailed"]); + await DoRealDelete(); } } - public virtual async Task DoRealDeleteAsync() + public virtual async Task DoRealDelete() { try { @@ -1128,11 +987,11 @@ public static DuplicatedField SubField(Expression /// 验证结果 - public override void Validate() + public override async Task Validate() { if (ByPassBaseValidation == false) { - base.Validate(); + await base.Validate(); ////如果msd是BasicMSD,则认为他是手动创建的,也就是说并没有走asp.net core默认的模型验证 ////那么手动验证模型 //if (Wtm?.MSD is BasicMSD) @@ -1184,7 +1043,7 @@ public override void Validate() //} //验证重复数据 - ValidateDuplicateData(); + await ValidateDuplicateData(); } } @@ -1193,7 +1052,7 @@ public override void Validate() /// 如果存在重复的数据,则返回已存在数据的id列表 /// 如果不存在重复数据,则返回一个空列表 /// - protected List ValidateDuplicateData() + protected async Task> ValidateDuplicateData() { //定义一个对象列表用于存放重复数据的id var count = new List(); @@ -1231,7 +1090,7 @@ protected List ValidateDuplicateData() if (typeof(ITenant).IsAssignableFrom(typeof(TModel)) && props.Any(x => x.Name.ToLower() == "tenantcode") == false && Wtm?.ConfigInfo.EnableTenant == true && group.UseTenant == true) { ITenant ent = Entity as ITenant; - ent.TenantCode = LoginUserInfo.CurrentTenant; + ent.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; var f = new DuplicatedField(x => (x as ITenant).TenantCode); Expression exp = f.GetExpression(Entity, para); conditions.Add(exp); @@ -1383,7 +1242,7 @@ public string SoftFK } } - private Type? _innerType; + private Type _innerType = null; public Type InnerType { get diff --git a/src/WalkingTec.Mvvm.Core/BaseImportVM.cs b/src/WalkingTec.Mvvm.Core/BaseImportVM.cs index a2d99e5d4..42a968f74 100644 --- a/src/WalkingTec.Mvvm.Core/BaseImportVM.cs +++ b/src/WalkingTec.Mvvm.Core/BaseImportVM.cs @@ -10,6 +10,7 @@ using System.Linq.Expressions; using System.Reflection; using System.Text.Json.Serialization; +using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using NPOI.HSSF.Util; @@ -163,7 +164,7 @@ public virtual DuplicatedInfo

    SetDuplicatedCheck() ///

    /// 获取上传的结果值 /// - public virtual void SetEntityList() + public virtual async Task SetEntityList() { if (!isEntityListSet) { @@ -179,7 +180,7 @@ public virtual void SetEntityList() } //对EntityList赋值 - SetEntityData(); + await SetEntityData(); //设置标识为初始化 isEntityListSet = true; @@ -385,7 +386,7 @@ public string GetCellFormulaValue(XSSFFormulaEvaluator XE, ICell cell, string Va /// /// 根据模板中的数据,填写导入类的集合中 /// - public virtual void SetEntityData() + public virtual async Task SetEntityData() { //反射出类中所有属性字段 P是Model层定义的类 var pros = typeof(P).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); @@ -465,7 +466,7 @@ public virtual void SetEntityData() if (typeof(ITenant).IsAssignableFrom(entity.GetType())) { ITenant ent = entity as ITenant; - ent.TenantCode = LoginUserInfo?.CurrentTenant; + ent.TenantCode = (await GetLoginUserInfo ())?.CurrentTenant; } } @@ -517,12 +518,12 @@ public virtual void SetEntityData() if (typeof(IBasePoco).IsAssignableFrom(SubTypeEntity.GetType())) { (SubTypeEntity as IBasePoco).CreateTime = DateTime.Now; - (SubTypeEntity as IBasePoco).CreateBy = LoginUserInfo?.ITCode; + (SubTypeEntity as IBasePoco).CreateBy = (await GetLoginUserInfo ())?.ITCode; } if (typeof(ITenant).IsAssignableFrom(SubTypeEntity.GetType())) { ITenant ent = SubTypeEntity as ITenant; - ent.TenantCode = LoginUserInfo?.CurrentTenant; + ent.TenantCode = (await GetLoginUserInfo ())?.CurrentTenant; } //var context = new ValidationContext(SubTypeEntity); @@ -899,7 +900,7 @@ private void TryValidateProperty(object value, ValidationContext context, IColle /// 保存指定表中的数据 /// /// 成功返回True,失败返回False - public virtual bool BatchSaveData() + public virtual async Task BatchSaveData() { //删除不必要的附件 if (DeletedFileIds != null && DeletedFileIds.Count > 0 && Wtm.ServiceProvider != null) @@ -913,7 +914,7 @@ public virtual bool BatchSaveData() } //进行赋值 - SetEntityList(); + await SetEntityList(); foreach (var entity in EntityList) { var context = new ValidationContext(entity); @@ -926,7 +927,7 @@ public virtual bool BatchSaveData() } if (ErrorListVM.EntityList.Count > 0) { - DoReInit(); + await DoReInit(); return false; } @@ -934,7 +935,7 @@ public virtual bool BatchSaveData() SetValidateCheck(); if (ErrorListVM.EntityList.Count > 0) { - DoReInit(); + await DoReInit(); return false; } var ModelType = typeof(P); @@ -943,7 +944,7 @@ public virtual bool BatchSaveData() foreach (var item in EntityList) { //根据唯一性的设定查找数据库中是否有同样的数据 - P exist = IsDuplicateData(item, finalInfo); + P exist = await IsDuplicateData(item, finalInfo); //如果设置了覆盖功能 if (IsOverWriteExistData) { @@ -980,7 +981,7 @@ public virtual bool BatchSaveData() { if (typeof(IBasePoco).IsAssignableFrom(exist.GetType())) { - (exist as IBasePoco).UpdateBy = LoginUserInfo.ITCode; + (exist as IBasePoco).UpdateBy = (await GetLoginUserInfo ()).ITCode; DC.UpdateProperty(exist, "UpdateBy"); } } @@ -1011,12 +1012,12 @@ public virtual bool BatchSaveData() if (typeof(IBasePoco).IsAssignableFrom(item.GetType())) { (item as IBasePoco).CreateTime = DateTime.Now; - (item as IBasePoco).CreateBy = LoginUserInfo?.ITCode; + (item as IBasePoco).CreateBy = (await GetLoginUserInfo ())?.ITCode; } if (typeof(ITenant).IsAssignableFrom(ModelType)) { ITenant ent = item as ITenant; - ent.TenantCode = LoginUserInfo?.CurrentTenant; + ent.TenantCode = (await GetLoginUserInfo ())?.CurrentTenant; } //如果是SqlServer数据库,而且没有主子表功能,进行Bulk插入 @@ -1026,13 +1027,13 @@ public virtual bool BatchSaveData() } else { - DC.Set

    ().Add(item); + await DC.Set

    ().AddAsync(item); } } if (ErrorListVM.EntityList.Count > 0) { - DoReInit(); + await DoReInit(); return false; } @@ -1041,7 +1042,7 @@ public virtual bool BatchSaveData() { try { - DC.SaveChanges(); + await DC.SaveChangesAsync(); if (ListAdd.Count > 0) { @@ -1051,7 +1052,7 @@ public virtual bool BatchSaveData() catch (Exception e) { SetExceptionMessage(e, null); - DoReInit(); + await DoReInit(); return false; } } @@ -1248,7 +1249,7 @@ protected void SetExceptionMessage(Exception e, long? id) /// 要验证的数据 /// 验证表达式 /// null代表没有重复 - protected P IsDuplicateData(P Entity, DuplicatedInfo

    checkCondition) + protected async Task

    IsDuplicateData(P Entity, DuplicatedInfo

    checkCondition) { //获取设定的重复字段信息 if (checkCondition != null && checkCondition.Groups.Count > 0) @@ -1278,7 +1279,7 @@ protected P IsDuplicateData(P Entity, DuplicatedInfo

    checkCondition) if (typeof(ITenant).IsAssignableFrom(modelType) && props.Any(x => x.Name.ToLower() == "tenantcode") == false && Wtm?.ConfigInfo.EnableTenant == true && group.UseTenant == true) { ITenant ent = Entity as ITenant; - ent.TenantCode = LoginUserInfo.CurrentTenant; + ent.TenantCode = (await GetLoginUserInfo ()).CurrentTenant; var f = new DuplicatedField

    (x => (x as ITenant).TenantCode); Expression exp = f.GetExpression(Entity, para); conditions.Add(exp); @@ -1364,7 +1365,7 @@ public static DuplicatedField

    SubField(Expression>> Middle return new ComplexDuplicatedField(MiddleExp, FieldExps); } - public ErrorObj GetErrorJson() + public async Task GetErrorJson() { var mse = new ErrorObj(); mse.Form = new Dictionary(); @@ -1412,7 +1413,7 @@ public ErrorObj GetErrorJson() xssfworkbook.Write(ms); ms.Position = 0; - var newfile = fp.Upload("Error-" + fa.FileName, ms.Length, ms); + var newfile = await fp.Upload("Error-" + fa.FileName, ms.Length, ms); ms.Close(); ms.Dispose(); err = CoreProgram._localizer?["Sys.ImportError"]; @@ -1451,17 +1452,17 @@ public TemplateErrorListVM() NeedPage = false; } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List>{ + return Task.FromResult>> (new List>{ this.MakeGridHeader(x => x.Index, 60), this.MakeGridHeader(x => x.Message) - }; + }); } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { - return EntityList.AsQueryable().OrderBy(x => x.Index); + return Task.FromResult (EntityList.AsQueryable ().OrderBy (x => x.Index)); } } diff --git a/src/WalkingTec.Mvvm.Core/BasePagedListVM.cs b/src/WalkingTec.Mvvm.Core/BasePagedListVM.cs index fb7b1091f..24be7868a 100644 --- a/src/WalkingTec.Mvvm.Core/BasePagedListVM.cs +++ b/src/WalkingTec.Mvvm.Core/BasePagedListVM.cs @@ -10,6 +10,7 @@ using System.Reflection; using System.Text.Json.Serialization; using System.Text.RegularExpressions; +using System.Threading.Tasks; using Microsoft.Data.SqlClient; using Microsoft.EntityFrameworkCore; using MySqlConnector; @@ -63,11 +64,11 @@ public virtual DbCommand GetSearchCommand() ///

    /// 多级表头深度 默认 1级 /// - public int GetChildrenDepth() + public async Task GetChildrenDepth() { if (_childrenDepth == null) { - _childrenDepth = _getHeaderDepth(); + _childrenDepth = await _getHeaderDepth(); } return _childrenDepth.Value; } @@ -82,11 +83,11 @@ public int GetChildrenDepth() /// GetHeaders /// /// - public IEnumerable> GetHeaders() + public async Task>> GetHeaders() { if (GridHeaders == null) { - GridHeaders = InitGridHeader(); + GridHeaders = await InitGridHeader(); } return GridHeaders; } @@ -95,9 +96,9 @@ public IEnumerable> GetHeaders() /// 计算多级表头深度 /// /// - private int _getHeaderDepth() + private async Task _getHeaderDepth() { - IEnumerable> headers = GetHeaders(); + IEnumerable> headers = await GetHeaders(); return headers.Max(x => x.MaxDepth); } @@ -106,11 +107,11 @@ private int _getHeaderDepth() /// /// 页面动作 /// - public List GetGridActions() + public async Task> GetGridActions() { if (_gridActions == null) { - _gridActions = InitGridAction(); + _gridActions = await InitGridAction(); } return _gridActions; } @@ -118,14 +119,14 @@ public List GetGridActions() /// /// 初始化 InitGridHeader,继承的类应该重载这个函数来设定数据的列和动作 /// - protected virtual IEnumerable> InitGridHeader() + protected virtual Task>> InitGridHeader() { - return new List>(); + return Task.FromResult>> (new List> ()); } - protected virtual List InitGridAction() + protected virtual Task> InitGridAction() { - return new List(); + return Task.FromResult (new List ()); } #region GenerateExcel @@ -134,20 +135,20 @@ protected virtual List InitGridAction() /// 生成Excel /// /// 生成的Excel文件 - public virtual byte[] GenerateExcel() + public virtual async Task GenerateExcel () { NeedPage = false; //获取导出的表头 if (GridHeaders == null) { - GetHeaders(); + await GetHeaders(); } //去掉ID列和Action列 - RemoveActionAndIdColumn(); + await RemoveActionAndIdColumn(); - var query = SearcherMode== ListVMSearchModeEnum.CheckExport? GetCheckedExportQuery() : GetExportQuery(); + var query = SearcherMode == ListVMSearchModeEnum.CheckExport ? await GetCheckedExportQuery () : await GetExportQuery (); int listcount = query.Count(); //获取分成Excel的个数 @@ -503,11 +504,11 @@ public BasePagedListVM() /// 获取数据列表 /// /// 数据列表 - public IEnumerable GetEntityList() + public async Task> GetEntityList() { if (IsSearched == false && (EntityList == null || EntityList.Count == 0)) { - DoSearch(); + await DoSearch(); } return EntityList?.AsEnumerable(); } @@ -535,10 +536,10 @@ public virtual bool GetIsSelected(object item) return false; } - public override void Validate() + public override async Task Validate() { Searcher?.Validate(); - base.Validate(); + await base.Validate(); } /// @@ -565,46 +566,45 @@ public virtual string SetFullRowBgColor(object entity) /// 设定搜索语句,继承的类应该重载这个函数来指定自己的搜索语句 /// /// 搜索语句 - public virtual IOrderedQueryable GetSearchQuery() + public virtual Task> GetSearchQuery() { - return DC.Set().OrderByDescending(x => x.ID); + return Task.FromResult (DC.Set ().OrderByDescending (x => x.ID)); } /// /// 设定导出时搜索语句,继承的类应该重载这个函数来指定自己导出时的搜索语句,如不指定则默认和搜索用的搜索语句相同 /// /// 搜索语句 - public virtual IOrderedQueryable GetExportQuery() + public virtual async Task> GetExportQuery() { - return GetSearchQuery(); + return await GetSearchQuery(); } /// /// 设定搜索语句,继承的类应该重载这个函数来指定自己导出时的搜索语句,如不指定则默认和搜索用的搜索语句相同 /// /// 搜索语句 - public virtual IOrderedQueryable GetSelectorQuery() + public virtual async Task> GetSelectorQuery() { - return GetSearchQuery(); + return await GetSearchQuery(); } /// /// 设定勾选后导出的搜索语句,继承的类应该重载这个函数来指定自己导出时的搜索语句,如不指定则默认和搜索用的搜索语句相同 /// /// 搜索语句 - public virtual IOrderedQueryable GetCheckedExportQuery() + public virtual async Task> GetCheckedExportQuery() { - var baseQuery = GetBatchQuery(); - return baseQuery; + return await GetBatchQuery (); } /// /// 设定批量模式下的搜索语句,继承的类应重载这个函数来指定自己批量模式的搜索语句,如果不指定则默认使用Ids.Contains(x.Id)来代替搜索语句中的Where条件 /// /// 搜索语句 - public virtual IOrderedQueryable GetBatchQuery() + public virtual async Task> GetBatchQuery() { - var baseQuery = GetSearchQuery(); + var baseQuery = await GetSearchQuery(); if (ReplaceWhere == null) { Expression peid = null; @@ -628,15 +628,15 @@ public virtual IOrderedQueryable GetBatchQuery() /// 设定主从模式的搜索语句,继承的类应该重载这个函数来指定自己主从模式的搜索语句,如不指定则默认和搜索用的搜索语句相同 /// /// 搜索语句 - public virtual IOrderedQueryable GetMasterDetailsQuery() + public virtual async Task> GetMasterDetailsQuery() { - return GetSearchQuery(); + return await GetSearchQuery(); } /// /// 进行搜索 /// - public virtual void DoSearch() + public virtual async Task DoSearch() { var cmd = GetSearchCommand(); if (cmd == null) @@ -646,25 +646,25 @@ public virtual void DoSearch() switch (SearcherMode) { case ListVMSearchModeEnum.Search: - query = GetSearchQuery(); + query = await GetSearchQuery(); break; case ListVMSearchModeEnum.Export: - query = GetExportQuery(); + query = await GetExportQuery (); break; case ListVMSearchModeEnum.Batch: - query = GetBatchQuery(); + query = await GetBatchQuery (); break; case ListVMSearchModeEnum.MasterDetail: - query = GetMasterDetailsQuery(); + query = await GetMasterDetailsQuery (); break; case ListVMSearchModeEnum.CheckExport: - query = GetCheckedExportQuery(); + query = await GetCheckedExportQuery(); break; case ListVMSearchModeEnum.Selector: - query = GetSelectorQuery(); + query = await GetSelectorQuery (); break; default: - query = GetSearchQuery(); + query = await GetSearchQuery (); break; } if (query != null) @@ -737,7 +737,7 @@ public virtual void DoSearch() } IsSearched = true; //调用AfterDoSearch函数来处理自定义的后续操作 - AfterDoSearcher(); + await AfterDoSearcher(); } @@ -902,7 +902,7 @@ public DateTime AddTime(DateTime dt, string type, int size) /// /// 搜索后运行的函数,继承的类如果需要在搜索结束后进行其他操作,可重载这个函数 /// - public virtual void AfterDoSearcher() + public virtual Task AfterDoSearcher() { if (SearcherMode == ListVMSearchModeEnum.Selector && Ids != null && Ids.Count > 0 && EntityList != null && EntityList.Count > 0) { @@ -926,18 +926,19 @@ public virtual void AfterDoSearcher() } } } + return Task.CompletedTask; } /// /// 删除所有ActionGridColumn的列 /// - public void RemoveActionColumn(object root = null) + public async Task RemoveActionColumn(object root = null) { if (root == null) { if (GridHeaders == null) { - GetHeaders(); + await GetHeaders(); } root = GridHeaders; } @@ -951,7 +952,7 @@ public void RemoveActionColumn(object root = null) { if (child.Children != null && child.Children.Count() > 0) { - RemoveActionColumn(child.Children); + await RemoveActionColumn(child.Children); } } } @@ -962,13 +963,13 @@ public void RemoveAction() _gridActions = new List(); } - public void RemoveActionAndIdColumn(IEnumerable> root = null) + public async Task RemoveActionAndIdColumn(IEnumerable> root = null) { if (root == null) { if (GridHeaders == null) { - GetHeaders(); + await GetHeaders(); } root = GridHeaders; } @@ -993,7 +994,7 @@ public void RemoveActionAndIdColumn(IEnumerable> root = null { if (child.Children != null && child.Children.Count() > 0) { - RemoveActionAndIdColumn(child.Children); + await RemoveActionAndIdColumn(child.Children); } } } @@ -1003,9 +1004,9 @@ public void RemoveActionAndIdColumn(IEnumerable> root = null /// /// 添加Error列,主要为批量模式使用 /// - public void AddErrorColumn() + public async Task AddErrorColumn() { - GetHeaders(); + await GetHeaders(); //寻找所有Header为错误信息的列,如果没有则添加 if (GridHeaders.Where(x => x.Field == "BatchError").FirstOrDefault() == null) { @@ -1021,7 +1022,7 @@ public void AddErrorColumn() } } - public void ProcessListError(List Entities) + public async Task ProcessListError(List Entities) { if(Entities == null) { @@ -1067,7 +1068,7 @@ public void ProcessListError(List Entities) } if (haserror) { - AddErrorColumn(); + await AddErrorColumn(); } } } @@ -1088,7 +1089,7 @@ public void ClearEntityList() #endregion - public virtual void UpdateEntityList(bool updateAllFields = false) + public virtual async Task UpdateEntityList(bool updateAllFields = false) { if (EntityList != null) { @@ -1107,7 +1108,7 @@ public virtual void UpdateEntityList(bool updateAllFields = false) } if (string.IsNullOrEmpty(ent.UpdateBy)) { - ent.UpdateBy = LoginUserInfo?.ITCode; + ent.UpdateBy = (await GetLoginUserInfo ())?.ITCode; } } //循环页面传过来的子表数据,将关联到TopBasePoco的字段设为null,并且把外键字段的值设定为主表ID @@ -1182,7 +1183,7 @@ public virtual void UpdateEntityList(bool updateAllFields = false) if (typeof(IBasePoco).IsAssignableFrom(ftype)) { (item as IBasePoco).UpdateTime = DateTime.Now; - (item as IBasePoco).UpdateBy = LoginUserInfo?.ITCode; + (item as IBasePoco).UpdateBy = (await GetLoginUserInfo ())?.ITCode; } dynamic i = item; DC.UpdateEntity(i); @@ -1212,7 +1213,7 @@ public virtual void UpdateEntityList(bool updateAllFields = false) } if (string.IsNullOrEmpty(ent.CreateBy)) { - ent.CreateBy = LoginUserInfo?.ITCode; + ent.CreateBy = (await GetLoginUserInfo ())?.ITCode; } } DC.AddEntity(item); @@ -1220,7 +1221,7 @@ public virtual void UpdateEntityList(bool updateAllFields = false) } - DC.SaveChanges(); + await DC.SaveChangesAsync(); } } } diff --git a/src/WalkingTec.Mvvm.Core/BaseSearcher.cs b/src/WalkingTec.Mvvm.Core/BaseSearcher.cs index b5ba52977..f783296a9 100644 --- a/src/WalkingTec.Mvvm.Core/BaseSearcher.cs +++ b/src/WalkingTec.Mvvm.Core/BaseSearcher.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Text.Json.Serialization; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core.Extensions; namespace WalkingTec.Mvvm.Core @@ -89,12 +90,6 @@ public IDataContext DC [JsonIgnore] public ISessionService Session { get => Wtm?.Session; } - /// - /// 当前登录人信息 - /// - [JsonIgnore] - public LoginUserInfo LoginUserInfo { get => Wtm?.LoginUserInfo; } - [JsonIgnore] public string ViewDivId { get; set; } #region 未使用 @@ -134,47 +129,55 @@ public string UniqueId /// /// InitVM 完成后触发的事件 /// - public event Action OnAfterInit; + public event Func OnAfterInit; /// /// ReInitVM 完成后触发的事件 /// - public event Action OnAfterReInit; + public event Func OnAfterReInit; #endregion #region Method + /// + /// 当前登录人信息 + /// + public async Task GetLoginUserInfo () { + return await Wtm?.GetLoginUserInfo (); + } + /// /// 调用 InitVM 并触发 OnAfterInit 事件 /// - public void DoInit() + public async Task DoInit() { - InitVM(); + await InitVM(); OnAfterInit?.Invoke(this); } /// /// 调用 ReInitVM 并触发 OnAfterReInit 事件 /// - public void DoReInit() + public async Task DoReInit() { - ReInitVM(); + await ReInitVM(); OnAfterReInit?.Invoke(this); } /// /// 初始化ViewModel,框架会在创建VM实例之后自动调用本函数 /// - protected virtual void InitVM() + protected virtual Task InitVM() { + return Task.CompletedTask; } /// /// 从新初始化ViewModel,框架会在验证失败时自动调用本函数 /// - protected virtual void ReInitVM() + protected virtual async Task ReInitVM() { - InitVM(); + await InitVM(); } public virtual void Validate() diff --git a/src/WalkingTec.Mvvm.Core/BaseVM.cs b/src/WalkingTec.Mvvm.Core/BaseVM.cs index 5ac2fa2a8..d3eefb603 100644 --- a/src/WalkingTec.Mvvm.Core/BaseVM.cs +++ b/src/WalkingTec.Mvvm.Core/BaseVM.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Reflection; using System.Text.Json.Serialization; +using System.Threading.Tasks; using Microsoft.Extensions.Caching.Distributed; using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; @@ -160,12 +161,6 @@ public string CreatorAssembly [JsonIgnore] public IDistributedCache Cache { get => Wtm?.Cache; } - /// - /// 当前登录人信息 - /// - [JsonIgnore] - public LoginUserInfo LoginUserInfo { get => Wtm?.LoginUserInfo; } - /// /// 当前Url /// @@ -219,36 +214,43 @@ public string CreatorAssembly /// /// InitVM完成后触发的事件 /// - public event Action OnAfterInit; + public event Func OnAfterInit; /// /// ReInitVM完成后触发的事件 /// - public event Action OnAfterReInit; + public event Func OnAfterReInit; #endregion #region Method + /// + /// 当前登录人信息 + /// + public async Task GetLoginUserInfo () { + return await Wtm?.GetLoginUserInfo (); + } + /// /// 调用 InitVM 并触发 OnAfterInit 事件 /// - public void DoInit() + public async Task DoInit () { - InitVM(); - OnAfterInit?.Invoke(this); + await InitVM(); + await OnAfterInit?.Invoke(this); } /// /// 调用 ReInitVM 并触发 OnAfterReInit 事件 /// - public void DoReInit() + public async Task DoReInit() { - ReInitVM(); - ReInitSubVM(this); + await ReInitVM(); + await ReInitSubVM(this); OnAfterReInit?.Invoke(this); } - private void InitSubVM(BaseVM vm) + private async Task InitSubVM(BaseVM vm) { var sub = vm.GetType().GetAllProperties().Where(x => typeof(BaseVM).IsAssignableFrom(x.PropertyType) && x.Name != "ParentVM"); foreach (var prop in sub) @@ -256,13 +258,13 @@ private void InitSubVM(BaseVM vm) var subins = prop.GetValue(vm) as BaseVM; if (subins != null) { - subins.DoInit(); + await subins.DoInit(); } - InitSubVM(subins); + await InitSubVM(subins); } } - private void ReInitSubVM(BaseVM vm) + private async Task ReInitSubVM (BaseVM vm) { var sub = vm.GetType().GetAllProperties().Where(x => typeof(BaseVM).IsAssignableFrom(x.PropertyType) && x.Name != "ParentVM"); foreach (var prop in sub) @@ -270,34 +272,34 @@ private void ReInitSubVM(BaseVM vm) var subins = prop.GetValue(vm) as BaseVM; if (subins != null) { - subins.DoReInit(); + await subins.DoReInit(); } - ReInitSubVM(subins); + await ReInitSubVM(subins); } } /// /// 初始化ViewModel,框架会在创建VM实例之后自动调用本函数 /// - protected virtual void InitVM() + protected virtual async Task InitVM() { - InitSubVM(this); + await InitSubVM(this); } /// /// 从新初始化ViewModel,框架会在验证失败时自动调用本函数 /// - protected virtual void ReInitVM() + protected virtual async Task ReInitVM () { - InitVM(); + await InitVM(); } /// /// 验证函数,MVC会在提交数据的时候自动调用本函数 /// /// - public virtual void Validate() + public virtual Task Validate() { - return; + return Task.CompletedTask; } /// diff --git a/src/WalkingTec.Mvvm.Core/Extensions/DCExtension.cs b/src/WalkingTec.Mvvm.Core/Extensions/DCExtension.cs index 9c710b6ec..5fc62b6bb 100644 --- a/src/WalkingTec.Mvvm.Core/Extensions/DCExtension.cs +++ b/src/WalkingTec.Mvvm.Core/Extensions/DCExtension.cs @@ -37,7 +37,7 @@ public static class DCExtension /// 忽略数据权限判断 /// 是否根据Text字段排序,默认为是 /// SelectListItem列表 - public static List GetTreeSelectListItems(this IQueryable baseQuery + public static async Task> GetTreeSelectListItems(this IQueryable baseQuery , WTMContext wtmcontext , Expression> textField , Expression> valueField = null @@ -49,7 +49,7 @@ public static List GetTreeSelectListItems(this IQueryable , bool SortByName = true) where T : TreePoco { - var dps = wtmcontext?.LoginUserInfo?.DataPrivileges; + var dps = (await wtmcontext?.GetLoginUserInfo ())?.DataPrivileges; var query = baseQuery.AsNoTracking(); //如果没有指定忽略权限,则拼接权限过滤的where条件 @@ -187,7 +187,7 @@ public static List GetTreeSelectListItems(this IQueryable /// 忽略数据权限判断 /// 是否根据Text字段排序,默认为是 /// SelectListItem列表 - public static List GetSelectListItems(this IQueryable baseQuery + public static async Task> GetSelectListItems(this IQueryable baseQuery , WTMContext wtmcontext , Expression> textField , Expression> valueField = null @@ -195,7 +195,7 @@ public static List GetSelectListItems(this IQueryable , bool SortByName = true) where T : TopBasePoco { - var dps = wtmcontext?.LoginUserInfo?.DataPrivileges; + var dps = (await wtmcontext?.GetLoginUserInfo ())?.DataPrivileges; var query = baseQuery.AsNoTracking(); //如果value字段为空,则默认使用Id字段作为value值 @@ -377,9 +377,9 @@ private static IQueryable AppendSelfDPWhere(IQueryable query, WTMContex /// wtm context /// 关联表外键 /// 修改后的查询语句 - public static IQueryable DPWhere(this IQueryable baseQuery, WTMContext wtmcontext, params Expression>[] IdFields) where T : TopBasePoco + public static async Task> DPWhere(this IQueryable baseQuery, WTMContext wtmcontext, params Expression>[] IdFields) where T : TopBasePoco { - var dps = wtmcontext?.LoginUserInfo?.DataPrivileges; + var dps = (await wtmcontext?.GetLoginUserInfo ())?.DataPrivileges; // var dpsSetting = BaseVM.AllDPS; ParameterExpression pe = Expression.Parameter(typeof(T)); diff --git a/src/WalkingTec.Mvvm.Core/Extensions/ListVMExtension.cs b/src/WalkingTec.Mvvm.Core/Extensions/ListVMExtension.cs index 034d1efc1..c8b19d59e 100644 --- a/src/WalkingTec.Mvvm.Core/Extensions/ListVMExtension.cs +++ b/src/WalkingTec.Mvvm.Core/Extensions/ListVMExtension.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Core.Extensions { @@ -14,15 +15,15 @@ public static class ListVMExtension /// 不在后台进行ColumnFormatInfo的转化,而是直接输出ColumnFormatInfo的json结构到前端,由前端处理,默认False /// /// Json格式的数据 - public static string GetDataJson(this IBasePagedListVM self, bool returnColumnObject = false, bool enumToString = true) where T : TopBasePoco, new() + public static async Task GetDataJson(this IBasePagedListVM self, bool returnColumnObject = false, bool enumToString = true) where T : TopBasePoco, new() { var sb = new StringBuilder(); self.GetHeaders(); if (self.IsSearched == false) { - self.DoSearch(); + await self.DoSearch(); } - var el = self.GetEntityList().ToList(); + var el = (await self.GetEntityList()).ToList(); //如果列表主键都为0,则生成自增主键,避免主键重复 if (el.All(x => { var id = x.GetID(); @@ -104,7 +105,7 @@ private static string GetFormatResult(BaseVM vm, ColumnFormatInfo info) /// index /// /// Json格式的数据 - public static string GetSingleDataJson(this IBasePagedListVM self, object obj, bool returnColumnObject, int index = 0, bool enumToString = true) where T : TopBasePoco + public static async Task GetSingleDataJson(this IBasePagedListVM self, object obj, bool returnColumnObject, int index = 0, bool enumToString = true) where T : TopBasePoco { bool inner = false; var sb = new StringBuilder(); @@ -122,7 +123,7 @@ public static string GetSingleDataJson(this IBasePagedListVM bool containsID = false; bool addHiddenID = false; Dictionary colorcolumns = new Dictionary(); - foreach (var baseCol in self.GetHeaders()) + foreach (var baseCol in await self.GetHeaders()) { foreach (var col in baseCol.BottomChildren) { diff --git a/src/WalkingTec.Mvvm.Core/Extensions/MenuExtension.cs b/src/WalkingTec.Mvvm.Core/Extensions/MenuExtension.cs index 59e84f721..c96475e18 100644 --- a/src/WalkingTec.Mvvm.Core/Extensions/MenuExtension.cs +++ b/src/WalkingTec.Mvvm.Core/Extensions/MenuExtension.cs @@ -77,7 +77,7 @@ private static void GenerateMenuTree(List menus, List res } } - private static void RemoveUnAccessableMenu(List menus, WTMContext wtm) + private static async Task RemoveUnAccessableMenu(List menus, WTMContext wtm) { if (menus == null) { @@ -86,7 +86,7 @@ private static void RemoveUnAccessableMenu(List menus, WTMContext wtm List toRemove = new List(); //如果没有指定用户信息,则用当前用户的登录信息 - var info = wtm.LoginUserInfo; + var info = await wtm.GetLoginUserInfo (); //循环所有菜单项 foreach (var menu in menus) { @@ -96,7 +96,7 @@ private static void RemoveUnAccessableMenu(List menus, WTMContext wtm { url = url.Replace("/_framework/outside?url=", ""); } - if (!string.IsNullOrEmpty(url) && wtm.IsAccessable(url) == false) + if (!string.IsNullOrEmpty(url) && !await wtm.IsAccessable(url)) { toRemove.Add(menu); } diff --git a/src/WalkingTec.Mvvm.Core/IBasePagedListVM.cs b/src/WalkingTec.Mvvm.Core/IBasePagedListVM.cs index 4e19922bd..cad197499 100644 --- a/src/WalkingTec.Mvvm.Core/IBasePagedListVM.cs +++ b/src/WalkingTec.Mvvm.Core/IBasePagedListVM.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Core { @@ -19,25 +20,25 @@ public interface IBasePagedListVM : IBaseVM /// /// 多级表头深度 默认 1级 /// - int GetChildrenDepth(); + Task GetChildrenDepth(); /// /// GetHeaders /// /// - IEnumerable> GetHeaders(); + Task>> GetHeaders(); /// /// 页面动作 /// - List GetGridActions(); + Task> GetGridActions(); /// /// 查询并生成Excel /// /// Excel文件 - byte[] GenerateExcel(); + Task GenerateExcel(); string TotalText { get; set; } #region Old @@ -52,7 +53,7 @@ public interface IBasePagedListVM : IBaseVM /// 获取Model集合 /// /// Model集合 - IEnumerable GetEntityList(); + Task> GetEntityList(); void ClearEntityList(); /// @@ -99,14 +100,14 @@ public interface IBasePagedListVM : IBaseVM /// /// 移除操作列 /// - void RemoveActionColumn(object root = null); + Task RemoveActionColumn (object root = null); void RemoveAction(); /// /// 填加错误信息列,用于批量操作的列表 /// - void AddErrorColumn(); + Task AddErrorColumn (); /// /// 搜索条件Panel的Id @@ -117,11 +118,11 @@ public interface IBasePagedListVM : IBaseVM /// GetSearchQuery /// /// - IOrderedQueryable GetSearchQuery(); + Task> GetSearchQuery(); /// /// DoSearch /// - void DoSearch(); + Task DoSearch (); /// /// CopyContext /// diff --git a/src/WalkingTec.Mvvm.Core/IBaseVM.cs b/src/WalkingTec.Mvvm.Core/IBaseVM.cs index 477cafdf8..1091a0a5f 100644 --- a/src/WalkingTec.Mvvm.Core/IBaseVM.cs +++ b/src/WalkingTec.Mvvm.Core/IBaseVM.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading.Tasks; using Microsoft.Extensions.Caching.Distributed; namespace WalkingTec.Mvvm.Core @@ -54,7 +55,6 @@ public interface IBaseVM IDistributedCache Cache { get; } - LoginUserInfo LoginUserInfo { get; } #endregion #region Event @@ -62,24 +62,26 @@ public interface IBaseVM /// /// InitVM 完成后触发的事件 /// - event Action OnAfterInit; + event Func OnAfterInit; /// /// ReInitVM 完成后触发的事件 /// - event Action OnAfterReInit; + event Func OnAfterReInit; #endregion #region Method + Task GetLoginUserInfo (); + /// /// 调用 InitVM 并触发 OnAfterInit 事件 /// - void DoInit(); + Task DoInit(); /// /// 调用 ReInitVM 并触发 OnAfterReInit 事件 /// - void DoReInit(); + Task DoReInit(); #endregion } } diff --git a/src/WalkingTec.Mvvm.Core/LoginUserInfo.cs b/src/WalkingTec.Mvvm.Core/LoginUserInfo.cs index 00444dc89..0f1e8e157 100644 --- a/src/WalkingTec.Mvvm.Core/LoginUserInfo.cs +++ b/src/WalkingTec.Mvvm.Core/LoginUserInfo.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; +using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Options; using NPOI.SS.Formula.Functions; @@ -180,7 +181,7 @@ private IEnumerable GetSubIds(IDataPrivilege dp, List p_id, Type } } - public void SetAttributesForApi(WTMContext context) + public async Task SetAttributesForApi(WTMContext context) { var ms = new List(); List urls = new List(); @@ -215,7 +216,7 @@ public void SetAttributesForApi(WTMContext context) } } var topdata = context.GlobaInfo.AllMenus.Where(x => x.ShowOnMenu && (x.IsInside == false || x.FolderOnly == true || string.IsNullOrEmpty(x.MethodName))).ToList(); - var allowedids = context.LoginUserInfo?.FunctionPrivileges?.Select(x => x.MenuItemId).ToList(); + var allowedids = (await context.GetLoginUserInfo ())?.FunctionPrivileges?.Select(x => x.MenuItemId).ToList(); foreach (var item in topdata) { if (allowedids?.Contains(item.ID) == true && item.IsParentShowOnMenu(topdata)) @@ -267,15 +268,16 @@ private void LocalizeMenu(List menus) } } - public IDataContext GetUserDC(WTMContext context) + public async Task GetUserDC(WTMContext context) { - if (context?.LoginUserInfo?.TenantCode == null) + string tenant_code = (await context?.GetLoginUserInfo ())?.TenantCode; + if (tenant_code == null) { return context.CreateDC(cskey: "default"); } else { - var item = context.GlobaInfo.AllTenant.Where(x => x.TCode == context?.LoginUserInfo?.TenantCode).FirstOrDefault(); + var item = context.GlobaInfo.AllTenant.Where(x => x.TCode == tenant_code).FirstOrDefault(); if (item != null) { return item.CreateDC(context); diff --git a/src/WalkingTec.Mvvm.Core/Models/ISearcher.cs b/src/WalkingTec.Mvvm.Core/Models/ISearcher.cs index 029380807..8c6fecc1c 100644 --- a/src/WalkingTec.Mvvm.Core/Models/ISearcher.cs +++ b/src/WalkingTec.Mvvm.Core/Models/ISearcher.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Core @@ -43,7 +44,6 @@ public interface ISearcher ISessionService Session { get; } - LoginUserInfo LoginUserInfo { get; } /// /// 排序信息 /// @@ -59,11 +59,11 @@ public interface ISearcher /// /// InitVM 完成后触发的事件 /// - event Action OnAfterInit; + event Func OnAfterInit; /// /// ReInitVM 完成后触发的事件 /// - event Action OnAfterReInit; + event Func OnAfterReInit; #endregion @@ -77,12 +77,17 @@ public interface ISearcher /// /// 调用 InitVM 并触发 OnAfterInit 事件 /// - void DoInit(); + Task DoInit(); /// /// 调用 ReInitVM 并触发 OnAfterReInit 事件 /// - void DoReInit(); + Task DoReInit(); + + /// + /// 当前登录人信息 + /// + Task GetLoginUserInfo (); #endregion diff --git a/src/WalkingTec.Mvvm.Core/Support/DataPrivilegeInfo.cs b/src/WalkingTec.Mvvm.Core/Support/DataPrivilegeInfo.cs index 290a49b1f..7cca8946a 100644 --- a/src/WalkingTec.Mvvm.Core/Support/DataPrivilegeInfo.cs +++ b/src/WalkingTec.Mvvm.Core/Support/DataPrivilegeInfo.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core.Extensions; namespace WalkingTec.Mvvm.Core @@ -18,7 +19,7 @@ public interface IDataPrivilege Type ModelType { get; set; } //获取数据权限的下拉菜单 - List GetItemList (WTMContext wtmcontext, string filter = null, List ids = null); + Task> GetItemList (WTMContext wtmcontext, string filter = null, List ids = null); List GetTreeParentIds(WTMContext wtmcontext, List dps); List GetTreeSubIds(WTMContext wtmcontext, List pids); } @@ -55,9 +56,9 @@ public DataPrivilegeInfo(string name, Expression> displayField, /// filter /// ids /// 数据权限关联表的下拉菜单 - public List GetItemList(WTMContext wtmcontext, string filter = null,List ids= null) + public async Task> GetItemList(WTMContext wtmcontext, string filter = null,List ids= null) { - var user = wtmcontext?.LoginUserInfo; + var user = await wtmcontext?.GetLoginUserInfo (); Expression> where = null; if (ids != null) @@ -93,11 +94,11 @@ public List GetItemList(WTMContext wtmcontext, string filte List rv = new List(); if (user.Roles?.Where(x => x.RoleCode == "001").FirstOrDefault() == null && user.DataPrivileges?.Where(x => x.RelateId == null).FirstOrDefault() == null) { - rv = wtmcontext.DC.Set().CheckIDs(user.DataPrivileges.Select(y => y.RelateId).ToList()).Where(where).GetSelectListItems(wtmcontext, _displayField, null, ignorDataPrivilege: true); + rv = await wtmcontext.DC.Set().CheckIDs(user.DataPrivileges.Select(y => y.RelateId).ToList()).Where(where).GetSelectListItems(wtmcontext, _displayField, null, ignorDataPrivilege: true); } else { - rv = wtmcontext.DC.Set().Where(where).GetSelectListItems(wtmcontext, _displayField, null, ignorDataPrivilege: true); + rv = await wtmcontext.DC.Set().Where(where).GetSelectListItems(wtmcontext, _displayField, null, ignorDataPrivilege: true); } return rv; } diff --git a/src/WalkingTec.Mvvm.Core/Support/FileHandlers/WtmDataBaseFileHandler.cs b/src/WalkingTec.Mvvm.Core/Support/FileHandlers/WtmDataBaseFileHandler.cs index 3cb7532ac..ac1df6cbd 100644 --- a/src/WalkingTec.Mvvm.Core/Support/FileHandlers/WtmDataBaseFileHandler.cs +++ b/src/WalkingTec.Mvvm.Core/Support/FileHandlers/WtmDataBaseFileHandler.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using System.Text; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Core.Models; @@ -29,7 +30,7 @@ public override Stream GetFileData(IWtmFile file) } - public IWtmFile UploadToDB(string fileName, long fileLength, Stream data, string groupName = null, string subdir = null, string extra = null) + public async Task UploadToDB(string fileName, long fileLength, Stream data, string groupName = null, string subdir = null, string extra = null) { FileAttachment file = new FileAttachment(); file.FileName = fileName; @@ -37,7 +38,7 @@ public IWtmFile UploadToDB(string fileName, long fileLength, Stream data, strin file.UploadTime = DateTime.Now; file.SaveMode = _modeName; file.ExtraInfo = extra; - file.TenantCode = wtm.LoginUserInfo?.CurrentTenant; + file.TenantCode = (await wtm.GetLoginUserInfo ())?.CurrentTenant; var ext = string.Empty; if (string.IsNullOrEmpty(fileName) == false) { @@ -51,7 +52,7 @@ public IWtmFile UploadToDB(string fileName, long fileLength, Stream data, strin file.FileData = dataStream.ToArray(); } wtm.DC.AddEntity(file); - wtm.DC.SaveChanges(); + await wtm.DC.SaveChangesAsync(); return file; } } diff --git a/src/WalkingTec.Mvvm.Core/Support/FileHandlers/WtmFileProvider.cs b/src/WalkingTec.Mvvm.Core/Support/FileHandlers/WtmFileProvider.cs index e69720114..8d0f178d3 100644 --- a/src/WalkingTec.Mvvm.Core/Support/FileHandlers/WtmFileProvider.cs +++ b/src/WalkingTec.Mvvm.Core/Support/FileHandlers/WtmFileProvider.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Reflection; using System.Text; +using System.Threading.Tasks; using Microsoft.Extensions.Options; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Core.Models; @@ -86,7 +87,7 @@ public IWtmFileHandler CreateFileHandler(string saveMode = null, IDataContext dc } } - public IWtmFile Upload(string fileName, long fileLength, Stream data, string group = null, string subdir = null, string extra = null, string saveMode = null, IDataContext dc =null) + public async Task Upload(string fileName, long fileLength, Stream data, string group = null, string subdir = null, string extra = null, string saveMode = null, IDataContext dc =null) { if (dc == null) { @@ -100,7 +101,7 @@ public IWtmFile Upload(string fileName, long fileLength, Stream data, string gr fileName = fileName.Replace("<", "").Replace(">","").Replace(" ", ""); if (fh is WtmDataBaseFileHandler lfh) { - return lfh.UploadToDB(fileName, fileLength, data, group, subdir, extra); + return await lfh.UploadToDB(fileName, fileLength, data, group, subdir, extra); } else { @@ -122,7 +123,7 @@ public IWtmFile Upload(string fileName, long fileLength, Stream data, string gr file.FileExt = ext; file.Path = rv.path; file.HandlerInfo = rv.handlerInfo; - file.TenantCode = _wtm.LoginUserInfo?.CurrentTenant; + file.TenantCode = (await _wtm.GetLoginUserInfo ())?.CurrentTenant; dc.AddEntity(file); dc.SaveChanges(); return file; diff --git a/src/WalkingTec.Mvvm.Core/Support/WTMLogger.cs b/src/WalkingTec.Mvvm.Core/Support/WTMLogger.cs index fad5e8c3d..1f1a3d32c 100644 --- a/src/WalkingTec.Mvvm.Core/Support/WTMLogger.cs +++ b/src/WalkingTec.Mvvm.Core/Support/WTMLogger.cs @@ -8,6 +8,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Core { @@ -135,13 +136,15 @@ public void Log(LogLevel logLevel, EventId eventId, TState state, Except { if (dc != null) { - try - { - log.TenantCode = wtm.LoginUserInfo?.CurrentTenant; - dc.AddEntity(log); - dc.SaveChanges(); - } - catch { } + _ = Task.Run (async () => { + try + { + log.TenantCode = (await wtm.GetLoginUserInfo ())?.CurrentTenant; + dc.AddEntity(log); + dc.SaveChanges(); + } + catch { } + }); } } } diff --git a/src/WalkingTec.Mvvm.Core/WTMContext.cs b/src/WalkingTec.Mvvm.Core/WTMContext.cs index 41ae1ee7e..f43ce8db8 100644 --- a/src/WalkingTec.Mvvm.Core/WTMContext.cs +++ b/src/WalkingTec.Mvvm.Core/WTMContext.cs @@ -149,100 +149,74 @@ public IDataContext DC #region Current User - private LoginUserInfo _loginUserInfo; - public LoginUserInfo LoginUserInfo - { - get - { - if (_loginUserInfo == null && HttpContext?.User?.Identity?.IsAuthenticated == true) // 用户认证通过后,当前上下文不包含用户数据 + private LoginUserInfo _loginUserInfo = null; + + public async Task GetLoginUserInfo () { + if (_loginUserInfo == null && HttpContext?.User?.Identity?.IsAuthenticated == true) // 用户认证通过后,当前上下文不包含用户数据 { - var userIdStr = HttpContext.User.Claims.Where(x => x.Type == AuthConstants.JwtClaimTypes.Subject).Select(x => x.Value).FirstOrDefault(); - var tenant = HttpContext.User.Claims.Where(x => x.Type == AuthConstants.JwtClaimTypes.TenantCode).Select(x => x.Value).FirstOrDefault(); + var userIdStr = HttpContext.User.Claims.Where (x => x.Type == AuthConstants.JwtClaimTypes.Subject).Select (x => x.Value).FirstOrDefault (); + var tenant = HttpContext.User.Claims.Where (x => x.Type == AuthConstants.JwtClaimTypes.TenantCode).Select (x => x.Value).FirstOrDefault (); + string usercode = userIdStr; + var cacheKey = $"{GlobalConstants.CacheKey.UserInfo}:{userIdStr + "$`$" + tenant}"; + _loginUserInfo = Cache.Get (cacheKey); + if (_loginUserInfo == null) { + try { + _loginUserInfo = await ReloadUser (usercode); + } catch { } + if (_loginUserInfo != null) { + Cache.Add (cacheKey, _loginUserInfo); + } else { + return null; + } + } + } + if (_loginUserInfo == null && HttpContext?.Request.Query.Any (x => x.Key == "_remotetoken") == true) { + var remoteToken = HttpContext?.Request.Query ["_remotetoken"] [0]; + if (ConfigInfo.HasMainHost == false) { + JwtSecurityToken token = new JwtSecurityToken (); + try { + token = new JwtSecurityToken (remoteToken); + } catch { } + var userIdStr = token.Claims.Where (x => x.Type == AuthConstants.JwtClaimTypes.Subject).Select (x => x.Value).FirstOrDefault (); + var tenant = token.Claims.Where (x => x.Type == AuthConstants.JwtClaimTypes.TenantCode).Select (x => x.Value).FirstOrDefault (); string usercode = userIdStr; var cacheKey = $"{GlobalConstants.CacheKey.UserInfo}:{userIdStr + "$`$" + tenant}"; - _loginUserInfo = Cache.Get(cacheKey); - if (_loginUserInfo == null) - { - try - { - _loginUserInfo = ReloadUser(usercode); - } - catch { } - if (_loginUserInfo != null) - { - Cache.Add(cacheKey, _loginUserInfo); - } - else - { + _loginUserInfo = Cache.Get (cacheKey); + if (_loginUserInfo == null) { + try { + _loginUserInfo = await ReloadUser (usercode); + } catch { } + if (_loginUserInfo != null) { + Cache.Add (cacheKey, _loginUserInfo); + } else { return null; } } - } - if (_loginUserInfo == null && HttpContext?.Request.Query.Any(x => x.Key == "_remotetoken") == true) - { - var remoteToken = HttpContext?.Request.Query["_remotetoken"][0]; - if (ConfigInfo.HasMainHost == false) - { - JwtSecurityToken token = new JwtSecurityToken(); - try - { - token = new JwtSecurityToken(remoteToken); - } - catch { } - var userIdStr = token.Claims.Where(x => x.Type == AuthConstants.JwtClaimTypes.Subject).Select(x => x.Value).FirstOrDefault(); - var tenant = token.Claims.Where(x => x.Type == AuthConstants.JwtClaimTypes.TenantCode).Select(x => x.Value).FirstOrDefault(); - string usercode = userIdStr; - var cacheKey = $"{GlobalConstants.CacheKey.UserInfo}:{userIdStr + "$`$" + tenant}"; - _loginUserInfo = Cache.Get(cacheKey); - if (_loginUserInfo == null) - { - try - { - _loginUserInfo = ReloadUser(usercode); - } - catch { } - if (_loginUserInfo != null) - { - Cache.Add(cacheKey, _loginUserInfo); - } - else - { - return null; - } - } - } - else if (string.IsNullOrEmpty(remoteToken) == false) - { - try - { - _loginUserInfo = ReloadUser("null"); - } - catch { } - if (_loginUserInfo != null) - { - var cacheKey = $"{GlobalConstants.CacheKey.UserInfo}:{_loginUserInfo.ITCode + "$`$" + _loginUserInfo.TenantCode}"; - Cache.Add(cacheKey, _loginUserInfo); - } - else - { - return null; - } + } else if (string.IsNullOrEmpty (remoteToken) == false) { + try { + _loginUserInfo = await ReloadUser ("null"); + } catch { } + if (_loginUserInfo != null) { + var cacheKey = $"{GlobalConstants.CacheKey.UserInfo}:{_loginUserInfo.ITCode + "$`$" + _loginUserInfo.TenantCode}"; + Cache.Add (cacheKey, _loginUserInfo); + } else { + return null; } } - return _loginUserInfo; } - set + return _loginUserInfo; + } + public void SetLoginUserInfo (LoginUserInfo loginUserInfo) + { + if (loginUserInfo == null) { - if (value == null) - { - Cache.Delete($"{GlobalConstants.CacheKey.UserInfo}:{_loginUserInfo?.ITCode + "$`$" + _loginUserInfo?.TenantCode}"); - _loginUserInfo = value; - } - else - { - _loginUserInfo = value; - Cache.Add($"{GlobalConstants.CacheKey.UserInfo}:{_loginUserInfo.ITCode + "$`$" + _loginUserInfo?.TenantCode}", value); - } + Cache.Delete($"{GlobalConstants.CacheKey.UserInfo}:{_loginUserInfo?.ITCode + "$`$" + _loginUserInfo?.TenantCode}"); + _loginUserInfo = loginUserInfo; + } + else + { + _loginUserInfo = loginUserInfo; + Cache.Add($"{GlobalConstants.CacheKey.UserInfo}:{_loginUserInfo.ITCode + "$`$" + _loginUserInfo?.TenantCode}", loginUserInfo); } } @@ -272,12 +246,11 @@ public IStringLocalizer Localizer /// /// 用户名 /// 用户信息 - public virtual LoginUserInfo - ReloadUser(string itcode) + public virtual async Task ReloadUser(string itcode) { if (ReloadUserFunc != null) { - var reload = ReloadUserFunc.Invoke(this, itcode); + var reload = ReloadUserFunc.Invoke (this, itcode); if (reload != null) { return reload; @@ -287,7 +260,7 @@ public virtual LoginUserInfo { return null; } - var user = DoLogin(itcode, null, null); + var user = await DoLogin(itcode, null, null); return user; } @@ -351,7 +324,7 @@ public void SetServiceProvider(IServiceProvider sp) this._serviceProvider = sp; } - public LoginUserInfo DoLogin(string username, string password, string tenant) + public async Task DoLogin(string username, string password, string tenant) { if(tenant == "") { @@ -373,7 +346,7 @@ public LoginUserInfo DoLogin(string username, string password, string tenant) { Dictionary headers = new Dictionary(); headers.Add("Authorization", "Bearer " + remoteToken); - var user = CallAPI("mainhost", "/api/_account/checkuserinfo?IsApi=false", HttpMethodEnum.GET, new { }, 10, headers: headers).Result; + var user = await CallAPI("mainhost", "/api/_account/checkuserinfo?IsApi=false", HttpMethodEnum.GET, new { }, 10, headers: headers); rv = user.Data; if (rv != null) { @@ -382,13 +355,13 @@ public LoginUserInfo DoLogin(string username, string password, string tenant) } else if(string.IsNullOrEmpty(password)==false) { - var loginjwt = CallAPI("mainhost", "/api/_account/loginjwt", HttpMethodEnum.POST, new { Account = username, Password = password }, 10).Result; + var loginjwt = await CallAPI("mainhost", "/api/_account/loginjwt", HttpMethodEnum.POST, new { Account = username, Password = password }, 10); if (string.IsNullOrEmpty(loginjwt?.Data?.AccessToken) == false) { remoteToken = loginjwt?.Data?.AccessToken; Dictionary headers = new Dictionary(); headers.Add("Authorization", "Bearer " + remoteToken); - var user = CallAPI("mainhost", "/api/_account/checkuserinfo?IsApi=false", HttpMethodEnum.GET, new { }, 10, headers: headers).Result; + var user = await CallAPI("mainhost", "/api/_account/checkuserinfo?IsApi=false", HttpMethodEnum.GET, new { }, 10, headers: headers); rv = user.Data; if (rv != null) { @@ -455,35 +428,35 @@ public LoginUserInfo DoLogin(string username, string password, string tenant) //} user.RemoteToken = null; var authService = HttpContext.RequestServices.GetService(typeof(ITokenService)) as ITokenService; - var token = authService.IssueTokenAsync(user).Result; + var token = await authService.IssueTokenAsync(user); user.RemoteToken = token.AccessToken; return user; } } - public Token RefreshToken() + public async Task RefreshToken() { - if(LoginUserInfo == null) + if(await GetLoginUserInfo() == null) { return null; } string rt = null; - if (ConfigInfo.HasMainHost && LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && _loginUserInfo?.CurrentTenant == null) { - var r = CallAPI("mainhost", $"/api/_account/RefreshToken", HttpMethodEnum.POST, new { }).Result; + var r = await CallAPI("mainhost", $"/api/_account/RefreshToken", HttpMethodEnum.POST, new { }); rt = r?.Data?.AccessToken; } else { - rt = LoginUserInfo.RemoteToken; + rt = _loginUserInfo.RemoteToken; } var _authService = ServiceProvider.GetRequiredService(); - var rv = _authService.IssueTokenAsync(new LoginUserInfo + var rv = await _authService.IssueTokenAsync(new LoginUserInfo { - ITCode = LoginUserInfo.ITCode, - TenantCode = LoginUserInfo.TenantCode, + ITCode = _loginUserInfo.ITCode, + TenantCode = _loginUserInfo.TenantCode, RemoteToken = rt - }).Result; + }); return rv; } @@ -511,21 +484,21 @@ public T ReadFromCache(string key, Func setFunc, int? timeout = null) } } - public async Task RemoveUserCache( - params string[] userIds) + public async Task RemoveUserCache(params string[] userIds) { + await GetLoginUserInfo (); foreach (var userId in userIds) { - var key = $"{GlobalConstants.CacheKey.UserInfo}:{userId + "$`$" + LoginUserInfo?.CurrentTenant}"; + var key = $"{GlobalConstants.CacheKey.UserInfo}:{userId + "$`$" + _loginUserInfo?.CurrentTenant}"; await Cache.DeleteAsync(key); } } - public async Task RemoveUserCacheByRole( - params string[] rolecode) + public async Task RemoveUserCacheByRole(params string[] rolecode) { + await GetLoginUserInfo (); List userids = new List(); - if (ConfigInfo.HasMainHost && string.IsNullOrEmpty(LoginUserInfo?.CurrentTenant) == true) + if (ConfigInfo.HasMainHost && string.IsNullOrEmpty(_loginUserInfo?.CurrentTenant) == true) { foreach (var item in rolecode) { @@ -542,16 +515,16 @@ public async Task RemoveUserCacheByRole( } foreach (var userId in userids) { - var key = $"{GlobalConstants.CacheKey.UserInfo}:{userId + "$`$" + LoginUserInfo?.CurrentTenant}"; + var key = $"{GlobalConstants.CacheKey.UserInfo}:{userId + "$`$" + _loginUserInfo?.CurrentTenant}"; await Cache.DeleteAsync(key); } } - public async Task RemoveUserCacheByGroup( -params string[] groupcode) + public async Task RemoveUserCacheByGroup(params string[] groupcode) { + await GetLoginUserInfo (); List userids = new List(); - if (ConfigInfo.HasMainHost && string.IsNullOrEmpty(LoginUserInfo?.CurrentTenant) == true) + if (ConfigInfo.HasMainHost && string.IsNullOrEmpty(_loginUserInfo?.CurrentTenant) == true) { foreach (var item in groupcode) { @@ -568,7 +541,7 @@ public async Task RemoveUserCacheByGroup( } foreach (var userId in userids) { - var key = $"{GlobalConstants.CacheKey.UserInfo}:{userId + "$`$" + LoginUserInfo?.CurrentTenant}"; + var key = $"{GlobalConstants.CacheKey.UserInfo}:{userId + "$`$" + _loginUserInfo?.CurrentTenant}"; await Cache.DeleteAsync(key); } } @@ -650,14 +623,14 @@ public List GetTenantRoles(string tenant) } - public bool SetCurrentTenant(string tenant) + public async Task SetCurrentTenant(string tenant) { - if (LoginUserInfo != null) + if (await GetLoginUserInfo () != null) { - if (LoginUserInfo.TenantCode == null || LoginUserInfo.TenantCode == tenant || GlobaInfo.AllTenant.Any(x => x.TCode == tenant && x.TenantCode == LoginUserInfo.TenantCode)) + if (_loginUserInfo.TenantCode == null || _loginUserInfo.TenantCode == tenant || GlobaInfo.AllTenant.Any(x => x.TCode == tenant && x.TenantCode == _loginUserInfo.TenantCode)) { - LoginUserInfo.CurrentTenant = tenant; - LoginUserInfo = LoginUserInfo; + _loginUserInfo.CurrentTenant = tenant; + SetLoginUserInfo (_loginUserInfo); return true; } } @@ -715,8 +688,18 @@ public virtual IDataContext CreateDC(bool isLog = false, string cskey = null, bo /// /// url地址 /// true代表可以访问,false代表不能访问 - public bool IsAccessable(string url) + public async Task IsAccessable(string url) { + await GetLoginUserInfo (); + return IsAccessableSync (url); + } + + /// + /// 判断某URL是否有权限访问 + /// + /// url地址 + /// true代表可以访问,false代表不能访问 + public bool IsAccessableSync (string url) { // 如果是调试 或者 url 为 null or 空字符串 if (_configInfo.IsQuickDebug || string.IsNullOrEmpty(url) || IsUrlPublic(url)) { @@ -725,7 +708,7 @@ public bool IsAccessable(string url) //租户用户不能访问标记[HostOnly]的方法 if (_configInfo.EnableTenant == true) { - if (LoginUserInfo?.TenantCode != null) + if (_loginUserInfo?.TenantCode != null) { var hostonly = _globaInfo.AllMainTenantOnlyUrls; foreach (var au in hostonly) @@ -747,7 +730,7 @@ public bool IsAccessable(string url) } } //如果没有任何页面权限,则直接返回false - if (LoginUserInfo?.FunctionPrivileges == null) + if (_loginUserInfo?.FunctionPrivileges == null) { return false; } @@ -782,14 +765,14 @@ public bool IsAccessable(string url) /// 菜单项 /// 所有系统菜单 /// true代表可以访问,false代表不能访问 - protected bool IsAccessable(SimpleMenu menu, List menus) + protected bool IsAccessable (SimpleMenu menu, List menus) { - if (LoginUserInfo.CurrentTenant != null && menu.TenantAllowed == false) + if (_loginUserInfo.CurrentTenant != null && menu.TenantAllowed == false) { return false; } //寻找当前菜单的页面权限 - var find = LoginUserInfo?.FunctionPrivileges.Where(x => x.MenuItemId == menu.ID && x.Allowed == true).FirstOrDefault(); + var find = _loginUserInfo?.FunctionPrivileges.Where(x => x.MenuItemId == menu.ID && x.Allowed == true).FirstOrDefault(); //如果能找到直接对应的页面权限 if (find != null) { @@ -880,7 +863,7 @@ public void DoLog(string msg, ActionLogTypesEnum logtype = ActionLogTypesEnum.No /// properties of the viewmodel that you want to assign values /// if true, the viewmodel will not call InitVM internally /// ViewModel - private BaseVM CreateVM(Type VMType, object Id = null, object[] Ids = null, Dictionary values = null, bool passInit = false) + private async Task CreateVM(Type VMType, object Id = null, object[] Ids = null, Dictionary values = null, bool passInit = false) { //Use reflection to create viewmodel var ctor = VMType.GetConstructor(Type.EmptyTypes); @@ -931,7 +914,7 @@ private BaseVM CreateVM(Type VMType, object Id = null, object[] Ids = null, Dict { cvm.SetEntityById(Id); } - SetSubVm(rv, passInit); + await SetSubVm(rv, passInit); //if viewmodel is derrived from IBaseBatchVM<>,set ViewMode's Ids property,and init it's ListVM and EditModel properties if (rv is IBaseBatchVM temp) { @@ -975,7 +958,7 @@ private BaseVM CreateVM(Type VMType, object Id = null, object[] Ids = null, Dict searcher.CopyContext(rv); if (passInit == false) { - searcher.DoInit(); + await searcher.DoInit(); } } } @@ -989,7 +972,7 @@ private BaseVM CreateVM(Type VMType, object Id = null, object[] Ids = null, Dict searcher.CopyContext(rv); if (passInit == false) { - searcher.DoInit(); + await searcher.DoInit(); } lvm.DoInitListVM(); @@ -998,7 +981,7 @@ private BaseVM CreateVM(Type VMType, object Id = null, object[] Ids = null, Dict { var template = tvm.Template; template.CopyContext(rv); - template.DoInit(); + await template.DoInit(); var errorlist = tvm.ErrorListVM; errorlist.CopyContext(rv); } @@ -1006,12 +989,12 @@ private BaseVM CreateVM(Type VMType, object Id = null, object[] Ids = null, Dict //if passinit is not set, call the viewmodel's DoInit method if (passInit == false) { - rv.DoInit(); + await rv.DoInit(); } return rv; } - private void SetSubVm(BaseVM vm, bool passInit) + private async Task SetSubVm(BaseVM vm, bool passInit) { var sub = vm.GetType().GetAllProperties().Where(x => typeof(BaseVM).IsAssignableFrom(x.PropertyType) && x.Name != "ParentVM"); foreach (var prop in sub) @@ -1029,13 +1012,13 @@ private void SetSubVm(BaseVM vm, bool passInit) subins.PropertyNameInParent = prop.Name; if (passInit == false) { - subins.DoInit(); + await subins.DoInit(); } if (exist == false) { vm.SetPropertyValue(prop.Name, subins); } - SetSubVm(subins,passInit); + await SetSubVm(subins,passInit); } } @@ -1154,9 +1137,9 @@ public T CreateVM(string[] Ids, Expression> values = null, bo /// If the viewmodel is a BatchVM, the BatchVM's Ids property will be assigned /// if true, the viewmodel will not call InitVM internally /// ViewModel - public BaseVM CreateVM(string VmFullName, object Id = null, object[] Ids = null, bool passInit = false) + public async Task CreateVM(string VmFullName, object Id = null, object[] Ids = null, bool passInit = false) { - return CreateVM(Type.GetType(VmFullName), Id, Ids, null, passInit); + return await CreateVM(Type.GetType(VmFullName), Id, Ids, null, passInit); } #endregion diff --git a/src/WalkingTec.Mvvm.Mvc/CodeGenListVM.cs b/src/WalkingTec.Mvvm.Mvc/CodeGenListVM.cs index 1f44ced58..c89c112b9 100644 --- a/src/WalkingTec.Mvvm.Mvc/CodeGenListVM.cs +++ b/src/WalkingTec.Mvvm.Mvc/CodeGenListVM.cs @@ -3,6 +3,7 @@ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Attributes; using WalkingTec.Mvvm.Core.Extensions; @@ -19,9 +20,9 @@ public CodeGenListVM() NeedPage = false; } - protected override IEnumerable> InitGridHeader() + protected override Task>> InitGridHeader() { - return new List> + return Task.FromResult>> (new List> { this.MakeGridHeader(x=>x.FieldName,200).SetFormat((entity,val)=>{return withHidden($"FieldInfos[{entity.Index}].FieldName",entity.FieldName); }), this.MakeGridHeader(x=>x.FieldDes,200), @@ -31,7 +32,7 @@ protected override IEnumerable> InitGridHeader() this.MakeGridHeader(x=>x.IsFormField,150).SetFormat((entity,val)=>{return getCheckBox($"FieldInfos[{entity.Index}].IsFormField",entity.IsFormField); }), this.MakeGridHeader(x=>x.IsImportField,150).SetFormat((entity,val)=>{return getCheckBox($"FieldInfos[{entity.Index}].IsImportField",entity.IsImportField); }), this.MakeGridHeader(x=>x.IsBatchField,150).SetFormat((entity,val)=>{return getCheckBox($"FieldInfos[{entity.Index}].IsBatchField",entity.IsBatchField); }) - }; + }); } private string getCheckBox(string fieldname, bool val) @@ -73,7 +74,7 @@ private string subField(string fieldname, CodeGenListView entity) return rv; } - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { Type modeltype = Type.GetType(ModelFullName); var pros = modeltype.GetAllProperties(); @@ -229,7 +230,7 @@ public override IOrderedQueryable GetSearchQuery() } } - return lv.AsQueryable().OrderBy(x => x.FieldName); + return Task.FromResult (lv.AsQueryable ().OrderBy (x => x.FieldName)); } } diff --git a/src/WalkingTec.Mvvm.Mvc/CodeGenVM.cs b/src/WalkingTec.Mvvm.Mvc/CodeGenVM.cs index f2b6d8c24..449bcc203 100644 --- a/src/WalkingTec.Mvvm.Mvc/CodeGenVM.cs +++ b/src/WalkingTec.Mvvm.Mvc/CodeGenVM.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Reflection; using System.Text; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; @@ -355,7 +356,7 @@ public string VMNs } } - protected override void InitVM() + protected override Task InitVM() { if (string.IsNullOrEmpty(SelectedModel) == false) { @@ -374,6 +375,7 @@ protected override void InitVM() FieldList = new CodeGenListVM(); FieldList.CopyContext(this); + return Task.CompletedTask; } public void DoGen() { @@ -587,7 +589,7 @@ public string GenerateController() [HttpGet(""Get{subtype.Name}s"")] public ActionResult Get{subtype.Name}s() {{ - return Ok(DC.Set<{subtype.Name}>().GetSelectListItems(Wtm, x => x.{item.SubField})); + return Ok(await DC.Set<{subtype.Name}>().GetSelectListItems(Wtm, x => x.{item.SubField})); }}"); } } @@ -694,7 +696,7 @@ public string GenerateVM(string name) if (UI == UIEnum.LayUI && IsApi == false) { actionstring = $@" - protected override List InitGridAction() + protected override Task> InitGridAction() {{ return new List {{ diff --git a/src/WalkingTec.Mvvm.Mvc/Filters/DataContextFilter.cs b/src/WalkingTec.Mvvm.Mvc/Filters/DataContextFilter.cs index e292c7a39..0fe2e2893 100644 --- a/src/WalkingTec.Mvvm.Mvc/Filters/DataContextFilter.cs +++ b/src/WalkingTec.Mvvm.Mvc/Filters/DataContextFilter.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core; namespace WalkingTec.Mvvm.Mvc.Filters @@ -13,17 +14,12 @@ public class DataContextFilter : ActionFilterAttribute { public static Func _csfunc; - public DataContextFilter() - { - - } - - public override void OnActionExecuting(ActionExecutingContext context) + public override async Task OnActionExecutionAsync (ActionExecutingContext context, ActionExecutionDelegate next) { var controller = context.Controller as IBaseController; if (controller == null) { - base.OnActionExecuting(context); + await next (); return; } context.SetWtmContext(); @@ -72,7 +68,7 @@ public override void OnActionExecuting(ActionExecutingContext context) controller.Wtm.CurrentCS = cs; controller.Wtm.CurrentDbType = dbtype; - base.OnActionExecuting(context); + await next (); } } } diff --git a/src/WalkingTec.Mvvm.Mvc/Filters/FrameworkFilter.cs b/src/WalkingTec.Mvvm.Mvc/Filters/FrameworkFilter.cs index 684ba22e7..e2e20f1d7 100644 --- a/src/WalkingTec.Mvvm.Mvc/Filters/FrameworkFilter.cs +++ b/src/WalkingTec.Mvvm.Mvc/Filters/FrameworkFilter.cs @@ -19,17 +19,19 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.AspNetCore.Mvc.ViewEngines; using WalkingTec.Mvvm.Core.Extensions; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.Mvc.Filters { public class FrameworkFilter : ActionFilterAttribute { - public override void OnActionExecuting(ActionExecutingContext context) + public override async Task OnActionExecutionAsync (ActionExecutingContext context, ActionExecutionDelegate next) { var ctrl = context.Controller as IBaseController; if (ctrl == null) { - base.OnActionExecuting(context); + await next (); + _OnActionExecuted (context); return; } context.SetWtmContext(); @@ -145,7 +147,7 @@ public override void OnActionExecuting(ActionExecutingContext context) { var template = tvm.Template; template.CopyContext(model); - template.DoReInit(); + await template.DoReInit(); var errorlist = tvm.ErrorListVM; errorlist.CopyContext(model); } @@ -155,10 +157,10 @@ public override void OnActionExecuting(ActionExecutingContext context) searcher.CopyContext(lvm); if (ctrl is BaseController) { - searcher.DoInit(); + await searcher.DoInit(); } } - model.Validate(); + await model.Validate(); //如果是子表外键验证错误,例如Entity.Majors[0].SchoolId为空这种错误,则忽略。因为框架会在添加修改的时候自动给外键赋值 var toremove = ctrl.ModelState.Select(x => x.Key).Where(x => Regex.IsMatch(x, ".*?\\[.*?\\]\\..*?id", RegexOptions.IgnoreCase)); foreach (var r in toremove) @@ -193,14 +195,14 @@ public override void OnActionExecuting(ActionExecutingContext context) { if (reinit != null && (reinit.ReInitMode == ReInitModes.SUCCESSONLY || reinit.ReInitMode == ReInitModes.ALWAYS)) { - model.DoReInit(); + await model.DoReInit(); } } else { if (reinit == null || (reinit.ReInitMode == ReInitModes.FAILEDONLY || reinit.ReInitMode == ReInitModes.ALWAYS)) { - model.DoReInit(); + await model.DoReInit(); } } } @@ -214,8 +216,8 @@ public override void OnActionExecuting(ActionExecutingContext context) } } - //忽略绑定List由于前台传递空字符串造成的错误 - base.OnActionExecuting(context); + await next (); + _OnActionExecuted (context); } private void SetSubVm(BaseVM vm) @@ -244,12 +246,11 @@ private void SetSubVm(BaseVM vm) } - public override void OnActionExecuted(ActionExecutedContext context) + public void _OnActionExecuted(ActionExecutingContext context) { var ctrl = context.Controller as BaseController; if (ctrl == null) { - base.OnActionExecuted(context); return; } ctrl.ViewData["DONOTUSE_COOKIEPRE"] = ctrl.Wtm.ConfigInfo.CookiePre; @@ -339,15 +340,19 @@ public override void OnActionExecuted(ActionExecutedContext context) context.HttpContext.Response.Cookies.Append("divid", model?.ViewDivId); } } - base.OnActionExecuted(context); } - public override void OnResultExecuted(ResultExecutedContext context) + public override async Task OnResultExecutionAsync (ResultExecutingContext context, ResultExecutionDelegate next) { + Exception _ex = null; + try { + await next (); + } catch (Exception ex) { + _ex = ex; + } var ctrl = context.Controller as IBaseController; if (ctrl == null) { - base.OnResultExecuted(context); return; } var ctrlActDesc = context.ActionDescriptor as ControllerActionDescriptor; @@ -361,7 +366,7 @@ public override void OnResultExecuted(ResultExecutedContext context) if (context.Result is PartialViewResult pvr) { model = pvr.Model as BaseVM; - context.HttpContext.Response.WriteAsync($""); + await context.HttpContext.Response.WriteAsync($""); } //如果是来自Error,则已经记录过日志,跳过 @@ -376,15 +381,15 @@ public override void OnResultExecuted(ResultExecutedContext context) var actDes = ctrlActDesc.MethodInfo.GetCustomAttributes(typeof(ActionDescriptionAttribute), false).Cast().FirstOrDefault(); var postDes = ctrlActDesc.MethodInfo.GetCustomAttributes(typeof(HttpPostAttribute), false).Cast().FirstOrDefault(); - log.LogType = context.Exception == null ? ActionLogTypesEnum.Normal : ActionLogTypesEnum.Exception; + log.LogType = _ex == null ? ActionLogTypesEnum.Normal : ActionLogTypesEnum.Exception; log.ActionTime = DateTime.Now; - log.ITCode = ctrl.Wtm?.LoginUserInfo?.ITCode ?? string.Empty; + log.ITCode = (await ctrl.Wtm?.GetLoginUserInfo ())?.ITCode ?? string.Empty; // 给日志的多语言属性赋值 log.ModuleName = ctrlDes?.GetDescription(ctrl) ?? ctrlActDesc.ControllerName; log.ActionName = actDes?.GetDescription(ctrl) ?? ctrlActDesc.ActionName + (postDes == null ? string.Empty : "[P]"); log.ActionUrl = context.HttpContext.Request.Path; log.IP = context.HttpContext.GetRemoteIpAddress(); - log.Remark = context.Exception?.ToString() ?? string.Empty; + log.Remark = _ex?.ToString() ?? string.Empty; if (string.IsNullOrEmpty(log.Remark) == false && log.Remark.Length > 2000) { log.Remark = log.Remark.Substring(0, 2000); @@ -407,19 +412,17 @@ public override void OnResultExecuted(ResultExecutedContext context) } catch { } } - if (context.Exception != null) + if (_ex != null) { - context.ExceptionHandled = true; if (ctrl.Wtm.ConfigInfo.IsQuickDebug == true) { - context.HttpContext.Response.WriteAsync(context.Exception.ToString()); + await context.HttpContext.Response.WriteAsync(_ex.ToString()); } else { - context.HttpContext.Response.WriteAsync(MvcProgram._localizer["Sys.PageError"]); + await context.HttpContext.Response.WriteAsync(MvcProgram._localizer["Sys.PageError"]); } } - base.OnResultExecuted(context); } } diff --git a/src/WalkingTec.Mvvm.Mvc/Filters/PrivilegeFilter.cs b/src/WalkingTec.Mvvm.Mvc/Filters/PrivilegeFilter.cs index 732fe6929..af4accb92 100644 --- a/src/WalkingTec.Mvvm.Mvc/Filters/PrivilegeFilter.cs +++ b/src/WalkingTec.Mvvm.Mvc/Filters/PrivilegeFilter.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Security.Policy; using System.Text.RegularExpressions; +using System.Threading.Tasks; using System.Web; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.Cookies; @@ -23,8 +24,7 @@ namespace WalkingTec.Mvvm.Mvc.Filters { public class PrivilegeFilter : ActionFilterAttribute { - public override void OnActionExecuting(ActionExecutingContext context) - { + public override async Task OnActionExecutionAsync (ActionExecutingContext context, ActionExecutionDelegate next) { var controller = context.Controller as IBaseController; if (controller == null) { @@ -32,7 +32,7 @@ public override void OnActionExecuting(ActionExecutingContext context) return; } context.SetWtmContext(); - _ =controller.Wtm.LoginUserInfo; + var _loginUserInfo = await controller.Wtm.GetLoginUserInfo (); //if (controller.Wtm.ConfigInfo.IsQuickDebug && controller is BaseApiController) //{ // base.OnActionExecuting(context); @@ -123,7 +123,7 @@ public override void OnActionExecuting(ActionExecutingContext context) return; } - if (controller.Wtm.LoginUserInfo == null) + if (_loginUserInfo == null) { if (controller is ControllerBase ctrl) { @@ -186,7 +186,7 @@ public override void OnActionExecuting(ActionExecutingContext context) } else if (isHostOnly) { - if(controller.Wtm.LoginUserInfo.CurrentTenant != null) + if(_loginUserInfo.CurrentTenant != null) { if (controller is ControllerBase ctrl) { @@ -212,7 +212,7 @@ public override void OnActionExecuting(ActionExecutingContext context) if (isAllRights == false) { - bool canAccess = controller.Wtm.IsAccessable(controller.BaseUrl); + bool canAccess = await controller.Wtm.IsAccessable(controller.BaseUrl); if (canAccess == false && controller.ConfigInfo.IsQuickDebug == false) { if (controller is ControllerBase ctrl) diff --git a/src/WalkingTec.Mvvm.Mvc/Helper/FileExtension.cs b/src/WalkingTec.Mvvm.Mvc/Helper/FileExtension.cs index 1450a353e..01d859da9 100644 --- a/src/WalkingTec.Mvvm.Mvc/Helper/FileExtension.cs +++ b/src/WalkingTec.Mvvm.Mvc/Helper/FileExtension.cs @@ -16,10 +16,10 @@ public static class FileExtension /// /// /// - public static FileContentResult GetExportData(this IBasePagedListVM self, string ExportName = "") where T : TopBasePoco, new() + public static async Task GetExportData(this IBasePagedListVM self, string ExportName = "") where T : TopBasePoco, new() { self.SearcherMode = self.Ids != null && self.Ids.Count > 0 ? ListVMSearchModeEnum.CheckExport : ListVMSearchModeEnum.Export; - var data = self.GenerateExcel(); + var data = await self.GenerateExcel(); string ContentType = self.ExportExcelCount > 1 ? "application/x-zip-compresse" : "application/vnd.ms-excel"; ExportName = string.IsNullOrEmpty(ExportName) ? typeof(T).Name : ExportName; ExportName = self.ExportExcelCount > 1 ? $"Export_{ExportName}_{DateTime.Now.ToString("yyyyMMddHHmmssffff")}.zip" : $"Export_{ExportName}_{DateTime.Now.ToString("yyyyMMddHHmmssffff")}.xlsx"; diff --git a/src/WalkingTec.Mvvm.Mvc/_FrameworkController.cs b/src/WalkingTec.Mvvm.Mvc/_FrameworkController.cs index 95e121d22..307b812f0 100644 --- a/src/WalkingTec.Mvvm.Mvc/_FrameworkController.cs +++ b/src/WalkingTec.Mvvm.Mvc/_FrameworkController.cs @@ -36,7 +36,7 @@ public class _FrameworkController : BaseController [HttpPost] [Public] - public IActionResult Selector(string _DONOT_USE_VMNAME + public async Task Selector(string _DONOT_USE_VMNAME , string _DONOT_USE_KFIELD , string _DONOT_USE_VFIELD , string _DONOT_USE_FIELD @@ -85,7 +85,7 @@ public IActionResult Selector(string _DONOT_USE_VMNAME var pro = Expression.Property(para, idproperty); listVM.ReplaceWhere = listVM.Ids.GetContainIdExpression(modelType, Expression.Parameter(modelType), pro); Regex r = new Regex(""); - string selectData = r.Replace((listVM as IBasePagedListVM).GetDataJson(), ""); + string selectData = r.Replace(await (listVM as IBasePagedListVM).GetDataJson(), ""); ViewBag.SelectData = selectData; listVM.IsSearched = false; listVM.SearcherMode = ListVMSearchModeEnum.Selector; @@ -97,10 +97,10 @@ public IActionResult Selector(string _DONOT_USE_VMNAME } [ActionDescription("GetEmptyData")] - public IActionResult GetEmptyData(string _DONOT_USE_VMNAME) + public async Task GetEmptyData(string _DONOT_USE_VMNAME) { var listVM = Wtm.CreateVM(_DONOT_USE_VMNAME, null, null, true) as IBasePagedListVM; - string data = listVM.GetSingleDataJson(null, false); + string data = await listVM.GetSingleDataJson(null, false); var rv = new ContentResult { ContentType = "application/json", @@ -118,7 +118,7 @@ public IActionResult GetEmptyData(string _DONOT_USE_VMNAME) /// [HttpPost] [ActionDescription("GetPagingData")] - public IActionResult GetPagingData(string _DONOT_USE_VMNAME, string _DONOT_USE_CS) + public async Task GetPagingData(string _DONOT_USE_VMNAME, string _DONOT_USE_CS) { var qs = new Dictionary(); foreach (var item in Request.Form.Keys) @@ -136,7 +136,7 @@ public IActionResult GetPagingData(string _DONOT_USE_VMNAME, string _DONOT_USE_C { RedoUpdateModel(listVM); string url = ""; - if (ConfigInfo.HasMainHost && Wtm.LoginUserInfo?.CurrentTenant == null) + if (ConfigInfo.HasMainHost && (await Wtm.GetLoginUserInfo ())?.CurrentTenant == null) { Type[] checktypes = new Type[3] { typeof(FrameworkUserBase), typeof(FrameworkGroup), typeof(FrameworkRole) }; if (typeof(FrameworkUserBase).IsAssignableFrom(listVM.ModelType)) @@ -188,7 +188,7 @@ public IActionResult GetPagingData(string _DONOT_USE_VMNAME, string _DONOT_USE_C /// 属性值 /// [HttpPost] - public IActionResult UpdateModelProperty(string _DONOT_USE_VMNAME, Guid id, string field, string value) + public async Task UpdateModelProperty(string _DONOT_USE_VMNAME, Guid id, string field, string value) { if (value == null && Microsoft.Extensions.Primitives.StringValues.IsNullOrEmpty(Request.Form[nameof(value)])) { @@ -196,7 +196,7 @@ public IActionResult UpdateModelProperty(string _DONOT_USE_VMNAME, Guid id, stri } var vm = Wtm.CreateVM(_DONOT_USE_VMNAME, id, null, true) as IBaseCRUDVM; vm.Entity.SetPropertyValue(field, value); - DC.SaveChanges(); + await DC.SaveChangesAsync(); return JsonMore("Success"); } @@ -210,7 +210,7 @@ public IActionResult UpdateModelProperty(string _DONOT_USE_VMNAME, Guid id, stri /// [HttpPost] [ActionDescription("Export")] - public IActionResult GetExportExcel(string _DONOT_USE_VMNAME, string _DONOT_USE_CS) + public async Task GetExportExcel(string _DONOT_USE_VMNAME, string _DONOT_USE_CS) { var qs = new Dictionary(); foreach (var item in Request.Query.Keys) @@ -236,7 +236,7 @@ public IActionResult GetExportExcel(string _DONOT_USE_VMNAME, string _DONOT_USE_ listVM.SearcherMode = listVM.Ids != null && listVM.Ids.Count > 0 ? ListVMSearchModeEnum.CheckExport : ListVMSearchModeEnum.Export; - var data = listVM.GenerateExcel(); + var data = await listVM.GenerateExcel(); HttpContext.Response.Cookies.Append("DONOTUSEDOWNLOADING", "0", new Microsoft.AspNetCore.Http.CookieOptions() { Path = "/", Expires = DateTime.Now.AddDays(2) }); return File(data, "application/vnd.ms-excel", $"Export_{instanceType.Name}_{DateTime.Now.ToString("yyyy-MM-dd")}.xls"); @@ -272,13 +272,13 @@ public IActionResult GetExcelTemplate(string _DONOT_USE_VMNAME, string _DONOT_US [AllowAnonymous] [ActionDescription("Sys.ErrorHandle")] - public IActionResult Error() + public async Task Error() { var ex = HttpContext.Features.Get(); ActionLog log = new ActionLog(); log.LogType = ActionLogTypesEnum.Exception; log.ActionTime = DateTime.Now; - log.ITCode = Wtm.LoginUserInfo?.ITCode ?? string.Empty; + log.ITCode = (await Wtm.GetLoginUserInfo ())?.ITCode ?? string.Empty; var controllerDes = ex.Error.TargetSite.DeclaringType.GetCustomAttributes(typeof(ActionDescriptionAttribute), false).Cast().FirstOrDefault(); var actionDes = ex.Error.TargetSite.GetCustomAttributes(typeof(ActionDescriptionAttribute), false).Cast().FirstOrDefault(); @@ -325,20 +325,20 @@ public IActionResult Error() [HttpPost] [ActionDescription("UploadFileRoute")] - public IActionResult Upload([FromServices] WtmFileProvider fp, string sm = null, string groupName = null, string subdir = null, string extra = null, bool IsTemprory = true, string _DONOT_USE_CS=null) + public async Task Upload([FromServices] WtmFileProvider fp, string sm = null, string groupName = null, string subdir = null, string extra = null, bool IsTemprory = true, string _DONOT_USE_CS=null) { var FileData = Request.Form.Files[0]; - var file = fp.Upload(FileData.FileName, FileData.Length, FileData.OpenReadStream(), groupName, subdir, extra, sm, Wtm.CreateDC(cskey: _DONOT_USE_CS)); + var file = await fp.Upload(FileData.FileName, FileData.Length, FileData.OpenReadStream(), groupName, subdir, extra, sm, Wtm.CreateDC(cskey: _DONOT_USE_CS)); return JsonMore(new { Id = file.GetID(), Name = file.FileName }); } [HttpPost] [ActionDescription("UploadFileRoute")] - public IActionResult UploadImage([FromServices] WtmFileProvider fp, string sm = null, string groupName = null, string subdir = null, string extra = null, bool IsTemprory = true, string _DONOT_USE_CS = null, int? width = null, int? height = null) + public async Task UploadImage([FromServices] WtmFileProvider fp, string sm = null, string groupName = null, string subdir = null, string extra = null, bool IsTemprory = true, string _DONOT_USE_CS = null, int? width = null, int? height = null) { if (width == null && height == null) { - return Upload(fp, sm, groupName, subdir, extra, IsTemprory, _DONOT_USE_CS); + return await Upload(fp, sm, groupName, subdir, extra, IsTemprory, _DONOT_USE_CS); } var FileData = Request.Form.Files[0]; @@ -357,10 +357,10 @@ public IActionResult UploadImage([FromServices] WtmFileProvider fp, string sm = } MemoryStream ms = new MemoryStream(); oimage.Mutate(x => x.Resize(width.Value, height.Value)); - oimage.SaveAsJpeg(ms); + await oimage.SaveAsJpegAsync (ms); ms.Position = 0; - var file = fp.Upload(FileData.FileName, ms.Length, ms, groupName, subdir, extra, sm, Wtm.CreateDC(cskey: _DONOT_USE_CS)); + var file = await fp.Upload(FileData.FileName, ms.Length, ms, groupName, subdir, extra, sm, Wtm.CreateDC(cskey: _DONOT_USE_CS)); oimage.Dispose(); ms.Dispose(); return JsonMore(new { Id = file.GetID(), Name = file.FileName }); @@ -368,10 +368,10 @@ public IActionResult UploadImage([FromServices] WtmFileProvider fp, string sm = [HttpPost] [ActionDescription("UploadForLayUIRichTextBox")] - public IActionResult UploadForLayUIRichTextBox([FromServices] WtmFileProvider fp, string _DONOT_USE_CS = null, string groupName = null, string subdir = null) + public async Task UploadForLayUIRichTextBox([FromServices] WtmFileProvider fp, string _DONOT_USE_CS = null, string groupName = null, string subdir = null) { var FileData = Request.Form.Files[0]; - var file = fp.Upload(FileData.FileName, FileData.Length, FileData.OpenReadStream(), groupName, subdir, dc: Wtm.CreateDC(cskey: _DONOT_USE_CS)); + var file = await fp.Upload(FileData.FileName, FileData.Length, FileData.OpenReadStream(), groupName, subdir, dc: Wtm.CreateDC(cskey: _DONOT_USE_CS)); if (file != null) { string url = $"/_Framework/GetFile?id={file.GetID()}&stream=true&_DONOT_USE_CS={CurrentCS}"; @@ -417,7 +417,7 @@ public async Task GetFile([FromServices] WtmFileProvider fp, stri } var ms = new MemoryStream(); oimage.Mutate(x => x.Resize(width.Value, height.Value)); - oimage.SaveAsJpeg(ms); + await oimage.SaveAsJpegAsync (ms); rv.Dispose(); rv = ms; } @@ -487,7 +487,7 @@ public IActionResult ViewFile([FromServices] WtmFileProvider fp, string id, stri } [Public] - public IActionResult OutSide(string url) + public async Task OutSide(string url) { url = HttpUtility.UrlDecode(url); string pagetitle = string.Empty; @@ -511,7 +511,7 @@ public IActionResult OutSide(string url) pagetitle += menu.PageName; } - if (Wtm.IsUrlPublic(url) || Wtm.IsAccessable(url)) + if (Wtm.IsUrlPublic(url) || await Wtm.IsAccessable(url)) { return Content($@"{pagetitle} "); @@ -534,10 +534,10 @@ public IActionResult Menu() } [AllowAnonymous] - public IActionResult IsAccessable(string url) + public async Task IsAccessable(string url) { url = HttpUtility.UrlDecode(url); - if (Wtm.LoginUserInfo == null) + if (await Wtm.GetLoginUserInfo () == null) { if (Wtm.IsUrlPublic(url)) { @@ -550,7 +550,7 @@ public IActionResult IsAccessable(string url) } else { - bool canAccess = Wtm.IsAccessable(url); + bool canAccess = await Wtm.IsAccessable(url); return Ok(canAccess); } } @@ -664,21 +664,21 @@ public Dictionary GetScriptLanguage() [AllRights] [HttpPost] [ActionDescription("UploadForLayUIUEditor")] - public IActionResult UploadForLayUIUEditor([FromServices] WtmFileProvider fp, string _DONOT_USE_CS = "default", string groupName = null, string subdir = null) + public async Task UploadForLayUIUEditor([FromServices] WtmFileProvider fp, string _DONOT_USE_CS = "default", string groupName = null, string subdir = null) { IWtmFile file = null; if (Request.Form.Files != null && Request.Form.Files.Count() > 0) { //通过文件流方式上传附件 var FileData = Request.Form.Files[0]; - file = fp.Upload(FileData.FileName, FileData.Length, FileData.OpenReadStream(), groupName, subdir, dc: Wtm.CreateDC(cskey: _DONOT_USE_CS)); + file = await fp.Upload(FileData.FileName, FileData.Length, FileData.OpenReadStream(), groupName, subdir, dc: Wtm.CreateDC(cskey: _DONOT_USE_CS)); } else if (Request.Form.Keys != null && Request.Form.ContainsKey("FileID")) { //通过Base64方式上传附件 var FileData = Convert.FromBase64String(Request.Form["FileID"]); MemoryStream MS = new MemoryStream(FileData); - file = fp.Upload("SCRAWL_" + DateTime.Now.ToString("yyyyMMddHHmmssttt") + ".jpg", FileData.Length, MS, groupName, subdir, dc: Wtm.CreateDC(cskey: _DONOT_USE_CS)); + file = await fp.Upload("SCRAWL_" + DateTime.Now.ToString("yyyyMMddHHmmssttt") + ".jpg", FileData.Length, MS, groupName, subdir, dc: Wtm.CreateDC(cskey: _DONOT_USE_CS)); MS.Dispose(); } @@ -723,11 +723,11 @@ public IActionResult SetLanguage(string culture) } [Public] - public IActionResult SetTenant(string tenant) + public async Task SetTenant(string tenant) { - Wtm.SetCurrentTenant(tenant == "" ? null : tenant); - var principal = Wtm.LoginUserInfo.CreatePrincipal(); - HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, null); + await Wtm.SetCurrentTenant(tenant == "" ? null : tenant); + var principal = (await Wtm.GetLoginUserInfo ()).CreatePrincipal(); + await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, null); return FFResult().AddCustomScript("location.reload();"); } @@ -759,9 +759,9 @@ public async Task RemoteEntry(string redirect) { redirect = "/"; } - if (Wtm?.LoginUserInfo != null) + if (await Wtm?.GetLoginUserInfo () != null) { - var principal = Wtm.LoginUserInfo.CreatePrincipal(); + var principal = (await Wtm?.GetLoginUserInfo ()).CreatePrincipal(); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, null); } return Content($"", "text/html"); diff --git a/src/WalkingTec.Mvvm.TagHelpers.LayUI/DataTableTagHelper.cs b/src/WalkingTec.Mvvm.TagHelpers.LayUI/DataTableTagHelper.cs index 4ebcc1ac4..012723579 100644 --- a/src/WalkingTec.Mvvm.TagHelpers.LayUI/DataTableTagHelper.cs +++ b/src/WalkingTec.Mvvm.TagHelpers.LayUI/DataTableTagHelper.cs @@ -5,6 +5,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using System.Text.RegularExpressions; +using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc.ViewFeatures; using Microsoft.AspNetCore.Razor.TagHelpers; using Microsoft.Extensions.Options; @@ -332,7 +333,7 @@ private void CalcChildCol(List> layuiCols, List>(); var tempCols = new List(); @@ -509,7 +510,7 @@ public override void Process(TagHelperContext context, TagHelperOutput output) #region 处理 DataTable 操作按钮 - var actionCol = ListVM?.GetGridActions(); + var actionCol = await ListVM?.GetGridActions(); var rowBtnStrBuilder = new StringBuilder();// Grid 行内按钮 var toolBarBtnStrBuilder = new StringBuilder();// Grid 工具条按钮 @@ -520,7 +521,7 @@ public override void Process(TagHelperContext context, TagHelperOutput output) var vm = Vm.Model as BaseVM; foreach (var item in actionCol) { - AddSubButton(vmQualifiedName, rowBtnStrBuilder, toolBarBtnStrBuilder, gridBtnEventStrBuilder, vm, item); + await AddSubButton(vmQualifiedName, rowBtnStrBuilder, toolBarBtnStrBuilder, gridBtnEventStrBuilder, vm, item); } } if (hasButtonGroup == true) @@ -591,7 +592,7 @@ public override void Process(TagHelperContext context, TagHelperOutput output) pagetext:'{THProgram._localizer["Sys.Page"]}', oktext:'{THProgram._localizer["Sys.GotoButtonText"]}', }}":",page:false")} - {(page ? $",limit:{Limit}" : $",limit:{(UseLocalData ? ListVM.GetEntityList().Count().ToString() : "0")}")} + {(page ? $",limit:{Limit}" : $",limit:{(UseLocalData ? (await ListVM.GetEntityList ()).Count().ToString() : "0")}")} {(page ? (Limits == null || Limits.Length == 0 ? string.Empty @@ -622,7 +623,7 @@ public override void Process(TagHelperContext context, TagHelperOutput output) {Id}url = '{Url}'; $.extend(true,{Id}defaultfilter ,{Id}option); {TableJSVar} = table.render({Id}option); - {(UseLocalData ? $@"ff.LoadLocalData(""{Id}"",{Id}option,{ListVM.GetDataJson().Replace("", "$$#script$$")},{string.IsNullOrEmpty(ListVM.DetailGridPrix).ToString().ToLower()}); " : $@" + {(UseLocalData ? $@"ff.LoadLocalData(""{Id}"",{Id}option,{(await ListVM.GetDataJson ()).Replace("", "$$#script$$")},{string.IsNullOrEmpty(ListVM.DetailGridPrix).ToString().ToLower()}); " : $@" {(page ? $"if (document.body.clientWidth< 500) {{ {Id}option.page.layout = ['count', 'prev', 'page', 'next']; {Id}option.page.groups= 1;}} " : "")} {(AutoSearch ? $@" setTimeout(function(){{ @@ -758,7 +759,7 @@ private void generateColHeaderCore( /// /// /// - private void AddSubButton( + private async Task AddSubButton( string vmQualifiedName, StringBuilder rowBtnStrBuilder, StringBuilder toolBarBtnStrBuilder, @@ -768,10 +769,8 @@ private void AddSubButton( bool isSub = false ) { - if (string.IsNullOrEmpty(item.Url) || vm.Wtm?.IsUrlPublic(item.Url)==true || vm.Wtm?.IsAccessable(item.Url) == true || - item.ParameterType == GridActionParameterTypesEnum.AddRow || - item.ParameterType == GridActionParameterTypesEnum.RemoveRow - ) + if (string.IsNullOrEmpty(item.Url) || vm.Wtm?.IsUrlPublic(item.Url)==true || vm.Wtm?.IsAccessableSync(item.Url) == true || + item.ParameterType == GridActionParameterTypesEnum.AddRow || item.ParameterType == GridActionParameterTypesEnum.RemoveRow) { // Grid 行内按钮 if (item.ShowInRow) @@ -925,7 +924,7 @@ private void AddSubButton( if (item.ParameterType == GridActionParameterTypesEnum.AddRow) { Regex r = new Regex(""); - gridBtnEventStrBuilder.Append($@"ff.AddGridRow(""{Id}"",{Id}option,{r.Replace(ListVM.GetSingleDataJson(null, false), "")}); + gridBtnEventStrBuilder.Append($@"ff.AddGridRow(""{Id}"",{Id}option,{r.Replace(await ListVM.GetSingleDataJson(null, false), "")}); "); } else if (item.ParameterType == GridActionParameterTypesEnum.RemoveRow) { } diff --git a/src/WalkingTec.Mvvm.TagHelpers.LayUI/Form/SelectorTagHelper.cs b/src/WalkingTec.Mvvm.TagHelpers.LayUI/Form/SelectorTagHelper.cs index 928eedc60..f651ad731 100644 --- a/src/WalkingTec.Mvvm.TagHelpers.LayUI/Form/SelectorTagHelper.cs +++ b/src/WalkingTec.Mvvm.TagHelpers.LayUI/Form/SelectorTagHelper.cs @@ -9,6 +9,7 @@ using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using System.Linq.Expressions; +using System.Threading.Tasks; namespace WalkingTec.Mvvm.TagHelpers.LayUI.Form { @@ -121,7 +122,7 @@ public class SelectorTagHelper : BaseFieldTag typeof(IEnumerable) }; - public override void Process(TagHelperContext context, TagHelperOutput output) + public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { if (context.Items.ContainsKey("inselector") == false) { @@ -192,7 +193,7 @@ public override void Process(TagHelperContext context, TagHelperOutput output) } } - var entityList = listVM.GetEntityList().ToList(); + var entityList = (await listVM.GetEntityList()).ToList(); foreach (var item in entityList) { value.Add(item.GetType().GetSingleProperty(TextBind?.Metadata.PropertyName)?.GetValue(item).ToString()); @@ -252,7 +253,7 @@ public override void Process(TagHelperContext context, TagHelperOutput output) { var searcher = listVM.Searcher; searcher.CopyContext(listVM); - searcher.DoInit(); + await searcher.DoInit(); } var content = output.GetChildContentAsync().Result.GetContent().Trim(); diff --git a/test/WalkingTec.Mvvm.Core.Test/VM/BaseCRUDVMTest.cs b/test/WalkingTec.Mvvm.Core.Test/VM/BaseCRUDVMTest.cs index 445b2dbf7..cb4c214a7 100644 --- a/test/WalkingTec.Mvvm.Core.Test/VM/BaseCRUDVMTest.cs +++ b/test/WalkingTec.Mvvm.Core.Test/VM/BaseCRUDVMTest.cs @@ -7,6 +7,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Threading.Tasks; using WalkingTec.Mvvm.Core.Implement; using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Test.Mock; @@ -222,7 +223,7 @@ public void SingleTablePersistDelete() [TestMethod] [Description("Persist外键删除")] - public void One2ManyTablePersistDelete() + public async Task One2ManyTablePersistDelete() { GoodsCatalog gc = new GoodsCatalog { @@ -231,7 +232,7 @@ public void One2ManyTablePersistDelete() OrderNum = 2 }; _goodsvm.DC.AddEntity(gc); - _goodsvm.DC.SaveChanges(); + await _goodsvm.DC.SaveChangesAsync(); GoodsSpecification g = new GoodsSpecification { @@ -241,7 +242,7 @@ public void One2ManyTablePersistDelete() CatalogId = gc.ID }; _goodsvm.Entity = g; - _goodsvm.DoAdd(); + await _goodsvm.DoAdd(); //删除子表数据,主表应该无变化 using (var context = new DataContext(_seed, DBTypeEnum.Memory)) @@ -249,7 +250,7 @@ public void One2ManyTablePersistDelete() Assert.AreEqual(1, context.Set().IgnoreQueryFilters().Count()); _goodsvm.DC = context; _goodsvm.Entity = context.Set().IgnoreQueryFilters().Include(x=>x.Catalog).Where(x => x.ID == g.ID).FirstOrDefault(); - _goodsvm.DoDelete(); + await _goodsvm.DoDelete(); } using (var context = new DataContext(_seed, DBTypeEnum.Memory)) @@ -269,7 +270,7 @@ public void One2ManyTablePersistDelete() [TestMethod] [Description("Persist外键删除2")] - public void One2ManyTablePersistDelete2() + public async Task One2ManyTablePersistDelete2() { GoodsCatalog gc = new GoodsCatalog { @@ -278,7 +279,7 @@ public void One2ManyTablePersistDelete2() OrderNum = 2 }; _goodsvm.DC.AddEntity(gc); - _goodsvm.DC.SaveChanges(); + await _goodsvm.DC.SaveChangesAsync(); GoodsSpecification g = new GoodsSpecification { @@ -288,7 +289,7 @@ public void One2ManyTablePersistDelete2() CatalogId = gc.ID }; _goodsvm.Entity = g; - _goodsvm.DoAdd(); + await _goodsvm.DoAdd(); //删除主表数据,子表IsValid也应该设置为False using (var context = new DataContext(_seed, DBTypeEnum.Memory)) @@ -296,7 +297,7 @@ public void One2ManyTablePersistDelete2() Assert.AreEqual(1, context.Set().Count()); _goodsCatalogvm.DC = context; _goodsCatalogvm.Entity = context.Set().Where(x => x.ID == g.ID).FirstOrDefault(); - _goodsCatalogvm.DoDelete(); + await _goodsCatalogvm.DoDelete(); } using (var context = new DataContext(_seed, DBTypeEnum.Memory)) @@ -319,7 +320,7 @@ public void One2ManyTablePersistDelete2() [TestMethod] [Description("一对多主表删除")] - public void One2ManyTableDelete() + public async Task One2ManyTableDelete() { One2ManyDoAdd(); @@ -328,7 +329,7 @@ public void One2ManyTableDelete() var id = context.Set().AsNoTracking().First().ID; _schoolvm.DC = context; _schoolvm.Entity = context.Set().Include(x=>x.Majors).Where(x => x.ID == id).FirstOrDefault(); - _schoolvm.DoDelete(); + await _schoolvm.DoDelete(); } using (var context = new DataContext(_seed, DBTypeEnum.Memory)) diff --git a/test/WalkingTec.Mvvm.Core.Test/VM/BasePaedListVMTest.cs b/test/WalkingTec.Mvvm.Core.Test/VM/BasePaedListVMTest.cs index 1ec350c17..ef9605d60 100644 --- a/test/WalkingTec.Mvvm.Core.Test/VM/BasePaedListVMTest.cs +++ b/test/WalkingTec.Mvvm.Core.Test/VM/BasePaedListVMTest.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Threading.Tasks; using WalkingTec.Mvvm.Test.Mock; namespace WalkingTec.Mvvm.Core.Test.VM @@ -15,8 +16,11 @@ public class BasePaedListVMTest private GoodsSpecificationTestListVM _goodsListVM ; private string _seed; - public BasePaedListVMTest() - { + public BasePaedListVMTest() { + _ = Task.Run (Init); + } + + public async Task Init () { _seed = Guid.NewGuid().ToString(); _studentListVM = new BasePagedListVM(); _studentListVM.Wtm = MockWtmContext.CreateWtmContext(new DataContext(_seed, DBTypeEnum.Memory)); @@ -30,7 +34,7 @@ public BasePaedListVMTest() IsValid = true }); } - _studentListVM.DC.SaveChanges(); + await _studentListVM.DC.SaveChangesAsync(); _goodsListVM = new GoodsSpecificationTestListVM(); _goodsListVM.DC = new DataContext(_seed, DBTypeEnum.Memory); @@ -42,47 +46,47 @@ public BasePaedListVMTest() IsValid = i <= 10 ? true : false }); } - _goodsListVM.DC.SaveChanges(); + await _goodsListVM.DC.SaveChangesAsync(); } [TestMethod] - public void SearchTest() + public async Task SearchTest() { _studentListVM.Searcher.Limit = 10; - _studentListVM.DoSearch(); + await _studentListVM.DoSearch(); Assert.AreEqual(_studentListVM.Searcher.Count, 20); Assert.AreEqual(_studentListVM.Searcher.PageCount, 2); Assert.AreEqual(_studentListVM.EntityList.Count, 10); } [TestMethod] - public void PersistSearchTest() + public async Task PersistSearchTest() { _goodsListVM.Searcher.Limit = 20; - _goodsListVM.DoSearch(); + await _goodsListVM.DoSearch(); Assert.AreEqual(_goodsListVM.Searcher.Count, 10); Assert.AreEqual(_goodsListVM.Searcher.PageCount, 1); Assert.AreEqual(_goodsListVM.EntityList.Count, 10); } [TestMethod] - public void PersistSearchTest2() + public async Task PersistSearchTest2() { _goodsListVM.Searcher.Limit = 20; _goodsListVM.SearcherMode = ListVMSearchModeEnum.Export; - _goodsListVM.DoSearch(); + await _goodsListVM.DoSearch(); Assert.AreEqual(_goodsListVM.Searcher.Count, 0); Assert.AreEqual(_goodsListVM.Searcher.PageCount, 0); Assert.AreEqual(_goodsListVM.EntityList.Count, 0); } [TestMethod] - public void SearchTest2() + public async Task SearchTest2() { _studentListVM.Searcher.Limit = 5; _studentListVM.Searcher.Page = 2; - _studentListVM.DoSearch(); + await _studentListVM.DoSearch(); Assert.AreEqual(_studentListVM.Searcher.Count, 20); Assert.AreEqual(_studentListVM.Searcher.PageCount, 4); Assert.AreEqual(_studentListVM.EntityList.Count, 5); @@ -93,11 +97,11 @@ public void SearchTest2() [DataRow(-100)] [DataRow(-20)] [DataRow(0)] - public void SearchTest3(int page) + public async Task SearchTest3(int page) { _studentListVM.Searcher.Limit = 3; _studentListVM.Searcher.Page = page; - _studentListVM.DoSearch(); + await _studentListVM.DoSearch(); Assert.AreEqual(_studentListVM.Searcher.Count, 20); Assert.AreEqual(_studentListVM.Searcher.PageCount, 7); Assert.AreEqual(_studentListVM.EntityList.Count, 3); @@ -106,36 +110,36 @@ public void SearchTest3(int page) [TestMethod] - public void SearchWithoutPagingTest() + public async Task SearchWithoutPagingTest() { _studentListVM.NeedPage = false; - _studentListVM.DoSearch(); + await _studentListVM.DoSearch(); Assert.AreEqual(_studentListVM.Searcher.Count, 20); Assert.AreEqual(_studentListVM.Searcher.PageCount, 1); Assert.AreEqual(_studentListVM.EntityList.Count, 20); } [TestMethod] - public void SortTest() + public async Task SortTest() { _studentListVM.Searcher.SortInfo = new SortInfo() { Direction = SortDir.Desc, Property = "LoginName" }; - _studentListVM.DoSearch(); + await _studentListVM.DoSearch(); Assert.AreEqual(_studentListVM.EntityList[0].LoginName, "s20"); } } public class GoodsSpecificationTestListVM : BasePagedListVM { - public override IOrderedQueryable GetSearchQuery() + public override Task> GetSearchQuery() { var query = DC.Set().OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } - public override IOrderedQueryable GetExportQuery() + public override Task> GetExportQuery() { var query = DC.Set().Select(x=>new GoodsSpecification { Name = x.MajorName }).OrderBy(x => x.ID); - return query; + return Task.FromResult (query); } } } diff --git a/test/WalkingTec.Mvvm.Test.Mock/MockWtmContext.cs b/test/WalkingTec.Mvvm.Test.Mock/MockWtmContext.cs index 03ce803d1..10e597dbb 100644 --- a/test/WalkingTec.Mvvm.Test.Mock/MockWtmContext.cs +++ b/test/WalkingTec.Mvvm.Test.Mock/MockWtmContext.cs @@ -46,7 +46,7 @@ public static WTMContext CreateWtmContext(IDataContext dataContext= null, string { wtmcontext.DC = dataContext; } - wtmcontext.LoginUserInfo = new LoginUserInfo { ITCode = usercode ?? "user" }; + wtmcontext.SetLoginUserInfo (new LoginUserInfo { ITCode = usercode ?? "user" }); wtmcontext.GlobaInfo.AllAccessUrls = new List(); wtmcontext.GlobaInfo.AllAssembly = new List(); wtmcontext.GlobaInfo.AllModule = new List();