/// <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}"); }
/// <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); }
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 }); }
/// <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; }
/// <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; }
public void BehaviorWasApplied(IOperation operation, OperationBehavior behavior, string description) { }