diff --git a/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs b/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs index 94958abe3..0b6d997fa 100644 --- a/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs +++ b/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs @@ -47,6 +47,7 @@ namespace IRaCIS.Core.Infra.EFCore { var entity = _mapper.Map(from); + if (entity.Id == Guid.Empty) { return await InsertFromDTOAsync(from, autoSave, verify); @@ -217,7 +218,7 @@ namespace IRaCIS.Core.Infra.EFCore { #region 项目名称 - var trialdata = await _dbContext.Trial.FirstOrDefaultAsync(x => x.Id == Data.TrialId); + var trialdata = await _dbContext.Trial.Select(x=>new { x.Id, x.ResearchProgramNo, x.ExperimentName, }).FirstOrDefaultAsync(x => x.Id == Data.TrialId); Data.ResearchProgramNo = trialdata?.ResearchProgramNo; if (IsNullOrEmpty(Data.TrialName)) { @@ -230,10 +231,11 @@ namespace IRaCIS.Core.Infra.EFCore Data.SiteCode = (await _dbContext.TrialSite.IgnoreQueryFilters().FirstOrDefaultAsync(x => x.TrialId == Data.TrialId && x.SiteId == Data.SiteId))?.TrialSiteCode; - var sitedata = await _dbContext.Site.FirstOrDefaultAsync(x => x.Id == Data.SiteId); + - if (IsNullOrEmpty(Data.SiteName)) + if (IsNullOrEmpty(Data.SiteName)&& Data.SiteId!=null) { + var sitedata = await _dbContext.Site.Where(x => x.Id == Data.SiteId).Select(x=>new { x.SiteName}).FirstOrDefaultAsync(); Data.SiteName = sitedata?.SiteName; } #endregion @@ -241,47 +243,58 @@ namespace IRaCIS.Core.Infra.EFCore #region 受试者 - if (IsNullOrEmpty(Data.SubjectCode)) + if (IsNullOrEmpty(Data.SubjectCode) && Data.SubjectId != null) { - Data.SubjectCode = (await _dbContext.Subject.FirstOrDefaultAsync(x => x.Id == Data.SubjectId))?.Code; + Data.SubjectCode = (await _dbContext.Subject.Where(x => x.Id == Data.SubjectId).Select(x=>new {x.Code }).FirstOrDefaultAsync())?.Code; } #endregion #region 访视 if (IsNullOrEmpty(Data.SubjectVisitName)) { - Data.SubjectVisitName = (await _dbContext.SubjectVisit.FirstOrDefaultAsync(x => x.Id == Data.SubjectVisitId))?.VisitName; + Data.SubjectVisitName = (await _dbContext.SubjectVisit.Where(x => x.Id == Data.SubjectVisitId).Select(x=>new { x.VisitName}).FirstOrDefaultAsync())?.VisitName; } #endregion #region 创建者 - if (IsNullOrEmpty(Data.CreateUserName) || IsNullOrEmpty(Data.RoleName)) + + if (IsNullOrEmpty(Data.CreateUserName)) { - var userdata = await _dbContext.Users.AsQueryable().Where(x => x.Id == Data.CreateUserId).GroupJoin(_dbContext.UserType.AsQueryable(), a => a.UserTypeId, b => b.Id, (a, b) => new - { - UserName = a.FirstName + a.LastName, - Role = b - }).SelectMany(a => a.Role, (m, n) => new - { - UserName = m.UserName, - RoleName = n.UserTypeShortName - }).FirstOrDefaultAsync(); - - if (userdata != null) - { - if (IsNullOrEmpty(Data.CreateUserName)) - { - Data.CreateUserName = userdata?.UserName; - } - - - if (IsNullOrEmpty(Data.RoleName)) - { - Data.RoleName = userdata?.RoleName; - } - } + Data.CreateUserName = _userInfo.RealName; } + + if (IsNullOrEmpty(Data.RoleName)) + { + Data.RoleName = _userInfo.UserTypeShortName; + } + + //if (IsNullOrEmpty(Data.CreateUserName) || IsNullOrEmpty(Data.RoleName)) + //{ + // var userdata = await _dbContext.Users.AsQueryable().Where(x => x.Id == Data.CreateUserId).GroupJoin(_dbContext.UserType.AsQueryable(), a => a.UserTypeId, b => b.Id, (a, b) => new + // { + // UserName = a.FirstName + a.LastName, + // Role = b + // }).SelectMany(a => a.Role, (m, n) => new + // { + // UserName = m.UserName, + // RoleName = n.UserTypeShortName + // }).FirstOrDefaultAsync(); + + // if (userdata != null) + // { + // if (IsNullOrEmpty(Data.CreateUserName)) + // { + // Data.CreateUserName = userdata?.UserName; + // } + + + // if (IsNullOrEmpty(Data.RoleName)) + // { + // Data.RoleName = userdata?.RoleName; + // } + // } + //} #endregion #region 取操作类型