protected virtual async Task OnInitiativeWorkItemCreated(WorkOrderCreatedEventArgs args, CancellationToken token) { if (args == null) { throw new ArgumentNullException("args"); } var idea = args.Initiative; var owner = args.Owner; if (idea == null) { throw new ArgumentException("Initiative cannot be null"); } if (owner == null) { throw new ArgumentNullException("Owner cannot be null"); } var email = owner.GetEmail(); if (string.IsNullOrWhiteSpace(email)) { throw new ArgumentOutOfRangeException("Initiative Owner Email cannot be empty"); } var watch = new Stopwatch(); watch.Start(); using (LogContext.PushProperty("InitiativeId", idea.Id)) { _logger.Information("Received message that a new initiative has been created with id {InitiativeId}"); var loggerResponse = await LogNewInitiative(idea, owner); await SendInitiativeLoggedMessage(idea, owner, loggerResponse, args.SkipEmailNotification); watch.Stop(); _logger.Information("Logger processed message in {ElapsedMilliseconds}ms", watch.ElapsedMilliseconds); } }
protected virtual async Task OnInitiativeWorkItemCreated(WorkOrderCreatedEventArgs args, CancellationToken token) { if (args == null) { throw new ArgumentNullException("args"); } if (args.Initiative == null) { throw new ArgumentException("Initiative cannot be null"); } if (string.IsNullOrWhiteSpace(args.WorkOrderId)) { throw new ArgumentException("WorkOrderId cannot be empty"); } using (LogContext.PushProperty("InitiativeId", args.Initiative.Id)) { _logger.Information("Remedy has created a work item for initiative {InitiativeId} with remedy id {WorkOrderId}", args.Initiative.Id, args.WorkOrderId); try { args.Initiative.SetWorkOrderId(args.WorkOrderId); args.Initiative.UpdateStatus(InitiativeStatus.Submit, args.EtaUtc); _logger.Information("Saving Initiative {InitiativeId} to database", args.Initiative.Id); await _ideaRepository.UpdateInitiativeAsync(args.Initiative); } catch (Exception err) { _logger.Error(err, "Unable to set work item id '{WorkOrderId}' to initiative id {InitiativeId}. Will retry later. Error was: {ErrorMessage}", args.WorkOrderId, args.Initiative.Id, err.Message); throw; } } }
public Task SendInitiativeWorkOrderCreatedAsync(WorkOrderCreatedEventArgs args) { // do nothing return(Task.CompletedTask); }