From 9e1cc1521f62df3fe26996d0525fcff26435fb0c Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 20 Aug 2024 13:59:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=86=E9=A1=B5=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/QC/QCQuestionService.cs | 2 +- .../ClinicalData/ClinicalAnswerService.cs | 2 +- .../ReadingMedicineQuestionService.cs | 2 +- .../_IRaCIS/IQueryablePageListExtensions.cs | 68 +++++++++---------- 4 files changed, 37 insertions(+), 37 deletions(-) diff --git a/IRaCIS.Core.Application/Service/QC/QCQuestionService.cs b/IRaCIS.Core.Application/Service/QC/QCQuestionService.cs index a72e93ea7..4c8ebacc0 100644 --- a/IRaCIS.Core.Application/Service/QC/QCQuestionService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCQuestionService.cs @@ -107,7 +107,7 @@ namespace IRaCIS.Core.Application.Contracts var defalutSortArray = new string[] { nameof(QCQuestionConfigureView.LanguageType) + " desc", nameof(QCQuestionConfigureView.ShowOrder) }; - return await QCQuestionQueryable.ToPagedListAsync(queryQCQuestionConfigure, queryQCQuestionConfigure.SortField.IsNullOrEmpty(), defalutSortArray); + return await QCQuestionQueryable.ToPagedListAsync(queryQCQuestionConfigure, defalutSortArray); } public async Task AddOrUpdateQCQuestionConfigure(QCQuestionAddOrEdit addOrEditQCQuestionConfigure) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 246cfc8b7..e5aa5e786 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -639,7 +639,7 @@ namespace IRaCIS.Core.Application.Service var defalutSortArray = new string[] { nameof(GetCRCConfirmListOutDto.SubjectCode) + " desc", nameof(GetCRCConfirmListOutDto.LatestScanDate) }; - var result = await query.ToPagedListAsync(inDto,inDto.SortField.IsNullOrEmpty(), defalutSortArray); + var result = await query.ToPagedListAsync(inDto, defalutSortArray); var formList = await _clinicalFormRepository.Where(x => x.TrialId == inDto.TrialId) .Where(x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC) diff --git a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs index a64666ede..187d7c502 100644 --- a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs @@ -67,7 +67,7 @@ namespace IRaCIS.Core.Application.Service var defalutSortArray = new string[] { nameof(ReadingMedicineSystemQuestionView.LanguageType) + " desc", nameof(ReadingMedicineSystemQuestionView.ShowOrder) }; - return await query.ToPagedListAsync(inDto, inDto.SortField.IsNullOrEmpty(), defalutSortArray); + return await query.ToPagedListAsync(inDto, defalutSortArray); } /// diff --git a/IRaCIS.Core.Infrastructure/_IRaCIS/IQueryablePageListExtensions.cs b/IRaCIS.Core.Infrastructure/_IRaCIS/IQueryablePageListExtensions.cs index 9bc8ea98c..8ea41c369 100644 --- a/IRaCIS.Core.Infrastructure/_IRaCIS/IQueryablePageListExtensions.cs +++ b/IRaCIS.Core.Infrastructure/_IRaCIS/IQueryablePageListExtensions.cs @@ -14,15 +14,15 @@ namespace IRaCIS.Core.Infrastructure.Extention { //单字段排序 异步 (或者默认排序字段是空,多字段排序,传递了,就以传递的单字段为准) - public static async Task> ToPagedListAsync(this IQueryable source, PageInput pageInput, bool isMultiSortFiled = false, string[] sortArray = default, CancellationToken cancellationToken = default) + public static async Task> ToPagedListAsync(this IQueryable source, PageInput pageInput, string[] sortArray = default, CancellationToken cancellationToken = default) { + var isMultiSortFiled = true; - if (isMultiSortFiled && sortArray == default) + if (string.IsNullOrWhiteSpace(pageInput.SortField) && sortArray != default) { - throw new InvalidOperationException("The sort field must be specified"); + isMultiSortFiled = true; } - if (pageInput.PageIndex <= 0) { pageInput.PageIndex = 1; @@ -39,41 +39,41 @@ namespace IRaCIS.Core.Infrastructure.Extention return new PageOutput() { CurrentPageData = new T[0] }; } - var propName=string.Empty; - - if (string.IsNullOrWhiteSpace(pageInput.SortField)) - { - //没有指定,优先以Id排序,否则从属性里面随便取出来一个排序 - var propertyNameList = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(t => t.CanWrite).Select(t => t.Name).OrderBy(t => t).ToList(); - - if (propertyNameList.Count == 0) - { - throw new InvalidOperationException("no default sort field."); - } - else - { - propName= propertyNameList.Contains("Id") ? "Id" : propertyNameList.FirstOrDefault(); - } - - } - else - { - //有值,以前段传输的为主 - propName = pageInput.SortField; - } - - - if (!isMultiSortFiled) - { - source = pageInput.Asc ? source.OrderBy(propName) : source.OrderBy(propName + " desc"); - - } - else + if (isMultiSortFiled) { var sortString = string.Join(',', sortArray); source = source.OrderBy(sortString); } + else + { + + var propName = string.Empty; + + if (string.IsNullOrWhiteSpace(pageInput.SortField)) + { + //没有指定,优先以Id排序,否则从属性里面随便取出来一个排序 + var propertyNameList = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(t => t.CanWrite).Select(t => t.Name).OrderBy(t => t).ToList(); + + if (propertyNameList.Count == 0) + { + throw new InvalidOperationException("no default sort field."); + } + else + { + propName = propertyNameList.Contains("Id") ? "Id" : propertyNameList.FirstOrDefault(); + } + + } + else + { + //有值,以前段传输的为主 + propName = pageInput.SortField; + } + + source = pageInput.Asc ? source.OrderBy(propName) : source.OrderBy(propName + " desc"); + + } source = source.Skip((pageInput.PageIndex - 1) * pageInput.PageSize); var items = await source