public void ClearRollbackActions(IPackageOperationContext context) { Stack<Action> stack; if (_rollbackActions.TryGetValue(context, out stack)) { stack.Clear(); _rollbackActions.Remove(context); } }
public void ClearRollbackActions(IPackageOperationContext context) { Stack <Action> stack; if (_rollbackActions.TryGetValue(context, out stack)) { stack.Clear(); _rollbackActions.Remove(context); } }
public void PushRollbackAction(Action rollbackAction, IPackageOperationContext context) { Stack<Action> stack; if (!_rollbackActions.TryGetValue(context, out stack)) { stack = new Stack<Action>(); _rollbackActions.Add(context, stack); } stack.Push(rollbackAction); }
public void PushRollbackAction(Action rollbackAction, IPackageOperationContext context) { Stack <Action> stack; if (!_rollbackActions.TryGetValue(context, out stack)) { stack = new Stack <Action>(); _rollbackActions.Add(context, stack); } stack.Push(rollbackAction); }
public void Rollback(IPackageOperationContext context) { Stack<Action> stack; if (_rollbackActions.TryGetValue(context, out stack)) { while (stack.Any()) { var action = stack.Pop(); action(); } } }
public void Rollback(IPackageOperationContext context) { Stack <Action> stack; if (_rollbackActions.TryGetValue(context, out stack)) { while (stack.Any()) { var action = stack.Pop(); action(); } } }
public void ClearRollbackActions(IPackageOperationContext context) { Stack <Action> stack; if (context is null) { Log.Warning("Current package operation context doesn't exist. Ignore rollback actions"); return; } if (_rollbackActions.TryGetValue(context, out stack)) { stack.Clear(); _rollbackActions.Remove(context); } }
private void CloseCurrentOperationContext(PackageOperationContext context) { Argument.IsNotNull(() => context); lock (_lockObject) { if (CurrentContext.Parent == null) { OperationContextDisposing.SafeInvoke(this, new OperationContextEventArgs(context)); context.FileSystemContext.Dispose(); _packageOperationNotificationService.NotifyOperationBatchFinished(context.OperationType, context.Packages); _rootContext = null; } CurrentContext = CurrentContext.Parent; } }
private void CloseCurrentOperationContext(PackageOperationContext context) { Argument.IsNotNull(() => context); lock (_lockObject) { if (CurrentContext.Parent == null) { OperationContextDisposing?.Invoke(this, new OperationContextEventArgs(context)); context.FileSystemContext.Dispose(); _packageOperationNotificationService.NotifyOperationBatchFinished(context.OperationType, context.Packages ?? new IPackageDetails[0]); _rootContext = null; } CurrentContext = CurrentContext.Parent; } }
public void PushRollbackAction(Action rollbackAction, IPackageOperationContext context) { Stack <Action> stack; if (context is null) { Log.Warning("Current package operation context doesn't exist. Ignore rollback actions"); return; } if (!_rollbackActions.TryGetValue(context, out stack)) { stack = new Stack <Action>(); _rollbackActions.Add(context, stack); } stack.Push(rollbackAction); }
private void CloseCurrentOperationContext(PackageOperationContext context) { Argument.IsNotNull(() => context); lock (_lockObject) { if (CurrentContext.Parent is null) { OperationContextDisposing?.Invoke(this, new OperationContextEventArgs(context)); #pragma warning disable IDISP007 // Don't dispose injected. context.FileSystemContext.Dispose(); #pragma warning restore IDISP007 // Don't dispose injected. _packageOperationNotificationService.NotifyOperationBatchFinished(context.OperationType, context.Packages ?? new IPackageDetails[0]); _rootContext = null; } CurrentContext = CurrentContext.Parent; } }
private void ApplyOperationContext(PackageOperationContext context) { Argument.IsNotNull(() => context); lock (_lockObject) { if (_rootContext == null) { context.CatchedExceptions.Clear(); _rootContext = context; CurrentContext = context; _packageOperationNotificationService.NotifyOperationBatchStarting(context.OperationType, context.Packages); } else { context.Parent = CurrentContext; CurrentContext = context; } } }
private void ApplyOperationContext(PackageOperationContext context) { Argument.IsNotNull(() => context); lock (_lockObject) { if (_rootContext is null) { context.Exceptions.Clear(); _rootContext = context; CurrentContext = context; _packageOperationNotificationService.NotifyOperationBatchStarting(context.OperationType, context.Packages ?? new IPackageDetails[0]); } else { context.Parent = CurrentContext; CurrentContext = context; } } }
public OperationContextEventArgs(IPackageOperationContext packageOperationContext) { Argument.IsNotNull(() => packageOperationContext); PackageOperationContext = packageOperationContext; }