增加Global Using
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-09-20 10:19:08 +08:00
parent 115017197b
commit fc30cb39ee
408 changed files with 11031 additions and 12556 deletions
@@ -3,10 +3,6 @@
// 生成时间 2022-01-05 09:17:10
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Infrastructure.Extention;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace IRaCIS.Core.Application.Contracts
@@ -18,9 +14,9 @@ namespace IRaCIS.Core.Application.Contracts
public DateTime CreateTime { get; set; }
public DateTime UpdateTime { get; set; }
public string FileType { get; set; } = string.Empty;
public string FileType { get; set; } = string.Empty;
public List<NeedConfirmedUserTypeView> NeedConfirmedUserTypeList { get; set; }=new List<NeedConfirmedUserTypeView>();
public List<NeedConfirmedUserTypeView> NeedConfirmedUserTypeList { get; set; } = new List<NeedConfirmedUserTypeView>();
}
public class UnionDocumentView : SystemDocumentAddOrEdit
@@ -31,11 +27,11 @@ namespace IRaCIS.Core.Application.Contracts
public bool IsSystemDoc { get; set; }
public string FileType { get; set; } = string.Empty;
public string FileType { get; set; } = string.Empty;
}
public class TrialSignDocView:UnionDocumentWithConfirmInfoView
public class TrialSignDocView : UnionDocumentWithConfirmInfoView
{
public string TrialCode { get; set; }
public string ResearchProgramNo { get; set; }
@@ -45,9 +41,9 @@ namespace IRaCIS.Core.Application.Contracts
}
public class UnionDocumentWithConfirmInfoView: UnionDocumentView
public class UnionDocumentWithConfirmInfoView : UnionDocumentView
{
public DateTime? ConfirmTime { get; set; }
@@ -60,7 +56,7 @@ namespace IRaCIS.Core.Application.Contracts
public string RealName { get; set; } = string.Empty;
public Guid UserTypeId { get; set; }
public Guid UserTypeId { get; set; }
public string UserTypeShortName { get; set; } = string.Empty;
}
@@ -73,7 +69,7 @@ namespace IRaCIS.Core.Application.Contracts
public string RealName { get; set; } = string.Empty;
}
public class DocumentUnionWithUserStatView: UnionDocumentView
public class DocumentUnionWithUserStatView : UnionDocumentView
{
public int? DocumentUserCount { get; set; }
public int? DocumentConfirmedUserCount { get; set; }
@@ -97,7 +93,7 @@ namespace IRaCIS.Core.Application.Contracts
}
@@ -131,7 +127,7 @@ namespace IRaCIS.Core.Application.Contracts
public Guid? FileTypeId { get; set; }
public string TrialCode { get; set;} = string.Empty;
public string TrialCode { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
@@ -140,7 +136,7 @@ namespace IRaCIS.Core.Application.Contracts
}
public class TrialUserDocUnionQuery: PageInput
public class TrialUserDocUnionQuery : PageInput
{
[NotDefault]
public Guid TrialId { get; set; }
@@ -156,7 +152,7 @@ namespace IRaCIS.Core.Application.Contracts
public class UserConfirmCommand
{
[NotDefault]
public Guid DocumentId { get; set; }
@@ -168,14 +164,14 @@ namespace IRaCIS.Core.Application.Contracts
public class DocumentTrialUnionQuery : TrialUserDocUnionQuery
{
public Guid? UserTypeId { get; set; }
public Guid? UserId { get; set; }
public bool? IsConfirmed { get; set; }
public bool? IsConfirmed { get; set; }
public bool? IsDeleted { get; set; }
}
public bool? IsDeleted { get; set; }
}
///<summary> SystemDocumentAddOrEdit 列表查询参数模型</summary>
public class SystemDocumentAddOrEdit
@@ -194,7 +190,7 @@ namespace IRaCIS.Core.Application.Contracts
public class AddOrEditSystemDocument : SystemDocumentAddOrEdit
{
public List<Guid> NeedConfirmedUserTypeIdList { get; set; }=new List<Guid>();
public List<Guid> NeedConfirmedUserTypeIdList { get; set; } = new List<Guid>();
}
}
@@ -3,8 +3,6 @@
// 生成时间 2022-01-05 09:17:10
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using System;
using System.Collections.Generic;
namespace IRaCIS.Core.Application.Contracts
{
/// <summary> TrialDocumentUserConfirmView 列表视图模型 </summary>
@@ -28,7 +26,7 @@ namespace IRaCIS.Core.Application.Contracts
public class NeedConfirmedUserTypeView
@@ -39,7 +37,7 @@ namespace IRaCIS.Core.Application.Contracts
}
}
@@ -4,7 +4,6 @@
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Infrastructure.Extention;
using System.ComponentModel.DataAnnotations;
namespace IRaCIS.Core.Application.Contracts
@@ -14,7 +13,7 @@ namespace IRaCIS.Core.Application.Contracts
{
public string FullFilePath { get; set; } = String.Empty;
public bool IsSomeUserSigned{get;set;}
public bool IsSomeUserSigned { get; set; }
public DateTime CreateTime { get; set; }
public Guid CreateUserId { get; set; }
@@ -33,8 +32,8 @@ namespace IRaCIS.Core.Application.Contracts
///<summary>TrialDocumentQuery 列表查询参数模型</summary>
public class TrialDocumentQuery : PageInput
{
public bool? IsDeleted { get; set; }
public Guid? FileTypeId { get; set; }
public bool? IsDeleted { get; set; }
public Guid? FileTypeId { get; set; }
public Guid? UserTypeId { get; set; }
@@ -63,7 +62,7 @@ namespace IRaCIS.Core.Application.Contracts
}
public class AddOrEditTrialDocument: TrialDocumentAddOrEdit
public class AddOrEditTrialDocument : TrialDocumentAddOrEdit
{
public List<Guid> NeedConfirmedUserTypeIdList { get; set; } = new List<Guid>();
@@ -71,7 +70,7 @@ namespace IRaCIS.Core.Application.Contracts
}
@@ -3,11 +3,8 @@
// 生成时间 2022-10-20 11:52:31
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using System;
using IRaCIS.Core.Domain.Share;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Newtonsoft.Json;
namespace IRaCIS.Core.Application.ViewModel
{
@@ -1,24 +1,7 @@
using DocumentFormat.OpenXml.EMMA;
using DocumentFormat.OpenXml.Spreadsheet;
using IRaCIS.Application.Contracts;
using IRaCIS.Application.Interfaces;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure;
using MailKit;
using Microsoft.Extensions.Options;
using Microsoft.VisualBasic;
using MimeKit;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
using static IRaCIS.Core.Domain.Share.StaticData;
namespace IRaCIS.Core.Application.Service
{
@@ -31,7 +14,7 @@ namespace IRaCIS.Core.Application.Service
Task SendTrialQCQuestionEmailAsync(Guid trialId);
Task SendTrialImageQuestionAsync(Guid trialId);
Task<(TrialEmailNoticeConfig?, SMTPEmailConfig?)> BuildEmailConfig(Guid trialId, EmailBusinessScenario businessScenario, Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc, Guid? siteId = null, Guid? trialReadingCriterionId = null);
Task<(TrialEmailNoticeConfig?, SMTPEmailConfig?)> BuildEmailConfig(Guid trialId, EmailBusinessScenario businessScenario, Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc, Guid? siteId = null, Guid? trialReadingCriterionId = null);
}
public class EmailSendService(
@@ -42,9 +25,9 @@ namespace IRaCIS.Core.Application.Service
IRepository<TrialSiteUser> _trialSiteUserRepository,
IOptionsMonitor<SystemEmailSendConfig> _SystemEmailSendConfig) : BaseService, IEmailSendService
{
public static string EmailNamePlaceholder => StaticData. EmailSend.EmailNamePlaceholder;
public static string EmailNamePlaceholder => StaticData.EmailSend.EmailNamePlaceholder;
@@ -87,30 +70,30 @@ namespace IRaCIS.Core.Application.Service
if (isEnrollment == true)
{
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
{
var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, taskInfo.ResearchProgramNo, taskInfo.SubjectCode);
var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
EmailNamePlaceholder, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, resultStr);
return (topicStr, htmlBodyStr, isEn_us, null);
return (topicStr, htmlBodyStr, isEn_us, null);
};
await SendTrialEmailAsync(taskInfo.TrialId, businessScenarioEnum, topicAndHtmlFunc, taskInfo.TrialSiteId);
}
else
{
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
{
var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, taskInfo.VisitName);
var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
EmailNamePlaceholder, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, taskInfo.VisitName, resultStr);
return (topicStr, htmlBodyStr, isEn_us, null);
return (topicStr, htmlBodyStr, isEn_us, null);
};
await SendTrialEmailAsync(taskInfo.TrialId, businessScenarioEnum, topicAndHtmlFunc, taskInfo.TrialSiteId);
@@ -127,7 +110,7 @@ namespace IRaCIS.Core.Application.Service
public async Task SendTrialImageQCTaskEmailAsync(Guid trialId)
{
var isEn_us = false;
var trialInfo = await _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstNotNullAsync();
var trialInfo = await _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstNotNullAsync();
//找到 该项目的IQC 用户Id
var userList = await _trialUserRepository.Where(t => t.TrialId == trialId).Where(t => t.User.UserTypeEnum == UserTypeEnum.IQC).Select(t => new { t.UserId, t.User.FullName }).ToListAsync();
@@ -158,12 +141,12 @@ namespace IRaCIS.Core.Application.Service
if (sendStat != null && (sendStat.ToBeClaimedCount > 0 || sendStat.ToBeReviewedCount > 0))
{
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
{
var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo);
var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
user.FullName, DateTime.Now, sendStat.ToBeClaimedCount, sendStat.ToBeReviewedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl);
return (topicStr, htmlBodyStr, false, userId);
};
@@ -180,7 +163,7 @@ namespace IRaCIS.Core.Application.Service
public async Task SendTrialQCQuestionEmailAsync(Guid trialId)
{
var isEn_us = false;
var trialInfo =await _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr, t.DeclarationTypeEnumList }).FirstNotNullAsync();
var trialInfo = await _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr, t.DeclarationTypeEnumList }).FirstNotNullAsync();
//找到 该项目的IQC 用户Id
var userList = await _trialUserRepository.Where(t => t.TrialId == trialId).Where(t => t.User.UserTypeEnum == UserTypeEnum.IQC).Select(t => new { t.UserId, t.User.FullName }).ToListAsync();
@@ -210,15 +193,15 @@ namespace IRaCIS.Core.Application.Service
if (sendStat != null && (sendStat.ToBeDealedCount > 0 || sendStat.ReUploadTobeDealedCount > 0))
{
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
{
var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo);
var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
user.FullName, DateTime.Now, sendStat.ToBeDealedCount - sendStat.ReUploadTobeDealedCount, sendStat.ReUploadTobeDealedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl);
return (topicStr, htmlBodyStr, false, userId);
return (topicStr, htmlBodyStr, false, userId);
};
await SendTrialEmailAsync(trialId, EmailBusinessScenario.QCQuestion, topicAndHtmlFunc);
@@ -235,7 +218,7 @@ namespace IRaCIS.Core.Application.Service
{
var isEn_us = false;
var trialInfo = await _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstNotNullAsync();
var trialInfo = await _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstNotNullAsync();
//找到 该项目的CRC 用户Id
var userList = await _trialUserRepository.Where(t => t.TrialId == trialId).Where(t => t.User.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Select(t => new { t.UserId, t.User.FullName }).ToListAsync();
@@ -262,13 +245,13 @@ namespace IRaCIS.Core.Application.Service
if (sendStat != null && (sendStat.ToBeDealedCount > 0))
{
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
{
var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo);
var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
user.FullName, DateTime.Now, sendStat.ToBeDealedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl);
return (topicStr, htmlBodyStr, isEn_us, userId);
return (topicStr, htmlBodyStr, isEn_us, userId);
};
await SendTrialEmailAsync(trialId, EmailBusinessScenario.ImageQuestion, topicAndHtmlFunc);
@@ -279,34 +262,34 @@ namespace IRaCIS.Core.Application.Service
public async Task SendTrialEmailAsync(Guid trialId, EmailBusinessScenario businessScenario, Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc, Guid? trialSiteId = null, Guid? trialReadingCriterionId = null, Func<TrialEmailNoticeConfig, SMTPEmailConfig, SMTPEmailConfig> emailAttachFunc=null)
public async Task SendTrialEmailAsync(Guid trialId, EmailBusinessScenario businessScenario, Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc, Guid? trialSiteId = null, Guid? trialReadingCriterionId = null, Func<TrialEmailNoticeConfig, SMTPEmailConfig, SMTPEmailConfig> emailAttachFunc = null)
{
var (trialEmailConfig, sendEmailConfig) = await BuildEmailConfig(trialId, businessScenario, topicAndHtmlFunc, trialSiteId, trialReadingCriterionId);
var (trialEmailConfig, sendEmailConfig) = await BuildEmailConfig(trialId, businessScenario, topicAndHtmlFunc, trialSiteId, trialReadingCriterionId);
if (sendEmailConfig != null)
{
await SendEmailHelper.SendEmailAsync(sendEmailConfig);
}
}
public async Task<(TrialEmailNoticeConfig?, SMTPEmailConfig?)> BuildEmailConfig(Guid trialId, EmailBusinessScenario businessScenario, Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc, Guid? trialSiteId = null, Guid? trialReadingCriterionId = null)
public async Task<(TrialEmailNoticeConfig?, SMTPEmailConfig?)> BuildEmailConfig(Guid trialId, EmailBusinessScenario businessScenario, Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc, Guid? trialSiteId = null, Guid? trialReadingCriterionId = null)
{
//找到配置
var trialEmailConfig = await _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == trialReadingCriterionId && t.BusinessScenarioEnum == businessScenario, ignoreQueryFilters: true)
.Include(t => t.TrialEmailNoticeUserList).Include(t => t.TrialEmailBlackUserList).FirstOrDefaultAsync();
if (trialEmailConfig == null || trialEmailConfig.IsAutoSend == false || trialEmailConfig.IsEnable==false)
if (trialEmailConfig == null || trialEmailConfig.IsAutoSend == false || trialEmailConfig.IsEnable == false)
{
return (null,null);
return (null, null);
}
else
{
var sendEmailConfig = new SMTPEmailConfig();
var (topicStr, htmlBodyStr, isEn_us, onlyToUserId) = topicAndHtmlFunc(trialEmailConfig);
var (topicStr, htmlBodyStr, isEn_us, onlyToUserId) = topicAndHtmlFunc(trialEmailConfig);
sendEmailConfig.TopicDescription = topicStr;
@@ -422,7 +405,7 @@ namespace IRaCIS.Core.Application.Service
// });
//}
return (trialEmailConfig,sendEmailConfig) ;
return (trialEmailConfig, sendEmailConfig);
}
@@ -3,7 +3,6 @@
// 生成时间 2022-01-05 09:17:00
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Infrastructure.Extention;
namespace IRaCIS.Core.Application.Contracts
{
/// <summary>
@@ -30,5 +29,5 @@ namespace IRaCIS.Core.Application.Contracts
}
}
}
@@ -4,11 +4,6 @@
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Infra.EFCore;
using IRaCIS.Core.Infrastructure.Extention;
using Microsoft.AspNetCore.Mvc;
namespace IRaCIS.Core.Application.Contracts
{
public interface ITrialDocumentService
@@ -5,32 +5,31 @@
//--------------------------------------------------------------------
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Domain.Share.Common;
namespace IRaCIS.Core.Application.Interfaces
{
/// <summary>
/// ITrialEmailNoticeConfigService
/// </summary>
public interface ITrialEmailNoticeConfigService
{
/// <summary>
/// ITrialEmailNoticeConfigService
/// </summary>
public interface ITrialEmailNoticeConfigService
{
Task<List<TrialEmailNoticeConfigView>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery);
Task<List<TrialEmailNoticeConfigView>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery);
Task<IResponseOutput> AddOrUpdateTrialEmailNoticeConfig(TrialEmailNoticeConfigAddOrEdit addOrEditTrialEmailNoticeConfig);
Task<IResponseOutput> AddOrUpdateTrialEmailNoticeConfig(TrialEmailNoticeConfigAddOrEdit addOrEditTrialEmailNoticeConfig);
Task<IResponseOutput> DeleteTrialEmailNoticeConfig(Guid trialEmailNoticeConfigId);
Task<IResponseOutput> DeleteTrialEmailNoticeConfig(Guid trialEmailNoticeConfigId);
Task<string> BaseBusinessScenarioSendEmailAsync(Guid visitTaskId, bool? isMedicalReviewAndSuggestApplyReReading = null, EmailStoreSendMode emailStoreMode = EmailStoreSendMode.StoreLocalSend, string sendFileRelativePath="");
Task<string> BaseBusinessScenarioSendEmailAsync(Guid visitTaskId, bool? isMedicalReviewAndSuggestApplyReReading = null, EmailStoreSendMode emailStoreMode = EmailStoreSendMode.StoreLocalSend, string sendFileRelativePath = "");
}
}
public class EmailStoreSendDto
{
public EmailStoreSendMode EmailStoreSendMode { get; set; } = EmailStoreSendMode.StoreLocalSend;
public class EmailStoreSendDto
{
public EmailStoreSendMode EmailStoreSendMode { get; set; } = EmailStoreSendMode.StoreLocalSend;
public string SendFileRelativePath { get; set; }
public string SendFileRelativePath { get; set; }
}
}
@@ -4,10 +4,9 @@
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Contracts;
using Microsoft.AspNetCore.Mvc;
using User = IRaCIS.Core.Domain.Models.User;
using DocumentFormat.OpenXml.Office2010.Word;
namespace IRaCIS.Core.Application.Services
{
@@ -21,7 +20,7 @@ namespace IRaCIS.Core.Application.Services
IRepository<SystemDocConfirmedUser> _systemDocConfirmedUserRepository) : BaseService, ISystemDocumentService
{
@@ -49,9 +48,9 @@ namespace IRaCIS.Core.Application.Services
var entity = _mapper.Map<SystemDocument>(addOrEditSystemDocument);
if (await _systemDocumentRepository.AnyAsync(t => t.FileTypeId == addOrEditSystemDocument.FileTypeId && t.Name == addOrEditSystemDocument.Name,true))
if (await _systemDocumentRepository.AnyAsync(t => t.FileTypeId == addOrEditSystemDocument.FileTypeId && t.Name == addOrEditSystemDocument.Name, true))
{
//---系统中已存在同类型的同名文件。
//---系统中已存在同类型的同名文件。
return ResponseOutput.NotOk(_localizer["SystemD_DuplicateFile"]);
}
@@ -67,10 +66,10 @@ namespace IRaCIS.Core.Application.Services
if (await _systemDocumentRepository.AnyAsync(t => t.FileTypeId == addOrEditSystemDocument.FileTypeId && t.Name == addOrEditSystemDocument.Name && t.Id != addOrEditSystemDocument.Id, true))
{
//---系统中已存在同类型的同名文件。
//---系统中已存在同类型的同名文件。
return ResponseOutput.NotOk(_localizer["SystemD_DuplicateFile"]);
}
_mapper.Map(addOrEditSystemDocument, document);
@@ -132,7 +131,7 @@ namespace IRaCIS.Core.Application.Services
return ResponseOutput.NotOk(_localizer["SystemD_CannotDeleteSignedFile"]);
}
var success = await _systemDocumentRepository.DeleteFromQueryAsync(t => t.Id == systemDocumentId,true,true);
var success = await _systemDocumentRepository.DeleteFromQueryAsync(t => t.Id == systemDocumentId, true, true);
return ResponseOutput.Result(true);
}
@@ -163,10 +162,10 @@ namespace IRaCIS.Core.Application.Services
SignViewMinimumMinutes = sysDoc.SignViewMinimumMinutes,
Name = sysDoc.Name,
Path = sysDoc.Path,
FileType = _userInfo.IsEn_Us? sysDoc.FileType.Value: sysDoc.FileType.ValueCN,
FileType = _userInfo.IsEn_Us ? sysDoc.FileType.Value : sysDoc.FileType.ValueCN,
UpdateTime = sysDoc.UpdateTime,
FullFilePath = sysDoc.Path ,
FullFilePath = sysDoc.Path,
ConfirmUserId = confirm.ConfirmUserId,
ConfirmTime = confirm.ConfirmTime,
@@ -176,9 +175,9 @@ namespace IRaCIS.Core.Application.Services
UserTypeShortName = user.UserTypeRole.UserTypeShortName
};
return await query.WhereIf(inQuery.IsSigned==true,t=>t.ConfirmTime!=null)
return await query.WhereIf(inQuery.IsSigned == true, t => t.ConfirmTime != null)
.WhereIf(inQuery.IsSigned == false, t => t.ConfirmTime == null)
.ToPagedListAsync(inQuery);
.ToPagedListAsync(inQuery);
@@ -4,14 +4,10 @@
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Contracts;
using Microsoft.AspNetCore.Authorization;
using IRaCIS.Core.Application.Auth;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Application.Filter;
using System.Linq;
using IRaCIS.Core.Domain.Share;
using Microsoft.AspNetCore.Mvc;
namespace IRaCIS.Core.Application.Services
{
@@ -34,7 +30,7 @@ namespace IRaCIS.Core.Application.Services
{
/// <summary>
/// Setting 界面的 项目所有文档列表
@@ -221,10 +217,10 @@ namespace IRaCIS.Core.Application.Services
var trialId = inQuery.TrialId;
var trialInfo = await ( _trialRepository.Where(t => t.Id == inQuery.TrialId, ignoreQueryFilters: true).Select(t => new { t.TrialFinishedTime, t.TrialStatusStr }).FirstNotNullAsync());
var trialInfo = await (_trialRepository.Where(t => t.Id == inQuery.TrialId, ignoreQueryFilters: true).Select(t => new { t.TrialFinishedTime, t.TrialStatusStr }).FirstNotNullAsync());
//系统文档查询
var systemDocumentQueryable = from needConfirmedUserType in _systemDocNeedConfirmedUserTypeRepository.Where(t => t.NeedConfirmUserTypeId == _userInfo.UserTypeId,ignoreQueryFilters:true)
var systemDocumentQueryable = from needConfirmedUserType in _systemDocNeedConfirmedUserTypeRepository.Where(t => t.NeedConfirmUserTypeId == _userInfo.UserTypeId, ignoreQueryFilters: true)
.WhereIf(trialInfo.TrialFinishedTime != null, u => u.SystemDocument.CreateTime < trialInfo.TrialFinishedTime)
.WhereIf(!_userInfo.IsAdmin, t => t.SystemDocument.IsDeleted == false || (t.SystemDocument.IsDeleted == true && t.SystemDocument.SystemDocConfirmedUserList.Any(t => t.ConfirmUserId == _userInfo.Id)))
@@ -355,7 +351,7 @@ namespace IRaCIS.Core.Application.Services
/// <param name="inQuery"></param>
/// <returns></returns>
[HttpPost]
public async Task<IResponseOutput< PageOutput<UnionDocumentWithConfirmInfoView>>> GetDocumentConfirmList(DocumentTrialUnionQuery inQuery)
public async Task<IResponseOutput<PageOutput<UnionDocumentWithConfirmInfoView>>> GetDocumentConfirmList(DocumentTrialUnionQuery inQuery)
{
@@ -392,7 +388,7 @@ namespace IRaCIS.Core.Application.Services
#endregion
var trialInfo = (await _trialRepository.Where(t => t.Id == inQuery.TrialId,ignoreQueryFilters:true).Select(t => new { t.TrialFinishedTime, t.TrialStatusStr }).FirstNotNullAsync());
var trialInfo = (await _trialRepository.Where(t => t.Id == inQuery.TrialId, ignoreQueryFilters: true).Select(t => new { t.TrialFinishedTime, t.TrialStatusStr }).FirstNotNullAsync());
var trialDocQuery = from trialDocumentNeedConfirmedUserType in _trialDocNeedConfirmedUserTypeRepository.Where(t => t.TrialDocument.TrialId == inQuery.TrialId)
join trialUser in _trialUserRepository.Where(t => t.TrialId == inQuery.TrialId)
@@ -464,7 +460,7 @@ namespace IRaCIS.Core.Application.Services
FullFilePath = needConfirmEdUserType.SystemDocument.Path
};
var unionQuery = trialDocQuery.Union(systemDocQuery).IgnoreQueryFilters().Where(t=>!(t.IsDeleted == true && t.ConfirmUserId == null))
var unionQuery = trialDocQuery.Union(systemDocQuery).IgnoreQueryFilters().Where(t => !(t.IsDeleted == true && t.ConfirmUserId == null))
.WhereIf(!string.IsNullOrEmpty(inQuery.Name), t => t.Name.Contains(inQuery.Name))
.WhereIf(inQuery.FileTypeId != null, t => t.FileTypeId == inQuery.FileTypeId)
.WhereIf(inQuery.IsConfirmed == true, t => t.ConfirmTime != null)
@@ -485,7 +481,7 @@ namespace IRaCIS.Core.Application.Services
.CountAsync();
return ResponseOutput.Ok (result, new { NeedSignCount = needSignTrialDocCount + needSignSystemDocCount, NeedSignTrialDocCount = needSignTrialDocCount, NeedSignSystemDocCount = needSignSystemDocCount, TrialStatusStr = trialInfo.TrialStatusStr });
return ResponseOutput.Ok(result, new { NeedSignCount = needSignTrialDocCount + needSignSystemDocCount, NeedSignTrialDocCount = needSignTrialDocCount, NeedSignSystemDocCount = needSignSystemDocCount, TrialStatusStr = trialInfo.TrialStatusStr });
}
@@ -4,30 +4,20 @@
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Domain.Models;
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Filter;
using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Application.Interfaces;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Application.Helper;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Infra.EFCore.Common;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Filter;
using MiniSoftware;
using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Domain.Share.Common;
using System.IO;
using System.Linq;
using Spire.Doc;
using Microsoft.AspNetCore.Http;
using System;
using System.Runtime.InteropServices;
using SharpCompress.Common;
using DocumentFormat.OpenXml.Bibliography;
using System.Linq.Dynamic.Core;
using IRaCIS.Core.Infra.EFCore.Common;
using IRaCIS.Core.Infrastructure;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using Spire.Doc;
using System.Linq.Dynamic.Core;
using System.Runtime.InteropServices;
namespace IRaCIS.Core.Application.Service
{
@@ -55,7 +45,7 @@ namespace IRaCIS.Core.Application.Service
IEmailSendService _emailSendService) : BaseService, ITrialEmailNoticeConfigService
{
/// <summary>
/// 获取项目邮箱
@@ -361,7 +351,7 @@ namespace IRaCIS.Core.Application.Service
//有序
if (taskInfo.IsReadingTaskViewInOrder==ReadingOrder.InOrder)
if (taskInfo.IsReadingTaskViewInOrder == ReadingOrder.InOrder)
{
@@ -3,9 +3,6 @@ using AutoMapper.EquivalencyExpression;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Domain.Share;
using System.Globalization;
namespace IRaCIS.Core.Application.Service
{
@@ -18,22 +15,22 @@ namespace IRaCIS.Core.Application.Service
var isEn_Us = false;
CreateMap<SystemDocument, SystemDocumentView>()
.ForMember(d => d.FileType, u => u.MapFrom(s => isEn_Us ? s.FileType.Value: s.FileType.ValueCN))
.ForMember(d => d.FullFilePath, u => u.MapFrom(s => s.Path));
.ForMember(d => d.FileType, u => u.MapFrom(s => isEn_Us ? s.FileType.Value : s.FileType.ValueCN))
.ForMember(d => d.FullFilePath, u => u.MapFrom(s => s.Path));
CreateMap<TrialDocument, TrialDocumentView>()
.ForMember(d => d.FileType, u => u.MapFrom(s => isEn_Us ? s.FileType.Value : s.FileType.ValueCN ))
.ForMember(d => d.IsSomeUserSigned, u => u.MapFrom(s => s.TrialDocConfirmedUserList.Any(t=>t.ConfirmTime!=null)))
.ForMember(d => d.FullFilePath, u => u.MapFrom(s => s.Path ));
.ForMember(d => d.FileType, u => u.MapFrom(s => isEn_Us ? s.FileType.Value : s.FileType.ValueCN))
.ForMember(d => d.IsSomeUserSigned, u => u.MapFrom(s => s.TrialDocConfirmedUserList.Any(t => t.ConfirmTime != null)))
.ForMember(d => d.FullFilePath, u => u.MapFrom(s => s.Path));
CreateMap<SystemDocument, UnionDocumentView>()
.ForMember(d => d.IsSystemDoc, u => u.MapFrom(s => true))
.ForMember(d => d.FullFilePath, u => u.MapFrom(s => s.Path ));
.ForMember(d => d.FullFilePath, u => u.MapFrom(s => s.Path));
CreateMap<TrialDocument, UnionDocumentView>()
.ForMember(d => d.IsSystemDoc, u => u.MapFrom(s => false))
.ForMember(d => d.FullFilePath, u => u.MapFrom(s => s.Path ));
.ForMember(d => d.FullFilePath, u => u.MapFrom(s => s.Path));
CreateMap<TrialDocNeedConfirmedUserType, NeedConfirmedUserTypeView>().ForMember(d => d.UserTypeShortName, t => t.MapFrom(c => c.UserTypeRole.UserTypeShortName));
CreateMap<SystemDocNeedConfirmedUserType, NeedConfirmedUserTypeView>().ForMember(d => d.UserTypeShortName, t => t.MapFrom(c => c.UserTypeRole.UserTypeShortName));
@@ -50,13 +47,13 @@ namespace IRaCIS.Core.Application.Service
//CreateMap<SystemDocConfirmedUser, SystemDocumentUserConfirmView>()
// .ForMember(d => d.UserName, c => c.MapFrom(t => t.User.UserName))
// .ForMember(d => d.RealName, c => c.MapFrom(t => t.User.LastName + " / " + t.User.FirstName));
CreateMap<TrialUser, TrialDocumentUserConfirmView>();
CreateMap<BatchAddTrialEmailNoticeConfig, TrialEmailNoticeConfig>();
CreateMap<AddOrEditTrialDocument, TrialDocument>()
@@ -75,7 +72,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap<TrialEmailNoticeConfig, TrialEmailNoticeConfigView>()
.ForMember(d => d.TrialCriterionName, c => c.MapFrom(t => t.TrialReadingCriterion.CriterionName))
.ForMember(d => d.TrialEmailNoticeUserList, c => c.MapFrom(t => t.TrialEmailNoticeUserList));
@@ -86,7 +83,7 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.Email, c => c.MapFrom(t => t.User.EMail))
.ForMember(d => d.RealName, c => c.MapFrom(t => t.User.FullName))
.ForMember(d => d.UserName, c => c.MapFrom(t => t.User.UserName));
CreateMap<TrialEmailNoticeUser, EmailUserInfoDto>();