修改稽查
parent
957c85d641
commit
6468a6505b
|
@ -33,6 +33,7 @@ public static class SendEmailHelper
|
||||||
|
|
||||||
await smtp.AuthenticateAsync(_systemEmailConfig.FromEmail, _systemEmailConfig.AuthorizationCode);
|
await smtp.AuthenticateAsync(_systemEmailConfig.FromEmail, _systemEmailConfig.AuthorizationCode);
|
||||||
|
|
||||||
|
|
||||||
await smtp.SendAsync(messageToSend);
|
await smtp.SendAsync(messageToSend);
|
||||||
|
|
||||||
await smtp.DisconnectAsync(true);
|
await smtp.DisconnectAsync(true);
|
||||||
|
@ -49,6 +50,21 @@ public static class SendEmailHelper
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async Task<bool> TestEmailConfigAsync(SystemEmailSendConfig _systemEmailConfig)
|
||||||
|
{
|
||||||
|
using (var client = new MailKit.Net.Smtp.SmtpClient())
|
||||||
|
{
|
||||||
|
|
||||||
|
await client.ConnectAsync(_systemEmailConfig.Host, _systemEmailConfig.Port, SecureSocketOptions.SslOnConnect);
|
||||||
|
|
||||||
|
await client.AuthenticateAsync(_systemEmailConfig.FromEmail, _systemEmailConfig.AuthorizationCode);
|
||||||
|
|
||||||
|
await client.DisconnectAsync(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public static async Task SendEmailAsync(SMTPEmailConfig sMTPEmailConfig, EventHandler<MessageSentEventArgs>? messageSentSuccess = null)
|
public static async Task SendEmailAsync(SMTPEmailConfig sMTPEmailConfig, EventHandler<MessageSentEventArgs>? messageSentSuccess = null)
|
||||||
{
|
{
|
||||||
var messageToSend = new MimeMessage();
|
var messageToSend = new MimeMessage();
|
||||||
|
|
|
@ -1384,8 +1384,6 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
return ResponseOutput.Ok(entity.Id.ToString());
|
return ResponseOutput.Ok(entity.Id.ToString());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1424,9 +1422,6 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
private async Task TestEmailConfigAsync(TrialEmailNoticeConfigAddOrEdit config)
|
private async Task TestEmailConfigAsync(TrialEmailNoticeConfigAddOrEdit config)
|
||||||
{
|
{
|
||||||
var toUserList = await _repository.Where<TrialUser>(t => t.TrialId == config.TrialId)
|
|
||||||
.WhereIf(config.ToUserTypeList != null, t => config.ToUserTypeList.Contains(t.User.UserTypeEnum))
|
|
||||||
.Select(t => new { t.User.EMail, t.User.FullName }).ToListAsync();
|
|
||||||
|
|
||||||
|
|
||||||
if (!config.FromEmail.Contains("@") || string.IsNullOrEmpty(config.FromEmail))
|
if (!config.FromEmail.Contains("@") || string.IsNullOrEmpty(config.FromEmail))
|
||||||
|
@ -1435,52 +1430,16 @@ namespace IRaCIS.Core.Application.Service
|
||||||
throw new BusinessValidationFailedException(_localizer["TrialEmailN_InvalidEmailConfig"]);
|
throw new BusinessValidationFailedException(_localizer["TrialEmailN_InvalidEmailConfig"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (toUserList.Count() == 0 || toUserList.Where(t => t.EMail.Contains("@")).Count() == 0)
|
|
||||||
{
|
|
||||||
//---项目没有有效的收件人,无法发送邮件
|
|
||||||
throw new BusinessValidationFailedException(_localizer["TrialEmailN_InvalidRecipient"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
var sendEmailConfig = new SMTPEmailConfig();
|
|
||||||
|
|
||||||
sendEmailConfig.FromEmailAddress = new MimeKit.MailboxAddress(config.FromName, config.FromEmail);
|
|
||||||
sendEmailConfig.AuthorizationCode = config.AuthorizationCode;
|
|
||||||
sendEmailConfig.UserName = config.FromEmail;
|
|
||||||
|
|
||||||
sendEmailConfig.Host = config.SMTPServerAddress;
|
|
||||||
sendEmailConfig.Port = config.SMTPServerPort;
|
|
||||||
|
|
||||||
|
|
||||||
sendEmailConfig.ToMailAddressList.Add(new MimeKit.MailboxAddress(config.FromName, config.FromEmail));
|
|
||||||
|
|
||||||
|
|
||||||
var pathToFile = _hostEnvironment.WebRootPath
|
|
||||||
+ Path.DirectorySeparatorChar.ToString()
|
|
||||||
+ "EmailTemplate"
|
|
||||||
+ Path.DirectorySeparatorChar.ToString()
|
|
||||||
//+ "EmailConfigTest.html";
|
|
||||||
|
|
||||||
+ (_userInfo.IsEn_Us ? "EmailConfigTest_US.html" : "EmailConfigTest.html");
|
|
||||||
|
|
||||||
|
|
||||||
//---项目邮件测试
|
|
||||||
sendEmailConfig.TopicDescription = _localizer["TrialEmailN_EmailTestMessage"];
|
|
||||||
|
|
||||||
using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile))
|
|
||||||
{
|
|
||||||
var templateInfo = SourceReader.ReadToEnd();
|
|
||||||
|
|
||||||
|
|
||||||
sendEmailConfig.HtmlBodyStr = string.Format(templateInfo,
|
|
||||||
//--- 收到此邮件,代表邮件配置正确
|
|
||||||
_localizer["TrialEmailN_ConfigurationCorrect"]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await SendEmailHelper.SendEmailAsync(sendEmailConfig);
|
await SendEmailHelper.TestEmailConfigAsync(new SystemEmailSendConfig()
|
||||||
|
{
|
||||||
|
AuthorizationCode = config.AuthorizationCode,
|
||||||
|
FromEmail = config.FromEmail,
|
||||||
|
FromName = config.FromName,
|
||||||
|
Host = config.SMTPServerAddress,
|
||||||
|
Port = config.SMTPServerPort
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -1491,6 +1450,72 @@ namespace IRaCIS.Core.Application.Service
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#region 人员还未加入,可以先配置邮件 历史废弃
|
||||||
|
|
||||||
|
//var toUserList = await _repository.Where<TrialUser>(t => t.TrialId == config.TrialId)
|
||||||
|
// .WhereIf(config.ToUserTypeList != null, t => config.ToUserTypeList.Contains(t.User.UserTypeEnum))
|
||||||
|
// .Select(t => new { t.User.EMail, t.User.FullName }).ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
|
//if (toUserList.Count() == 0 || toUserList.Where(t => t.EMail.Contains("@")).Count() == 0)
|
||||||
|
//{
|
||||||
|
// //---项目没有有效的收件人,无法发送邮件
|
||||||
|
// throw new BusinessValidationFailedException(_localizer["TrialEmailN_InvalidRecipient"]);
|
||||||
|
//}
|
||||||
|
|
||||||
|
//var sendEmailConfig = new SMTPEmailConfig();
|
||||||
|
|
||||||
|
//sendEmailConfig.FromEmailAddress = new MimeKit.MailboxAddress(config.FromName, config.FromEmail);
|
||||||
|
//sendEmailConfig.AuthorizationCode = config.AuthorizationCode;
|
||||||
|
//sendEmailConfig.UserName = config.FromEmail;
|
||||||
|
|
||||||
|
//sendEmailConfig.Host = config.SMTPServerAddress;
|
||||||
|
//sendEmailConfig.Port = config.SMTPServerPort;
|
||||||
|
|
||||||
|
|
||||||
|
//sendEmailConfig.ToMailAddressList.Add(new MimeKit.MailboxAddress(config.FromName, config.FromEmail));
|
||||||
|
|
||||||
|
|
||||||
|
//var pathToFile = _hostEnvironment.WebRootPath
|
||||||
|
// + Path.DirectorySeparatorChar.ToString()
|
||||||
|
// + "EmailTemplate"
|
||||||
|
// + Path.DirectorySeparatorChar.ToString()
|
||||||
|
// //+ "EmailConfigTest.html";
|
||||||
|
|
||||||
|
// + (_userInfo.IsEn_Us ? "EmailConfigTest_US.html" : "EmailConfigTest.html");
|
||||||
|
|
||||||
|
|
||||||
|
////---项目邮件测试
|
||||||
|
//sendEmailConfig.TopicDescription = _localizer["TrialEmailN_EmailTestMessage"];
|
||||||
|
|
||||||
|
//using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile))
|
||||||
|
//{
|
||||||
|
// var templateInfo = SourceReader.ReadToEnd();
|
||||||
|
|
||||||
|
|
||||||
|
// sendEmailConfig.HtmlBodyStr = string.Format(templateInfo,
|
||||||
|
// //--- 收到此邮件,代表邮件配置正确
|
||||||
|
// _localizer["TrialEmailN_ConfigurationCorrect"]
|
||||||
|
// );
|
||||||
|
//}
|
||||||
|
|
||||||
|
//try
|
||||||
|
//{
|
||||||
|
// await SendEmailHelper.SendEmailAsync(sendEmailConfig);
|
||||||
|
|
||||||
|
//}
|
||||||
|
//catch (Exception ex)
|
||||||
|
//{
|
||||||
|
|
||||||
|
// //---发件人配置错误,请核对服务器地址或者授权码是否填写有误
|
||||||
|
// throw new BusinessValidationFailedException(_localizer["TrialEmailN_InvalidSenderEmailConfig"] + ex.Message);
|
||||||
|
//}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
||||||
|
|
|
@ -754,7 +754,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
JArray arrays = (JArray)value;
|
JArray arrays = (JArray)value;
|
||||||
|
|
||||||
|
//动态配置表翻译
|
||||||
if (item.DataType == "Table")
|
if (item.DataType == "Table")
|
||||||
{
|
{
|
||||||
var tableConfigList = JsonConvert.DeserializeObject<List<TableConfig>>(item.TableConfigJsonStr) ?? new List<TableConfig>();
|
var tableConfigList = JsonConvert.DeserializeObject<List<TableConfig>>(item.TableConfigJsonStr) ?? new List<TableConfig>();
|
||||||
|
|
|
@ -716,9 +716,10 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
|
|
||||||
|
|
||||||
study.BodyPartForEdit = updateModalityCommand.BodyPart;
|
study.BodyPartForEdit = updateModalityCommand.BodyPart;
|
||||||
//study.Modalities = updateModalityCommand.Modality;
|
|
||||||
study.ModalityForEdit = updateModalityCommand.Modality;
|
study.ModalityForEdit = updateModalityCommand.Modality;
|
||||||
await _repository.BatchUpdateAsync<DicomSeries>(t => t.StudyId == studyId, r => new DicomSeries() { BodyPartForEdit = updateModalityCommand.BodyPart, Modality = updateModalityCommand.Modality });
|
|
||||||
|
await _repository.BatchUpdateAsync<DicomSeries>(t => t.StudyId == studyId, r => new DicomSeries() { BodyPartForEdit = updateModalityCommand.BodyPart });
|
||||||
}
|
}
|
||||||
else if (updateModalityCommand.Type == 2)
|
else if (updateModalityCommand.Type == 2)
|
||||||
{
|
{
|
||||||
|
|
|
@ -72,7 +72,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
/// <param name="inQuery"></param>
|
/// <param name="inQuery"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<(PageOutput<SubjectCriteriaEvaluationView>, object)> GetSubjectCriteriaEvaluationList(SubjectCriteriaEvaluationQuery inQuery)
|
public async Task<IResponseOutput<PageOutput<SubjectCriteriaEvaluationView>> > GetSubjectCriteriaEvaluationList(SubjectCriteriaEvaluationQuery inQuery)
|
||||||
{
|
{
|
||||||
|
|
||||||
var trialReadingCritionList = _trialReadingCriterionRepository.Where(t => t.TrialId == inQuery.TrialId).ToList();
|
var trialReadingCritionList = _trialReadingCriterionRepository.Where(t => t.TrialId == inQuery.TrialId).ToList();
|
||||||
|
@ -235,7 +235,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return (pageList, addtionalQustionInfoList);
|
return ResponseOutput.Ok (pageList, addtionalQustionInfoList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -257,6 +257,9 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
var entity = await _subjectCriteriaEvaluationRepository.InsertFromDTOAsync(addOrEditSubjectCriteriaEvaluation);
|
var entity = await _subjectCriteriaEvaluationRepository.InsertFromDTOAsync(addOrEditSubjectCriteriaEvaluation);
|
||||||
|
|
||||||
|
if (addOrEditSubjectCriteriaEvaluation.IsJoinEvaluation)
|
||||||
|
{
|
||||||
|
|
||||||
//找到一致性核查通过的访视 并且没有 自动影像筛选的数据
|
//找到一致性核查通过的访视 并且没有 自动影像筛选的数据
|
||||||
var subjectVisitIdList = await _subjectVisitRepository.Where(t => t.SubjectId == addOrEditSubjectCriteriaEvaluation.SubjectId && t.CheckState == CheckStateEnum.CVPassed
|
var subjectVisitIdList = await _subjectVisitRepository.Where(t => t.SubjectId == addOrEditSubjectCriteriaEvaluation.SubjectId && t.CheckState == CheckStateEnum.CVPassed
|
||||||
&& !t.SubjectCriteriaEvaluationVisitFilterList.Any(t => t.TrialReadingCriterionId == addOrEditSubjectCriteriaEvaluation.TrialReadingCriterionId && t.SubjectId == addOrEditSubjectCriteriaEvaluation.SubjectId)).Select(t => t.Id)
|
&& !t.SubjectCriteriaEvaluationVisitFilterList.Any(t => t.TrialReadingCriterionId == addOrEditSubjectCriteriaEvaluation.TrialReadingCriterionId && t.SubjectId == addOrEditSubjectCriteriaEvaluation.SubjectId)).Select(t => t.Id)
|
||||||
|
@ -268,6 +271,10 @@ namespace IRaCIS.Core.Application.Service
|
||||||
await AutoSubjectCriteriaEvaluationVisitFilter(addOrEditSubjectCriteriaEvaluation.SubjectId, subjectVisitId, addOrEditSubjectCriteriaEvaluation.TrialReadingCriterionId);
|
await AutoSubjectCriteriaEvaluationVisitFilter(addOrEditSubjectCriteriaEvaluation.SubjectId, subjectVisitId, addOrEditSubjectCriteriaEvaluation.TrialReadingCriterionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
//编辑
|
//编辑
|
||||||
|
|
|
@ -269,7 +269,8 @@ namespace IRaCIS.Core.Application
|
||||||
|
|
||||||
|
|
||||||
var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value)
|
var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value)
|
||||||
.Select(x=>new ReadingTrialCriterionDictionary() {
|
.Select(x => new ReadingTrialCriterionDictionary()
|
||||||
|
{
|
||||||
|
|
||||||
CriterionId = inDto.TrialReadingCriterionId,
|
CriterionId = inDto.TrialReadingCriterionId,
|
||||||
CrterionDictionaryGroup = x.CrterionDictionaryGroup,
|
CrterionDictionaryGroup = x.CrterionDictionaryGroup,
|
||||||
|
@ -953,6 +954,47 @@ namespace IRaCIS.Core.Application
|
||||||
|
|
||||||
_mapper.Map(trialConfig, trialInfo);
|
_mapper.Map(trialConfig, trialInfo);
|
||||||
|
|
||||||
|
//不管是否修改,一定要记录稽查
|
||||||
|
trialInfo.UpdateTime=DateTime.Now;
|
||||||
|
|
||||||
|
//// 修改临床数据
|
||||||
|
|
||||||
|
var clinicalDataTrialSetList = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialConfig.TrialId, true).ToListAsync();
|
||||||
|
|
||||||
|
foreach (var item in clinicalDataTrialSetList)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(trialConfig.ClinicalDataTrialSetIds.Contains(item.Id))
|
||||||
|
{
|
||||||
|
item.IsConfirm = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
item.IsConfirm = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//// 修改阅片标准
|
||||||
|
|
||||||
|
var readingQuestionCriterionTrialList = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == trialConfig.TrialId, true).ToListAsync();
|
||||||
|
|
||||||
|
foreach (var item in readingQuestionCriterionTrialList)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (trialConfig.TrialCriterionIds.Contains(item.Id))
|
||||||
|
{
|
||||||
|
item.IsConfirm = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
item.IsConfirm = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 废弃
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
//if (trialInfo.IsGlobalReading && (trialInfo.IsArbitrationReading ?? false))
|
//if (trialInfo.IsGlobalReading && (trialInfo.IsArbitrationReading ?? false))
|
||||||
//{
|
//{
|
||||||
// trialInfo.ArbitrationRule = ArbitrationRule.Reading;
|
// trialInfo.ArbitrationRule = ArbitrationRule.Reading;
|
||||||
|
@ -962,40 +1004,40 @@ namespace IRaCIS.Core.Application
|
||||||
//{
|
//{
|
||||||
// trialInfo.ArbitrationRule = ArbitrationRule.Visit;
|
// trialInfo.ArbitrationRule = ArbitrationRule.Visit;
|
||||||
//}
|
//}
|
||||||
trialInfo.UpdateTime = DateTime.Now;
|
//trialInfo.UpdateTime = DateTime.Now;
|
||||||
|
|
||||||
// 修改临床数据
|
//// 修改临床数据
|
||||||
var noconfirmids = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialConfig.TrialId && !trialConfig.ClinicalDataTrialSetIds.Contains(x.Id)).Select(x => x.Id).ToListAsync();
|
//var noconfirmids = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialConfig.TrialId && !trialConfig.ClinicalDataTrialSetIds.Contains(x.Id)).Select(x => x.Id).ToListAsync();
|
||||||
foreach (var item in trialConfig.ClinicalDataTrialSetIds)
|
//foreach (var item in trialConfig.ClinicalDataTrialSetIds)
|
||||||
{
|
//{
|
||||||
await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
|
// await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
|
||||||
{
|
// {
|
||||||
|
|
||||||
IsConfirm = true
|
// IsConfirm = true
|
||||||
});
|
// });
|
||||||
}
|
//}
|
||||||
|
|
||||||
foreach (var item in noconfirmids)
|
//foreach (var item in noconfirmids)
|
||||||
{
|
//{
|
||||||
await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
|
// await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
|
||||||
{
|
// {
|
||||||
|
|
||||||
IsConfirm = false
|
// IsConfirm = false
|
||||||
});
|
// });
|
||||||
}
|
//}
|
||||||
|
|
||||||
// 修改阅片标准
|
//// 修改阅片标准
|
||||||
var cancelConfirmCriterionIds = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == trialConfig.TrialId && x.IsConfirm && !trialConfig.TrialCriterionIds.Contains(x.Id)).Select(x => x.Id).ToListAsync();
|
//var cancelConfirmCriterionIds = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == trialConfig.TrialId && x.IsConfirm && !trialConfig.TrialCriterionIds.Contains(x.Id)).Select(x => x.Id).ToListAsync();
|
||||||
|
|
||||||
await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => cancelConfirmCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial()
|
//await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => cancelConfirmCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial()
|
||||||
{
|
//{
|
||||||
IsConfirm = false
|
// IsConfirm = false
|
||||||
});
|
//});
|
||||||
|
|
||||||
await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => trialConfig.TrialCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial()
|
//await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => trialConfig.TrialCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial()
|
||||||
{
|
//{
|
||||||
IsConfirm = true
|
// IsConfirm = true
|
||||||
}); ;
|
//}); ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -150,6 +150,8 @@ namespace IRaCIS.Core.Infra.EFCore.Common.Dto
|
||||||
//标识操作 是否区分接口
|
//标识操作 是否区分接口
|
||||||
public bool IsDistinctionInterface=true;
|
public bool IsDistinctionInterface=true;
|
||||||
|
|
||||||
|
public bool IsSelfDefine = false;
|
||||||
|
|
||||||
public string ExtraIndentification = string.Empty;
|
public string ExtraIndentification = string.Empty;
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue