Esempio n. 1
0
        protected virtual void OnContractStateChanging(ContractStateChangeEventArgs e)
        {
            if (ContractStateChanging == null)
            {
                return;
            }

            var invList         = ContractStateChanging.GetInvocationList();
            var billingHandlers = invList
                                  .Where(d => d.Target is IBilling)
                                  .OfType <ContractStateChangeEventHandler>();

            var otherHandlers = invList.Where(d => !(d.Target is IBilling)).OfType <ContractStateChangeEventHandler>();

            bool allow = e.ChangeAllowed;

            foreach (var handler in otherHandlers)
            {
                handler(this, e);
            }

            e.ChangeAllowed = allow;

            foreach (var handler in billingHandlers)
            {
                handler(this, e);
            }
        }
Esempio n. 2
0
 // Подписка на изменение состояния контракта
 protected void BillingContractStateChanging(object sender, ContractStateChangeEventArgs e)
 {
     e.ChangeAllowed = _allowContractStateChange;
 }