示例#1
0
        private static void CheckSystemMode()
        {
            var now = Platform.Time;

            if (!_systemModeLastCheckTimestamp.HasValue || now - _systemModeLastCheckTimestamp > TimeSpan.FromSeconds(15))
            {
                lock (_syncLock)
                {
                    if (!_systemModeLastCheckTimestamp.HasValue || now - _systemModeLastCheckTimestamp > TimeSpan.FromSeconds(15))
                    {
                        try
                        {
                            IPersistentStore store = PersistentStoreRegistry.GetDefaultStore();
                            using (IReadContext ctx = store.OpenReadContext())
                            {
                                var deleteRuleBroker         = ctx.GetBroker <IServerRuleEntityBroker>();
                                var deleteRuleSearchCriteria = new ServerRuleSelectCriteria();
                                deleteRuleSearchCriteria.ServerRuleTypeEnum.EqualTo(ServerRuleTypeEnum.StudyDelete);
                                deleteRuleSearchCriteria.Enabled.EqualTo(true);
                                var deleteRules = deleteRuleBroker.Find(deleteRuleSearchCriteria);

                                if (deleteRules == null || deleteRules.Count == 0)
                                {
                                    _serverMode = Common.ServerOperatingMode.Archive;
                                }

                                var defaultDeleteRuleExists = deleteRules.Any(r => r.RuleName.Equals("Default Delete"));
                                var customDeleteRuleExists  = deleteRules.Any(r => !r.RuleName.Equals("Default Delete"));

                                if (defaultDeleteRuleExists)
                                {
                                    _serverMode = Common.ServerOperatingMode.TemporaryCache;
                                }
                                else
                                {
                                    if (customDeleteRuleExists)
                                    {
                                        _serverMode = Common.ServerOperatingMode.MixedMode;
                                    }
                                    else
                                    {
                                        _serverMode = Common.ServerOperatingMode.Archive;
                                    }
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            Platform.Log(LogLevel.Error, ex);
                        }
                        finally
                        {
                            _systemModeLastCheckTimestamp = now;
                        }
                    }
                }
            }
        }
示例#2
0
        private static void CheckSystemMode()
        {
            var now = Platform.Time;

            if (!_systemModeLastCheckTimestamp.HasValue || now - _systemModeLastCheckTimestamp > TimeSpan.FromSeconds(15))
            {
                lock (_syncLock)
                {
                    if (!_systemModeLastCheckTimestamp.HasValue || now - _systemModeLastCheckTimestamp > TimeSpan.FromSeconds(15))
                    {
                        try
                        {
                            using (var context = new ServerExecutionContext())
                            {
                                var deleteRuleBroker = context.ReadContext.GetBroker<IServerRuleEntityBroker>();
                                var deleteRuleSearchCriteria = new ServerRuleSelectCriteria();
                                deleteRuleSearchCriteria.ServerRuleTypeEnum.EqualTo(ServerRuleTypeEnum.StudyDelete);
                                deleteRuleSearchCriteria.Enabled.EqualTo(true);
                                var deleteRules = deleteRuleBroker.Find(deleteRuleSearchCriteria);

                                if (deleteRules == null || deleteRules.Count == 0)
                                    _serverMode = ServerOperatingMode.Archive;

                                var defaultDeleteRuleExists = deleteRules.Any(r => r.RuleName.Equals("Default Delete"));
                                var customDeleteRuleExists = deleteRules.Any(r => !r.RuleName.Equals("Default Delete"));

                                if (defaultDeleteRuleExists)
                                    _serverMode = ServerOperatingMode.TemporaryCache;
                                else
                                {
                                    if (customDeleteRuleExists)
                                        _serverMode = ServerOperatingMode.MixedMode;
                                    else
                                        _serverMode = ServerOperatingMode.Archive;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            Platform.Log(LogLevel.Error, ex);
                        }
                        finally
                        {
                            _systemModeLastCheckTimestamp = now;
                        }
                    }
                }
            }
        }