public DBConnectionFactory(IOptionsMonitor <List <DBConnectOptions> > optionsMonitor,
                            IResponsibilityProvider <DatabaseResponsibilityContext> provider)
 {
     this._options = optionsMonitor.CurrentValue;
     optionsMonitor.OnChange(_ => this._options = _);
     this._responsibility = provider.Root;
 }
Exemple #2
0
        private bool _FindResponsibility(IResponsibility responsibility, params object[] list)
        {
            if (!responsibility.CanProcess(list))
            {
                return(false);
            }

            responsibility.Process(list);
            return(true);
        }
Exemple #3
0
        public ProxyResponsibility(IEnumerable <IResponsibility <TContext> > responsibilitys)
        {
            Assert.Build(responsibilitys, nameof(responsibilitys))
            .NotNull()
            .Then(s => s.Any(), nameof(responsibilitys))
            .True();

            this._proxy = responsibilitys.First();

            for (var i = 1; i < responsibilitys.Count(); i++)
            {
                this.Add(responsibilitys.ElementAt(i));
            }
        }
Exemple #4
0
        /// <summary>
        /// 添加一个新的<paramref name="responsibility"/>链条进来
        /// </summary>
        /// <param name="responsibility"></param>
        public virtual void Add(IResponsibility <TContext> responsibility)
        {
            if (responsibility == null)
            {
                return;
            }

            var proxy = responsibility as ProxyResponsibility <TContext>;

            if (proxy == null)
            {
                proxy = new ProxyResponsibility <TContext>(responsibility);
            }

            if (this.Responsibility == null)
            {
                this.Responsibility = proxy;
            }
            else
            {
                ((ProxyResponsibility <TContext>) this.Responsibility).Add(proxy);
            }
        }
 public void SetNextResponsibility(IResponsibility nextResponse)
 {
     NextIResponsibility = nextResponse;
 }
Exemple #6
0
 public void AddResponsibility(IResponsibility responsibility)
 {
     _chain.Add(responsibility);
 }
Exemple #7
0
 public ProxyResponsibility(IResponsibility <TContext> responsibility)
 {
     Assert.Build(responsibility, nameof(responsibility))
     .NotNull();
     this._proxy = responsibility;
 }