public override void Observe()
        {
            _setup.DeleteAllAudits();

            _fetch.Handle(_fetchCommand);
            _executeCommand = new ExecuteApiPushConfigurationCommand(_fetch.Configurations);
            _execute.Handle(_executeCommand);
        }
        public void Handle(ExecuteApiPushConfigurationCommand command)
        {
            command.Configurations.ToList().ForEach(f =>
            {
                f.Pusher.Push(f.Command);
            });

            IsHandled = true;
        }
        public void Handle(ExecuteApiPushConfigurationCommand command)
        {
            if (command.Configurations == null || !command.Configurations.Any())
            {
                Log.Info("There are not configurations to execute");
                return;
            }

            Log.InfoFormat("Executing {0} API Push Configurations", command.Configurations.Count());
            command.Configurations.ToList().ForEach(f =>
            {
                try
                {
                    Log.InfoFormat("Executing Push Configuration with Key {0}", f.Key);
                    f.Pusher.Push(f.Command);
                }
                catch (Exception ex)
                {
                    Log.ErrorFormat("An error occurred executing API Push configuration because of {0}", ex, ex.Message);
                }
            });

            IsHandled = true;
        }