Пример #1
0
        /// <summary>
        /// Log action execution details.
        /// </summary>
        /// <param name="actionWrapper">Action wrapper instance. See <see cref="IActionWrapper"/></param>
        public void LogAction(IActionWrapper actionWrapper)
        {
            foreach (var action in actionWrapper.GetWrappedActions())
            {
                var actionNode = new XElement(ns + "Action", new XAttribute("Id", action.Id));
                actionNode.Add(new XElement(ns + "Name", action.Name));
                actionNode.Add(new XElement(ns + "ActionCode", action.ActionCode));
                actionNode.Add(new XElement(ns + "ActionProcessed", action.ActionProcessed.ToString()));
                actionNode.Add(new XElement(ns + "ActionSkip", action.ActionSkip.ToString()));
                actionNode.Add(new XElement(ns + "ActionError", action.ActionError.ToString()));
                actionNode.Add(new XElement(ns + "ErrorMessage", action.ErrorMessage));
                actionNode.Add(new XElement(ns + "ActionStartTS", action.ActionStartTS.ToString()));
                actionNode.Add(new XElement(ns + "ActionEndTS", action.ActionEndTS.ToString()));

                if (action.Parameters != null)
                {
                    var parametersNode = new XElement(ns + "Parameters");
                    foreach (var key in action.Parameters.Keys)
                    {
                        var parameterNode = new XElement(ns + "Parameter",
                                                         new XAttribute("Name", key),
                                                         new XAttribute("Value", String.Format("{0}", action.Parameters[key])));

                        parametersNode.Add(parameterNode);
                    }
                    actionNode.Add(parametersNode);
                }

                _actionLogCount++;
                _countNode.Value = _actionLogCount.ToString();
                _actionsNode.Add(actionNode);
            }
        }
Пример #2
0
 public void StartListen()
 {
     _dispatcher = Dispatcher.CurrentDispatcher;
     _presenceListener.StartListen();
     _onPresence = _dispatcher.Wrap<Client, Presence>(OnPresence);
     _presenceListener.PresenceReceived += _onPresence.Exec;
 }
Пример #3
0
        public void RewriteUri_RewritesAllFiles(int fileCount)
        {
            Random          random = RandomSarifLogGenerator.GenerateRandomAndLog(this.output);
            List <SarifLog> logs   = new List <SarifLog>();

            for (int i = 0; i < fileCount; i++)
            {
                logs.Add(RandomSarifLogGenerator.GenerateSarifLogWithRuns(random, random.Next(10)));
            }

            bool rebaseRelativeUris = false;
            IActionWrapper <SarifLog> RewriteUri = SarifLogProcessorFactory.GetActionStage(SarifLogAction.RebaseUri, new string[] { "SRCROOT", rebaseRelativeUris.ToString(), @"C:\src\" });

            IEnumerable <SarifLog> rewrittenLogs = RewriteUri.Act(logs.AsEnumerable());

            rewrittenLogs.Should().HaveCount(logs.Count);

            // We just check that the log rewriter hit each run.  We'll test the RewriteUriVisitor more comprehensively in its own test class.
            foreach (SarifLog rewrittenLog in rewrittenLogs)
            {
                if (rewrittenLog.Runs != null)
                {
                    foreach (Run run in rewrittenLog.Runs)
                    {
                        run.OriginalUriBaseIds.Should().ContainKey("SRCROOT");
                    }
                }
            }
        }
 public AnswerProvider(IActionWrapper actionWrapper)
 {
     if (actionWrapper == null)
     {
         throw new ArgumentNullException("actionWrapper");
     }
     _actionWrapper = actionWrapper;
 }
Пример #5
0
        public void StartListen()
        {
            var dispatcher = Dispatcher.CurrentDispatcher;

            _onXmppConnectionStateChanged = dispatcher.Wrap<object, XmppConnectionState>(OnXmppConnectionStateChanged);
            _connection.OnXmppConnectionStateChanged += _onXmppConnectionStateChanged.Exec;

            _onError = dispatcher.Wrap<object, Exception>(OnError);
            _connection.OnError += _onError.Exec;
        }
Пример #6
0
 public void StartListen()
 {
     var dispatcher = Dispatcher.CurrentDispatcher;
     _onPresence = dispatcher.Wrap<Client, Presence>(OnPresence);
     _onFeature = dispatcher.Wrap<CapsInfo, IList<string>>(OnFeatures);
     _discoveryNetAccess.FeaturesReceived += _onFeature.Exec;
     _presenceListener.PresenceReceived += _onPresence.Exec;
     _discoveryNetAccess.StartListen();
     _presenceListener.StartListen();
 }
Пример #7
0
        public void StartListen()
        {
            _onRosterStart = _dispatcher.Wrap<object>(OnRosterStart);
            _connection.OnRosterStart += _onRosterStart.Exec;

            _onRosterItem = _dispatcher.Wrap<object, RosterItem>(OnRosterItem);
            _connection.OnRosterItem += _onRosterItem.Exec;

            _onRosterEnd = _dispatcher.Wrap<object>(OnRosterEnd);
            _connection.OnRosterEnd += _onRosterEnd.Exec;
        }
Пример #8
0
 public Task<ContactDetails> Send()
 {
     var dispatcher = Dispatcher.CurrentDispatcher;
     var connection = ConnectionManager.GetOrCreateConnection(_client);
     _onIq = dispatcher.Wrap<object, IQ>(OnIq);
     _connection = connection.Connection;
     _connection.OnIq += _onIq.Exec;
     var iq = new VcardIq();
     iq.Type = IqType.get;
     iq.To = _jid;
     iq.From = _connection.MyJID;
     iq.Id = _id = Guid.NewGuid().ToString("N");
     _connection.Send(iq);
     return _task.Task;
 }
Пример #9
0
        /// <summary>
        /// Execute actions configured in the context.
        /// </summary>
        /// <returns><c>Task</c> that completes when all the actions in the context finish.</returns>
        public async Task ExecuteActions()
        {
            _statusNode.Value = "COMPLETE";
            while (_pendingActions.Count > 0)
            {
                IActionWrapper nextAction = _pendingActions.First.Value;
                _pendingActions.RemoveFirst();

                await nextAction.Execute(_serviceProvider, this);

                LogAction(nextAction);

                if (nextAction.ActionError)
                {
                    _errorMessageNode.Value = nextAction.ErrorMessage;
                    _statusNode.Value       = "ERROR";
                    break;
                }
            }
        }
Пример #10
0
 public void StartListen()
 {
     var dispatcher = Dispatcher.CurrentDispatcher;
     _onMessage = dispatcher.Wrap<object, Message>(ConnectionOnMessage);
     _connection.OnMessage += _onMessage.Exec;
 }
Пример #11
0
        public void StartListen()
        {
            var dispatcher = Dispatcher.CurrentDispatcher;
            _onError = dispatcher.Wrap<object, Exception>(OnError);
            _connection.OnError += _onError.Exec;

            _onSocketError = dispatcher.Wrap<object, Exception>(OnSocketError);
            _connection.OnSocketError += _onSocketError.Exec;

            _onAuthError = dispatcher.Wrap<object, Element>(OnAuthError);
            _connection.OnAuthError += _onAuthError.Exec;

            _connection.OnIq += OnIq;
            // just for logs
            _connection.OnReadXml += (sender, xml) =>
            {
                var msg = string.Format("RECV: {0}", xml);
                _log.Info(msg);
                //Debug.WriteLine(msg);
            };
            _connection.OnWriteXml += (sender, xml) =>
            {
                var msg = string.Format("SEND: {0}", xml);
                _log.Info(msg);
                //Debug.WriteLine(msg);
            };
            _presenceObserver.StartListen();
            _rosterObserver.StartListen();
            _provider.StartListen();
        }
Пример #12
0
 public void StartListen()
 {
     _clientSub = ModelContext.Clients.HandleRemoveChanges(removed: ClientRemoved);
     var dispatcher = Dispatcher.CurrentDispatcher;
     _onIq = dispatcher.Wrap<Object, IQ>(OnIq);
 }
Пример #13
0
 /// <summary>
 /// Add action as the first item in the queue.
 /// </summary>
 /// <param name="action">Action to add.</param>
 public void PrependAction(IActionWrapper action)
 {
     _pendingActions.AddFirst(action);
 }
Пример #14
0
 /// <summary>
 /// Add action as the last item in the queue.
 /// </summary>
 /// <param name="action">Action instance to add.</param>
 public void AppendAction(IActionWrapper action)
 {
     _pendingActions.AddLast(action);
 }
Пример #15
0
        private void Subscribe()
        {
            var dispatcher = Dispatcher.CurrentDispatcher;

            _onPresence = dispatcher.Wrap<object, Presence>(OnPresence);
            _connection.OnPresence += _onPresence.Exec;
        }
Пример #16
0
 public void StartListen()
 {
     _onPresence = _dispatcher.Wrap<object, Presence>(OnPresence);
     _connection.OnPresence += _onPresence.Exec;
 }