public Task SendWorkOrderUpdatedAsync(WorkOrderUpdatedEventArgs args) { if (args == null) { throw new ArgumentNullException("args"); } if (string.IsNullOrWhiteSpace(args.WorkOrderId)) { throw new ArgumentException("WorkOrderId cannot be null"); } if (string.IsNullOrWhiteSpace(args.UpdatedStatus)) { throw new ArgumentException("UpdatedStatus cannot be null"); } if (args.UpdatedDateUtc > DateTime.UtcNow) { throw new ArgumentOutOfRangeException($"UpdatedDateUtc cannot be in the future ({ args.UpdatedDateUtc.ToLocalTime() })"); } _logger.Information("Posting WorkOrderUpdated event to service bus for Work Order {WorkOrderId}, updated by {AssigneeEmail}", args.WorkOrderId, args.AssigneeEmail); var userProperties = new Dictionary <string, object>(); SetWorkOrder(args.WorkOrderId, args.EtaUtc, userProperties); SetWorkOrder(args.RemedyStatus, args.UpdatedStatus, args.UpdatedDateUtc, args.AssigneeEmail, args.AssigneeDisplayName, userProperties); return(_messageSender.SendMessageAsync(WORK_ORDER_UPDATED, userProperties)); }
public Task SendWorkOrderUpdatedAsync(WorkOrderUpdatedEventArgs args) { var tasks = new List <Task>(); var cancellationToken = new System.Threading.CancellationToken(); foreach (var h in _messageReceiver.WorkOrderUpdatedHandlers) { tasks.Add(h(args, cancellationToken)); } return(Task.WhenAll(tasks)); }