Exemplo n.º 1
0
 /// <summary>
 /// Деактивирует состояние, разрешая конфликтующие с ним.
 /// </summary>
 /// <param name="state"> Состояние. </param>
 public void DeactivateState(IState state)
 {
     if (!current.Contains(state))
         return;
     if (!state.IsActivated())
         return;
     state.Deactivate(this);
     CheckResolvedStateConflicts();
 }
Exemplo n.º 2
0
 /// <summary>
 /// Активирует состояние, принуждая к деактивации допустимые конфликтующие с ним. 
 /// </summary>
 /// <param name="state"> Состояние. </param>
 public void ActivateState(IState state)
 {
     if (!current.Contains(state))
         return;
     if (!current.Contains(state))
         return;
     if (state.IsActivated())
         return;
     if (state.IsCanActivate(this))
     {
         ForceConflictResolvingFor(state);
         state.Activate(this);
     }
 }