public Task DeleteActivations(List <GrainAddress> addresses, DeactivationReasonCode reasonCode, string reasonText) { var timeoutTokenSource = new CancellationTokenSource(this.collectionOptions.Value.DeactivationTimeout); var tasks = new List <Task>(addresses.Count); var deactivationReason = new DeactivationReason(reasonCode, reasonText); foreach (var activationAddress in addresses) { if (TryGetGrainContext(activationAddress.GrainId, out var grainContext)) { tasks.Add(grainContext.DeactivateAsync(deactivationReason, timeoutTokenSource.Token)); } } return(Task.WhenAll(tasks)); }
/// <summary> /// Initializes a new instance of the <see cref="DeactivationReason"/> struct. /// </summary> /// <param name="code"> /// The code identifying the deactivation reason. /// </param> /// <param name="exception"> /// The exception which resulted in deactivation. /// </param> /// <param name="text"> /// A descriptive reason for the deactivation. /// </param> public DeactivationReason(DeactivationReasonCode code, Exception exception, string text) { ReasonCode = code; Description = text; Exception = exception; }
/// <summary> /// Initializes a new instance of the <see cref="DeactivationReason"/> struct. /// </summary> /// <param name="code"> /// The code identifying the deactivation reason. /// </param> /// <param name="text"> /// A descriptive reason for the deactivation. /// </param> public DeactivationReason(DeactivationReasonCode code, string text) { ReasonCode = code; Description = text; Exception = null; }