/// <summary>
        /// Create en event log entry stating that a behavior was applied to an operation.
        /// </summary>
        /// <param name="operation">The operation for which the behavior was applied</param>
        /// <param name="behavior">The behavior that was applied</param>
        /// <param name="description">A description of the behavior that was applied</param>
        public void BehaviorWasApplied(IOperation operation, OperationBehavior behavior, string description)
        {
            Verify.NotNull(operation, nameof(operation));
            Verify.NotNull(behavior, nameof(behavior));
            Verify.NotNull(description, nameof(description));

            LogMessage($"{behavior.GetType().Name} was applied to {operation.GetType().Name}: {description}");
        }
Esempio n. 2
0
        /// <summary>
        /// Call BehaviorWasApplied on each supplied logger.
        /// </summary>
        /// <param name="operation">The operation is passed on the each logger</param>
        /// <param name="behavior">The behavior is passed on the each logger</param>
        /// <param name="description">The description is passed on the each logger</param>
        public void BehaviorWasApplied(IOperation operation, OperationBehavior behavior, string description)
        {
            Verify.NotNull(operation, nameof(operation));
            Verify.NotNull(behavior, nameof(behavior));
            Verify.NotNull(description, nameof(description));

            _loggers.ForEach(l => l.BehaviorWasApplied(operation, behavior, description));
        }
        /// <summary>
        /// Log that a behavior was applied, modifying the normal
        /// execution flow.
        /// </summary>
        /// <param name="operation">The executing operation</param>
        /// <param name="behavior">The beahvior being applied</param>
        /// <param name="description">A description of how the behavior modified the exectuion
        /// flow</param>
        public virtual void BehaviorWasApplied(IOperation operation, OperationBehavior behavior, string description)
        {
            Verify.NotNull(operation, nameof(operation));
            Verify.NotNull(behavior, nameof(behavior));
            Verify.NotNull(description, nameof(description));
            Verify.Operation(_levelInfo.Count > 0, "No operation was logged as started so an operation behavior cannot be logged.");

            PrepareForChildItem();

            _writer.Write(behavior.GetType().Name + ": " + description);
        }
Esempio n. 4
0
        internal void Operation(OperationBehavior behavior, Action operation)
        {
            RdcTreeNode selectedNode = base.SelectedNode as RdcTreeNode;

            try
            {
                if (behavior.HasFlag(OperationBehavior.SuspendUpdate))
                {
                    BeginUpdate();
                }
                if (behavior.HasFlag(OperationBehavior.SuspendSort))
                {
                    SuspendSort();
                }
                if (behavior.HasFlag(OperationBehavior.SuspendSelect))
                {
                    SuspendSelect();
                }
                if (behavior.HasFlag(OperationBehavior.SuspendGroupChanged))
                {
                    SuspendGroupChanged();
                }
                if (behavior.HasFlag(OperationBehavior.RestoreSelected))
                {
                    base.SelectedNode = null;
                }
                operation();
            }
            finally
            {
                if (behavior.HasFlag(OperationBehavior.RestoreSelected))
                {
                    base.SelectedNode = selectedNode;
                    Program.TheForm.SetTitle();
                }
                if (behavior.HasFlag(OperationBehavior.SuspendGroupChanged))
                {
                    ResumeGroupChanged();
                }
                if (behavior.HasFlag(OperationBehavior.SuspendSelect))
                {
                    ResumeSelect();
                }
                if (behavior.HasFlag(OperationBehavior.SuspendSort))
                {
                    ResumeSort();
                }
                if (behavior.HasFlag(OperationBehavior.SuspendUpdate))
                {
                    EndUpdate();
                }
            }
        }
        public void Applied_behaviors_are_forwarded_to_every_supplied_loggers(FakeWorkflowLogger log1, FakeWorkflowLogger log2, IOperation operation, OperationBehavior behavior, string description)
        {
            var sut = new LogMultiplexer(log1, log2);

            sut.BehaviorWasApplied(operation, behavior, description);

            Assert.Equal(1, log1.AppliedBehaviors.Count);
            Assert.Same(behavior, log1.AppliedBehaviors[0].Behavior);
            Assert.Equal(description, log1.AppliedBehaviors[0].Description);
            Assert.Same(operation, log1.AppliedBehaviors[0].Operation);
            Assert.Equal(1, log2.AppliedBehaviors.Count);
            Assert.Same(behavior, log2.AppliedBehaviors[0].Behavior);
            Assert.Equal(description, log2.AppliedBehaviors[0].Description);
            Assert.Same(operation, log2.AppliedBehaviors[0].Operation);
        }
 public void BehaviorWasApplied(IOperation operation, OperationBehavior behavior, string description)
 {
     AppliedBehaviors.Add(new BehaviorApplication {
         Behavior = behavior, Operation = operation, Description = description
     });
 }
Esempio n. 7
0
 /// <summary>
 /// Applies the operation behavior.
 /// </summary>
 /// <param name="operationBehavior">The operation behavior.</param>
 /// Methods
 public void ApplyOperationBehavior(OperationBehavior operationBehavior)
 {
     AsyncServiceException.ThrowIfNull(operationBehavior, "OperationBehavior");
     this._operationBehavior = operationBehavior;
 }
Esempio n. 8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="IsolatedOperation"/> class.
 /// </summary>
 /// <param name="name">The name.</param>
 protected IsolatedOperation(string name)
 {
     this.Name = name;
     this._operationBehavior = (action, parameter) => action(parameter);
     this.CancellationToken = System.Threading.CancellationToken.None;
 }
Esempio n. 9
0
 public void BehaviorWasApplied(IOperation operation, OperationBehavior behavior, string description)
 {
 }