Пример #1
0
        private void ChangeStatus(AgentMetadata agent, AgentState agentState)
        {
            if (agent == null)
                return;

            var oldStatus = agent.Status;
            ((IAgentStateSetter)agent).Status = agentState;

            if (oldStatus != agentState)
            {
                log.Debug(string.Format("Agent '{0}' state was changed from {1} to {2}", agent.Address, oldStatus, agentState));
            }

            if (oldStatus != AgentState.Ready && agentState == AgentState.Ready)
                ReadyAgentAppeared.SafeInvoke(this, EventArgs.Empty);
            else if (!oldStatus.IsOneOf(new[]{AgentState.Disconnected, AgentState.Error})
                && agentState.IsOneOf(new[]{AgentState.Disconnected, AgentState.Error}))
            {
                ClientDisconnectedOrFailed.SafeInvoke(this, EventArgs.Empty);
            }
        }