添加历史记录

Test_IRC_Net8
he 2025-06-09 10:19:00 +08:00
parent 82a7c4de29
commit 6dcaa953d4
14 changed files with 20207 additions and 22 deletions

View File

@ -1715,6 +1715,37 @@
<param name="trialFinalRecordId"></param>
<returns></returns>
</member>
<member name="T:IRaCIS.Core.Application.Service.TrialHistoryRecordFileService">
<summary>
项目历史记录文件服务
</summary>
</member>
<member name="M:IRaCIS.Core.Application.Service.TrialHistoryRecordFileService.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialHistoryRecordFile},AutoMapper.IMapper,IRaCIS.Core.Domain.Share.IUserInfo,Microsoft.Extensions.Localization.IStringLocalizer)">
<summary>
项目历史记录文件服务
</summary>
</member>
<member name="M:IRaCIS.Core.Application.Service.TrialHistoryRecordFileService.GetTrialHistoryRecordFileList(IRaCIS.Core.Application.Service.DTO.TrialHistoryRecordFileQuery)">
<summary>
获取稽查记录文件列表
</summary>
<param name="inQuery"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.TrialHistoryRecordFileService.AddOrUpdateTrialHistoryRecordFile(IRaCIS.Core.Application.Service.DTO.TrialHistoryRecordFileAddOrEdit)">
<summary>
新增或修改稽查记录文件
</summary>
<param name="addOrEditTrialHistoryRecordFile"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.TrialHistoryRecordFileService.DeleteTrialHistoryRecordFile(System.Guid)">
<summary>
删除稽查记录文件
</summary>
<param name="trialHistoryRecordFileId"></param>
<returns></returns>
</member>
<member name="T:IRaCIS.Core.Application.Service.TrialNormalRecordService">
<summary>
项目-一般文件记录

View File

@ -14,6 +14,8 @@ namespace IRaCIS.Core.Application.ViewModel;
public class TrialFinalRecordView : TrialFinalRecordAddOrEdit
{
public int HistoryCount { get; set; }
public DateTime CreateTime { get; set; }

View File

@ -0,0 +1,56 @@
//--------------------------------------------------------------------
// 此代码由liquid模板自动生成 byzhouhang 20240909
// 生成时间 2025-06-09 02:09:12Z
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using System;
using IRaCIS.Core.Domain.Share;
using System.Collections.Generic;
namespace IRaCIS.Core.Application.Service.DTO;
public class TrialHistoryRecordFileView : TrialHistoryRecordFileAddOrEdit
{
public DateTime CreateTime { get; set; }
public DateTime UpdateTime { get; set; }
}
public class TrialHistoryRecordFileAddOrEdit
{
public Guid? Id { get; set; }
public string FileFormat { get; set; }
public string FileName { get; set; }
public string FilePath { get; set; }
public string FileSize { get; set; }
public Guid TrialFileTypeId { get; set; }
public Guid TrialRecordId { get; set; }
}
public class TrialHistoryRecordFileQuery:PageInput
{
public string? FileFormat { get; set; }
public string? FileName { get; set; }
public string? FilePath { get; set; }
public string? FileSize { get; set; }
public Guid? TrialFileTypeId { get; set; }
public Guid? TrialRecordId { get; set; }
}

View File

@ -11,7 +11,7 @@ namespace IRaCIS.Core.Application.ViewModel;
public class TrialNormalRecordView : TrialNormalRecordAddOrEdit
{
public int HistoryCount { get; set; }
public DateTime CreateTime { get; set; }
public DateTime UpdateTime { get; set; }

View File

@ -11,7 +11,7 @@ namespace IRaCIS.Core.Application.ViewModel;
public class TrialTrianingRecordView : TrialTrianingRecordAddOrEdit
{
public int HistoryCount { get; set; }
public DateTime CreateTime { get; set; }
public DateTime UpdateTime { get; set; }

View File

@ -0,0 +1,23 @@
//--------------------------------------------------------------------
// 此代码由liquid模板自动生成 byzhouhang 20240909
// 生成时间 2025-06-09 02:09:12Z
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using System;
using IRaCIS.Core.Infrastructure.Extention;
using System.Threading.Tasks;
using IRaCIS.Core.Application.Service.DTO;
namespace IRaCIS.Core.Application.Interfaces;
public interface ITrialHistoryRecordFileService
{
Task<PageOutput<TrialHistoryRecordFileView>> GetTrialHistoryRecordFileList(TrialHistoryRecordFileQuery inQuery);
Task<IResponseOutput> AddOrUpdateTrialHistoryRecordFile(TrialHistoryRecordFileAddOrEdit addOrEditTrialHistoryRecordFile);
Task<IResponseOutput> DeleteTrialHistoryRecordFile(Guid trialHistoryRecordFileId);
}

View File

@ -0,0 +1,78 @@
//--------------------------------------------------------------------
// 此代码由liquid模板自动生成 byzhouhang 20240909
// 生成时间 2025-06-09 02:09:09Z
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Domain.Models;
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Interfaces;
using IRaCIS.Core.Infrastructure.Extention;
using System.Threading.Tasks;
using IRaCIS.Core.Infra.EFCore;
using IRaCIS.Core.Application.Service.DTO;
namespace IRaCIS.Core.Application.Service;
/// <summary>
/// 项目历史记录文件服务
/// </summary>
[ApiExplorerSettings(GroupName = "FileRecord")]
public class TrialHistoryRecordFileService(IRepository<TrialHistoryRecordFile> _trialHistoryRecordFileRepository,
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer): BaseService, ITrialHistoryRecordFileService
{
/// <summary>
/// 获取稽查记录文件列表
/// </summary>
/// <param name="inQuery"></param>
/// <returns></returns>
[HttpPost]
public async Task<PageOutput<TrialHistoryRecordFileView>> GetTrialHistoryRecordFileList(TrialHistoryRecordFileQuery inQuery)
{
var trialHistoryRecordFileQueryable =_trialHistoryRecordFileRepository
.WhereIf(inQuery.TrialRecordId!=null,x=>x.TrialRecordId==inQuery.TrialRecordId)
.WhereIf(inQuery.TrialFileTypeId != null, x => x.TrialFileTypeId == inQuery.TrialFileTypeId)
.WhereIf(inQuery.FileName.IsNotNullOrEmpty(), x => x.FileName.Contains(x.FileName))
.ProjectTo<TrialHistoryRecordFileView>(_mapper.ConfigurationProvider);
var pageList= await trialHistoryRecordFileQueryable.ToPagedListAsync(inQuery);
return pageList;
}
/// <summary>
/// 新增或修改稽查记录文件
/// </summary>
/// <param name="addOrEditTrialHistoryRecordFile"></param>
/// <returns></returns>
[HttpPost]
public async Task<IResponseOutput> AddOrUpdateTrialHistoryRecordFile(TrialHistoryRecordFileAddOrEdit addOrEditTrialHistoryRecordFile)
{
// 在此处拷贝automapper 映射
var entity = await _trialHistoryRecordFileRepository.InsertOrUpdateAsync(addOrEditTrialHistoryRecordFile, true);
return ResponseOutput.Ok(entity.Id.ToString());
}
/// <summary>
/// 删除稽查记录文件
/// </summary>
/// <param name="trialHistoryRecordFileId"></param>
/// <returns></returns>
[HttpDelete("{trialHistoryRecordFileId:guid}")]
public async Task<IResponseOutput> DeleteTrialHistoryRecordFile(Guid trialHistoryRecordFileId)
{
var success = await _trialHistoryRecordFileRepository.DeleteFromQueryAsync(t => t.Id == trialHistoryRecordFileId,true);
return ResponseOutput.Ok();
}
}

View File

@ -2,6 +2,7 @@
using AutoMapper.EquivalencyExpression;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Service.DTO;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Infrastructure.Extention;
@ -124,7 +125,8 @@ namespace IRaCIS.Core.Application.Service
CreateMap<TrialFileType, TrialFileTypeAddOrEdit>().ReverseMap();
CreateMap<TrialFinalRecord, TrialFinalRecordView>();
CreateMap<TrialFinalRecord, TrialFinalRecordView>()
.ForMember(d => d.HistoryCount, c => c.MapFrom(t => t.TrialHistoryRecordFileList.Count));
CreateMap<TrialFinalRecordAddOrEdit, TrialFinalRecord>();
//.ForMember(d => d.HistoryFileRecord.TrialFileTypeId, c => c.MapFrom(t => t.TrialFileTypeId))
//.ForMember(d => d.SignFileRecord.TrialFileTypeId, c => c.MapFrom(t => t.TrialFileTypeId))
@ -132,15 +134,18 @@ namespace IRaCIS.Core.Application.Service
//.ForMember(d => d.PDFFileRecord.TrialFileTypeId, c => c.MapFrom(t => t.TrialFileTypeId));
CreateMap<TrialNormalRecord, TrialNormalRecordView>()
.ForMember(d => d.HistoryCount, c => c.MapFrom(t => t.TrialHistoryRecordFileList.Count))
.ForMember(d => d.FileName, c => c.MapFrom(t => t.TrialFileRecord.FileName));
CreateMap<TrialNormalRecord, TrialNormalRecordAddOrEdit>().ReverseMap();
CreateMap<TrialTrianingRecord, TrialTrianingRecordView>()
.ForMember(d => d.HistoryCount, c => c.MapFrom(t => t.TrialHistoryRecordFileList.Count))
.ForMember(d => d.FileName, c => c.MapFrom(t => t.TrialFileRecord.FileName));
CreateMap<TrialTrianingRecord, TrialTrianingRecordAddOrEdit>().ReverseMap();
CreateMap<TrialHistoryRecordFile, TrialHistoryRecordFileView>();
CreateMap<TrialHistoryRecordFile, TrialHistoryRecordFileAddOrEdit>().ReverseMap();
}
}

View File

@ -101,7 +101,9 @@ public enum SubIdentification
}
/// <summary>
/// 文件类型表 就是5类里面的各个小项 如( 报告里面的 项目总结报告,一致性分析报告...... 文档里面的 项目合同.......)
/// </summary>
[Comment("后台 - 系统文件类型表")]
[Table("SysFileType")]
public class SysFileType : BaseFullAuditEntity
@ -135,6 +137,10 @@ public class SysFileType : BaseFullAuditEntity
}
/// <summary>
/// 文件类型表 就是5类里面的各个小项 如( 报告里面的 项目总结报告,一致性分析报告...... 文档里面的 项目合同.......)
/// </summary>
[Comment("项目文件 - 文件类型表")]
[Table("TrialFileType")]
public class TrialFileType : BaseFullAuditEntity

View File

@ -41,6 +41,14 @@ public class TrialFinalRecord : BaseFullAuditEntity
[JsonIgnore]
[ForeignKey("HistoryFileRecordId")]
public TrialFile HistoryFileRecord { get; set; }
/// <summary>
/// 历史记录
/// </summary>
[JsonIgnore]
public List<TrialHistoryRecordFile> TrialHistoryRecordFileList { get; set; }
#endregion
@ -89,6 +97,11 @@ public class TrialNormalRecord : BaseFullAuditEntity
{
public Guid TrialId { get; set; }
/// <summary>
/// 历史记录
/// </summary>
[JsonIgnore]
public List<TrialHistoryRecordFile> TrialHistoryRecordFileList { get; set; }
/// <summary>
/// 一般文件记录
@ -140,6 +153,13 @@ public class TrialTrianingRecord : BaseFullAuditEntity
[ForeignKey("TrialFileRecordId")]
public TrialFile TrialFileRecord { get; set; }
/// <summary>
/// 历史记录
/// </summary>
[JsonIgnore]
public List<TrialHistoryRecordFile> TrialHistoryRecordFileList { get; set; }
/// <summary>
/// 历史文件记录
/// </summary>
@ -183,7 +203,6 @@ public class TrialTrianingRecord : BaseFullAuditEntity
[Table("TrialFile")]
public class TrialFile : BaseFullAuditEntity
{
/// <summary>
/// TrialFinalRecord
/// </summary>
@ -202,7 +221,48 @@ public class TrialFile : BaseFullAuditEntity
public string FileSize { get; set; }
public string FileFormat { get; set; }
}
/// <summary>
/// 项目历史记录文件表
/// </summary>
public class TrialHistoryRecordFile : BaseFullAuditEntity
{
#region MyRegion
/// <summary>
/// TrialFinalRecord
/// </summary>
[JsonIgnore]
[ForeignKey("TrialFileTypeId")]
public TrialFileType TrialFileType { get; set; }
[JsonIgnore]
[ForeignKey("TrialRecordId")]
public TrialFinalRecord? TrialFinalRecord { get; set; }
[JsonIgnore]
[ForeignKey("TrialRecordId")]
public TrialNormalRecord? TrialNormalRecord { get; set; }
[JsonIgnore]
[ForeignKey("TrialRecordId")]
public TrialTrianingRecord? TrialTrianingRecord { get; set; }
#endregion
/// <summary>
/// 项目记录Id TrialFinalRecord,TrialNormalRecord,TrialTrianingRecord
/// </summary>
public Guid TrialRecordId { get; set; }
[Comment("关联项目文件类型")]
public Guid TrialFileTypeId { get; set; }
public string FileName { get; set; }
[StringLength(1000)]
public string FilePath { get; set; }
public string FileSize { get; set; }
public string FileFormat { get; set; }
}

View File

@ -659,6 +659,8 @@ public class IRaCISDBContext : DbContext
public virtual DbSet<TrialNormalRecord> TrialNormalRecord { get; set; }
public virtual DbSet<TrialTrianingRecord> TrialTrianingRecord { get; set; }
public virtual DbSet<TrialFile> TrialFile { get; set; }
public virtual DbSet<TrialHistoryRecordFile> TrialHistoryRecordFile { get; set; }
#endregion

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,88 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class TrialHistoryRecordFile : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_SystemDocumentAttachment_TrialDocument_TrialDocumentId",
table: "SystemDocumentAttachment");
migrationBuilder.DropIndex(
name: "IX_SystemDocumentAttachment_TrialDocumentId",
table: "SystemDocumentAttachment");
migrationBuilder.DropColumn(
name: "TrialDocumentId",
table: "SystemDocumentAttachment");
migrationBuilder.CreateTable(
name: "TrialHistoryRecordFile",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TrialRecordId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TrialFileTypeId = table.Column<Guid>(type: "uniqueidentifier", nullable: false, comment: "关联项目文件类型"),
FileName = table.Column<string>(type: "nvarchar(400)", maxLength: 400, nullable: false),
FilePath = table.Column<string>(type: "nvarchar(1000)", maxLength: 1000, nullable: false),
FileSize = table.Column<string>(type: "nvarchar(400)", maxLength: 400, nullable: false),
FileFormat = table.Column<string>(type: "nvarchar(400)", maxLength: 400, nullable: false),
CreateUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
CreateTime = table.Column<DateTime>(type: "datetime2", nullable: false),
UpdateUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
UpdateTime = table.Column<DateTime>(type: "datetime2", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_TrialHistoryRecordFile", x => x.Id);
});
migrationBuilder.CreateIndex(
name: "IX_TrialHistoryRecordFile_CreateUserId",
table: "TrialHistoryRecordFile",
column: "CreateUserId");
migrationBuilder.CreateIndex(
name: "IX_TrialHistoryRecordFile_TrialFileTypeId",
table: "TrialHistoryRecordFile",
column: "TrialFileTypeId");
migrationBuilder.CreateIndex(
name: "IX_TrialHistoryRecordFile_TrialRecordId",
table: "TrialHistoryRecordFile",
column: "TrialRecordId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "TrialHistoryRecordFile");
migrationBuilder.AddColumn<Guid>(
name: "TrialDocumentId",
table: "SystemDocumentAttachment",
type: "uniqueidentifier",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_SystemDocumentAttachment_TrialDocumentId",
table: "SystemDocumentAttachment",
column: "TrialDocumentId");
migrationBuilder.AddForeignKey(
name: "FK_SystemDocumentAttachment_TrialDocument_TrialDocumentId",
table: "SystemDocumentAttachment",
column: "TrialDocumentId",
principalTable: "TrialDocument",
principalColumn: "Id");
}
}
}

View File

@ -9790,9 +9790,6 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.Property<Guid>("SystemDocumentId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TrialDocumentId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("UpdateTime")
.HasColumnType("datetime2");
@ -9805,8 +9802,6 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.HasIndex("SystemDocumentId");
b.HasIndex("TrialDocumentId");
b.ToTable("SystemDocumentAttachment", t =>
{
t.HasComment("后台 - 系统签署文档附件");
@ -12447,6 +12442,61 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
});
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("CreateTime")
.HasColumnType("datetime2");
b.Property<Guid>("CreateUserId")
.HasColumnType("uniqueidentifier");
b.Property<string>("FileFormat")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
b.Property<string>("FileName")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
b.Property<string>("FilePath")
.IsRequired()
.HasMaxLength(1000)
.HasColumnType("nvarchar(1000)");
b.Property<string>("FileSize")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
b.Property<Guid>("TrialFileTypeId")
.HasColumnType("uniqueidentifier")
.HasComment("关联项目文件类型");
b.Property<Guid>("TrialRecordId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("UpdateTime")
.HasColumnType("datetime2");
b.Property<Guid>("UpdateUserId")
.HasColumnType("uniqueidentifier");
b.HasKey("Id");
b.HasIndex("CreateUserId");
b.HasIndex("TrialFileTypeId");
b.HasIndex("TrialRecordId");
b.ToTable("TrialHistoryRecordFile");
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b =>
{
b.Property<Guid>("Id")
@ -17513,10 +17563,6 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", null)
.WithMany("SystemDocumentAttachmentList")
.HasForeignKey("TrialDocumentId");
b.Navigation("CreateUserRole");
b.Navigation("SystemDocument");
@ -18164,7 +18210,7 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
.IsRequired();
b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument")
.WithMany()
.WithMany("TrialDocumentAttachmentList")
.HasForeignKey("TrialDocumentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
@ -18365,6 +18411,49 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.Navigation("WordFileRecord");
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b =>
{
b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
.WithMany()
.HasForeignKey("CreateUserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType")
.WithMany()
.HasForeignKey("TrialFileTypeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("IRaCIS.Core.Domain.Models.TrialFinalRecord", "TrialFinalRecord")
.WithMany("TrialHistoryRecordFileList")
.HasForeignKey("TrialRecordId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("IRaCIS.Core.Domain.Models.TrialNormalRecord", "TrialNormalRecord")
.WithMany("TrialHistoryRecordFileList")
.HasForeignKey("TrialRecordId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("IRaCIS.Core.Domain.Models.TrialTrianingRecord", "TrialTrianingRecord")
.WithMany("TrialHistoryRecordFileList")
.HasForeignKey("TrialRecordId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("CreateUserRole");
b.Navigation("TrialFileType");
b.Navigation("TrialFinalRecord");
b.Navigation("TrialNormalRecord");
b.Navigation("TrialTrianingRecord");
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b =>
{
b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
@ -19527,9 +19616,9 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
{
b.Navigation("NeedConfirmedUserTypeList");
b.Navigation("SystemDocumentAttachmentList");
b.Navigation("TrialDocConfirmedUserList");
b.Navigation("TrialDocumentAttachmentList");
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b =>
@ -19544,11 +19633,21 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.Navigation("ExperienceCriteriaList");
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b =>
{
b.Navigation("TrialHistoryRecordFileList");
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b =>
{
b.Navigation("TrialUserRoleList");
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b =>
{
b.Navigation("TrialHistoryRecordFileList");
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b =>
{
b.Navigation("TrialQCQuestionAnswerList");
@ -19574,6 +19673,11 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.Navigation("TrialSiteUserSurveyList");
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b =>
{
b.Navigation("TrialHistoryRecordFileList");
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b =>
{
b.Navigation("UserRoleTrials");