回退包,查询临时方案
parent
75ed6375c2
commit
7c6dcbbe38
|
@ -15,14 +15,14 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
||||||
<NoWarn>1701;1702;1591;1587</NoWarn>
|
<NoWarn>1701;1702;1591;1587</NoWarn>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
||||||
<Using Include="IRaCIS.Core.Application;" />
|
<Using Include="IRaCIS.Core.Application;" />
|
||||||
<Using Include="AutoMapper.QueryableExtensions;" />
|
<Using Include="AutoMapper.QueryableExtensions;" />
|
||||||
<Using Include="Microsoft.EntityFrameworkCore;" />
|
<Using Include="Microsoft.EntityFrameworkCore;" />
|
||||||
<Using Include="IRaCIS.Core.Domain.Models;" />
|
<Using Include="IRaCIS.Core.Domain.Models;" />
|
||||||
|
@ -50,16 +50,16 @@
|
||||||
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="Resources\zh-CN.json">
|
<Content Include="Resources\zh-CN.json">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
||||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="Resources\en-US.json">
|
<Content Include="Resources\en-US.json">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
||||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -76,16 +76,14 @@
|
||||||
<PackageReference Include="ExcelDataReader.DataSet" Version="3.6.0" />
|
<PackageReference Include="ExcelDataReader.DataSet" Version="3.6.0" />
|
||||||
<PackageReference Include="fo-dicom.Imaging.ImageSharp" Version="5.1.0" />
|
<PackageReference Include="fo-dicom.Imaging.ImageSharp" Version="5.1.0" />
|
||||||
<PackageReference Include="fo-dicom.Codecs" Version="5.1.0" />
|
<PackageReference Include="fo-dicom.Codecs" Version="5.1.0" />
|
||||||
|
<PackageReference Include="FreeSpire.Doc" Version="11.6.0" />
|
||||||
<PackageReference Include="FreeSpire.Doc" Version="11.6.0" />
|
|
||||||
|
|
||||||
<PackageReference Include="Hangfire.Core" Version="1.8.5" />
|
<PackageReference Include="Hangfire.Core" Version="1.8.5" />
|
||||||
<PackageReference Include="Magicodes.IE.Core" Version="2.7.4.5" />
|
<PackageReference Include="Magicodes.IE.Core" Version="2.7.4.5" />
|
||||||
<PackageReference Include="Magicodes.IE.Csv" Version="2.7.4.5">
|
<PackageReference Include="Magicodes.IE.Csv" Version="2.7.4.5">
|
||||||
<TreatAsUsed>true</TreatAsUsed>
|
<TreatAsUsed>true</TreatAsUsed>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Magicodes.IE.Excel" Version="2.7.4.5">
|
<PackageReference Include="Magicodes.IE.Excel" Version="2.7.4.5">
|
||||||
<TreatAsUsed>true</TreatAsUsed>
|
<TreatAsUsed>true</TreatAsUsed>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Magicodes.IE.Excel.AspNetCore" Version="2.7.4.5" />
|
<PackageReference Include="Magicodes.IE.Excel.AspNetCore" Version="2.7.4.5" />
|
||||||
<PackageReference Include="MailKit" Version="4.2.0" />
|
<PackageReference Include="MailKit" Version="4.2.0" />
|
||||||
|
@ -94,7 +92,7 @@
|
||||||
<PackageReference Include="MiniExcel" Version="1.31.2" />
|
<PackageReference Include="MiniExcel" Version="1.31.2" />
|
||||||
<PackageReference Include="MiniWord" Version="0.7.0" />
|
<PackageReference Include="MiniWord" Version="0.7.0" />
|
||||||
<PackageReference Include="My.Extensions.Localization.Json" Version="3.0.0">
|
<PackageReference Include="My.Extensions.Localization.Json" Version="3.0.0">
|
||||||
<TreatAsUsed>true</TreatAsUsed>
|
<TreatAsUsed>true</TreatAsUsed>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Nito.AsyncEx" Version="5.1.2" />
|
<PackageReference Include="Nito.AsyncEx" Version="5.1.2" />
|
||||||
<PackageReference Include="NPOI" Version="2.6.2" />
|
<PackageReference Include="NPOI" Version="2.6.2" />
|
||||||
|
|
|
@ -203,13 +203,35 @@ namespace IRaCIS.Core.Application.Services
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var unionQuery = systemDocumentQueryable.Union(trialDocQueryable)
|
#region 报错 奇怪的bug
|
||||||
.WhereIf(!string.IsNullOrEmpty(querySystemDocument.Name), t => t.Name.Contains(querySystemDocument.Name))
|
//var unionQuery = systemDocumentQueryable.Union(trialDocQueryable)
|
||||||
.WhereIf(querySystemDocument.FileTypeId != null, t => t.FileTypeId == querySystemDocument.FileTypeId)
|
// .WhereIf(!string.IsNullOrEmpty(querySystemDocument.Name), t => t.Name.Contains(querySystemDocument.Name))
|
||||||
.WhereIf(querySystemDocument.IsSign == true, t => t.ConfirmTime != null)
|
// .WhereIf(querySystemDocument.FileTypeId != null, t => t.FileTypeId == querySystemDocument.FileTypeId)
|
||||||
.WhereIf(querySystemDocument.IsSign == false, t => t.ConfirmTime == null);
|
// .WhereIf(querySystemDocument.IsSign == true, t => t.ConfirmTime != null)
|
||||||
|
// .WhereIf(querySystemDocument.IsSign == false, t => t.ConfirmTime == null);
|
||||||
|
|
||||||
var result = await unionQuery.ToPagedListAsync(querySystemDocument.PageIndex, querySystemDocument.PageSize, querySystemDocument.SortField, querySystemDocument.Asc);
|
//var result = await unionQuery.ToPagedListAsync(querySystemDocument.PageIndex, querySystemDocument.PageSize, querySystemDocument.SortField, querySystemDocument.Asc);
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 临时方案
|
||||||
|
|
||||||
|
var list1 = systemDocumentQueryable
|
||||||
|
.WhereIf(!string.IsNullOrEmpty(querySystemDocument.Name), t => t.Name.Contains(querySystemDocument.Name))
|
||||||
|
.WhereIf(querySystemDocument.FileTypeId != null, t => t.FileTypeId == querySystemDocument.FileTypeId)
|
||||||
|
.WhereIf(querySystemDocument.IsSign == true, t => t.ConfirmTime != null)
|
||||||
|
.WhereIf(querySystemDocument.IsSign == false, t => t.ConfirmTime == null).ToList();
|
||||||
|
|
||||||
|
var list2 = trialDocQueryable
|
||||||
|
.WhereIf(!string.IsNullOrEmpty(querySystemDocument.Name), t => t.Name.Contains(querySystemDocument.Name))
|
||||||
|
.WhereIf(querySystemDocument.FileTypeId != null, t => t.FileTypeId == querySystemDocument.FileTypeId)
|
||||||
|
.WhereIf(querySystemDocument.IsSign == true, t => t.ConfirmTime != null)
|
||||||
|
.WhereIf(querySystemDocument.IsSign == false, t => t.ConfirmTime == null).ToList();
|
||||||
|
|
||||||
|
var list3 = list1.Union(list2).ToList();
|
||||||
|
|
||||||
|
var result = list3.ToPagedList(querySystemDocument.PageIndex, querySystemDocument.PageSize, querySystemDocument.SortField, querySystemDocument.Asc);
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
var needSignTrialDocCount = await _trialDocumentRepository.AsQueryable(true).Where(t => t.TrialId== querySystemDocument.TrialId && t.Trial.TrialStatusStr != StaticData.TrialState.TrialStopped)
|
var needSignTrialDocCount = await _trialDocumentRepository.AsQueryable(true).Where(t => t.TrialId== querySystemDocument.TrialId && t.Trial.TrialStatusStr != StaticData.TrialState.TrialStopped)
|
||||||
.Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
|
.Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
|
||||||
|
|
|
@ -17,15 +17,15 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="EFCore.BulkExtensions" Version="7.1.6" />
|
<PackageReference Include="EFCore.BulkExtensions" Version="6.5.6" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.12" />
|
<PackageReference Include="EntityFrameworkCore.Triggered" Version="3.2.1" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.12" />
|
<PackageReference Include="EntityFrameworkCore.Projectables" Version="2.3.0" />
|
||||||
<PackageReference Include="EntityFrameworkCore.Exceptions.SqlServer" Version="6.0.3.2" />
|
<PackageReference Include="EntityFrameworkCore.Exceptions.SqlServer" Version="6.0.3.2" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.2.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.2.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Localization.Abstractions" Version="7.0.12" />
|
<PackageReference Include="Microsoft.Extensions.Localization.Abstractions" Version="7.0.12" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
|
||||||
<PackageReference Include="NewId" Version="4.0.1" />
|
<PackageReference Include="NewId" Version="4.0.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -157,7 +157,7 @@ namespace IRaCIS.Core.Infra.EFCore
|
||||||
{
|
{
|
||||||
if (deleteFilter == null) throw new ArgumentNullException(nameof(deleteFilter));
|
if (deleteFilter == null) throw new ArgumentNullException(nameof(deleteFilter));
|
||||||
|
|
||||||
return await _dbContext.Set<T>().IgnoreQueryFilters().Where(deleteFilter).ExecuteDeleteAsync() > 0;
|
return await _dbContext.Set<T>().IgnoreQueryFilters().Where(deleteFilter).BatchDeleteAsync() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="AutoMapper" Version="12.0.1" />
|
<PackageReference Include="AutoMapper" Version="12.0.1" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.12" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.10" />
|
||||||
<PackageReference Include="SharpCompress" Version="0.34.1" />
|
<PackageReference Include="SharpCompress" Version="0.34.1" />
|
||||||
<PackageReference Include="SharpZipLib" Version="1.4.2" />
|
<PackageReference Include="SharpZipLib" Version="1.4.2" />
|
||||||
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.3.5" />
|
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.3.5" />
|
||||||
|
|
|
@ -3,11 +3,50 @@ using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using System.Linq.Dynamic.Core;
|
using System.Linq.Dynamic.Core;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Infrastructure.Extention
|
namespace IRaCIS.Core.Infrastructure.Extention
|
||||||
{
|
{
|
||||||
public static class QueryablePageListExtensions
|
public static class QueryablePageListExtensions
|
||||||
{
|
{
|
||||||
|
//内存排序 后期删除
|
||||||
|
public static PageOutput<T> ToPagedList<T>(this IList<T> source, int pageIndex, int pageSize, string defaultSortFiled = "Id", bool isAsc = true)
|
||||||
|
{
|
||||||
|
if (pageIndex <= 0)
|
||||||
|
{
|
||||||
|
pageIndex = 1;
|
||||||
|
}
|
||||||
|
if (pageSize <= 0)
|
||||||
|
{
|
||||||
|
pageSize = 10;
|
||||||
|
}
|
||||||
|
var count = source.Count();
|
||||||
|
|
||||||
|
if (count == 0)
|
||||||
|
{
|
||||||
|
return new PageOutput<T>() { CurrentPageData = new List<T>() };
|
||||||
|
}
|
||||||
|
|
||||||
|
var propName = string.IsNullOrWhiteSpace(defaultSortFiled) ? "Id" : defaultSortFiled;
|
||||||
|
|
||||||
|
IQueryable<T> sourceQuery = isAsc ? source.AsQueryable().OrderBy(propName) : source.AsQueryable().OrderBy(propName + " desc");
|
||||||
|
|
||||||
|
sourceQuery = sourceQuery.Skip((pageIndex - 1) * pageSize);
|
||||||
|
|
||||||
|
var items = sourceQuery
|
||||||
|
.Take(pageSize)
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
|
var pagedList = new PageOutput<T>()
|
||||||
|
{
|
||||||
|
PageIndex = pageIndex,
|
||||||
|
PageSize = pageSize,
|
||||||
|
TotalCount = count,
|
||||||
|
CurrentPageData = items
|
||||||
|
};
|
||||||
|
|
||||||
|
return pagedList;
|
||||||
|
}
|
||||||
//单字段排序
|
//单字段排序
|
||||||
public static PageOutput<T> ToPagedList<T>(this IQueryable<T> source, int pageIndex, int pageSize, string defaultSortFiled = "Id", bool isAsc = true)
|
public static PageOutput<T> ToPagedList<T>(this IQueryable<T> source, int pageIndex, int pageSize, string defaultSortFiled = "Id", bool isAsc = true)
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.12" />
|
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
|
||||||
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
|
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
|
||||||
<PackageReference Include="coverlet.collector" Version="6.0.0">
|
<PackageReference Include="coverlet.collector" Version="6.0.0">
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
|
|
||||||
#region AuditContext
|
|
||||||
public class AuditContext : DbContext
|
|
||||||
{
|
|
||||||
private readonly string _connectionString;
|
|
||||||
|
|
||||||
public AuditContext(string connectionString)
|
|
||||||
{
|
|
||||||
_connectionString = connectionString;
|
|
||||||
}
|
|
||||||
|
|
||||||
//protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
|
||||||
// => optionsBuilder.Usesq(_connectionString);
|
|
||||||
|
|
||||||
public DbSet<SaveChangesAudit> SaveChangesAudits { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public class SaveChangesAudit
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public Guid AuditId { get; set; }
|
|
||||||
public DateTime StartTime { get; set; }
|
|
||||||
public DateTime EndTime { get; set; }
|
|
||||||
public bool Succeeded { get; set; }
|
|
||||||
public string ErrorMessage { get; set; }
|
|
||||||
|
|
||||||
public ICollection<EntityAudit> Entities { get; } = new List<EntityAudit>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public class EntityAudit
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public EntityState State { get; set; }
|
|
||||||
public string AuditMessage { get; set; }
|
|
||||||
|
|
||||||
public SaveChangesAudit SaveChangesAudit { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
Loading…
Reference in New Issue