diff --git a/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs b/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs index 7c3bb5fd..14f0a78e 100644 --- a/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs +++ b/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs @@ -165,10 +165,17 @@ namespace IRaCIS.Core.Application.Filter var cacheResultDic = _provider.GetAll(new[] { trialIdStr }); - var trialStatusStr = cacheResultDic[trialIdStr]; + var trialStatusStr = cacheResultDic[trialIdStr].Value; + + //意外 导致缓存过期,调整服务器时间,测试不想重启程序 + if (string.IsNullOrWhiteSpace(trialStatusStr)) + { + var trialRepository = context.HttpContext.RequestServices.GetService(typeof(IRepository)) as IRepository; + trialStatusStr = trialRepository?.Where(t => t.Id == Guid.Parse(trialIdStr)).Select(t => t.TrialStatusStr).FirstOrDefault(); + } // 这里是统一拦截 项目有关的操作允许情况(特殊的地方,比如项目配置(有的在多种状态(初始化,ongoing)都可以操作,有的仅仅在Initializing)还有 项目添加和更新,不走这里,特殊处理,不然在这里显得很乱,判断是哪个接口) - if (trialStatusStr.Value == StaticData.TrialState.TrialOngoing || _trialOptList.Any(t=>t== TrialOpt.BeforeOngoingCantOpt) ) + if (trialStatusStr == StaticData.TrialState.TrialOngoing || _trialOptList.Any(t=>t== TrialOpt.BeforeOngoingCantOpt) ) { await next.Invoke();