Пример #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);
            }
        }