/// <summary> /// Process an event asynchronously. /// </summary> /// <param name="e">event to process</param> /// <returns> /// Task to wait on. /// </returns> public async Task HandleAsync(IMessageContext context, ReportAddedToIncident e) { _logger.Debug("doing filters.."); IEnumerable <Trigger> triggers; try { triggers = _repository.GetForApplication(e.Incident.ApplicationId); } catch (Exception exception) { _logger.Error("Failed to load triggers for " + e.Incident.ApplicationId, exception); return; } foreach (var trigger in triggers) { var triggerContext = new TriggerExecutionContext { Incident = e.Incident, ErrorReport = e.Report }; var triggerResults = trigger.Run(triggerContext); foreach (var actionData in triggerResults) { var action = _actionFactory.Create(actionData.ActionName); var actionContext = new ActionExecutionContext { Config = actionData, ErrorReport = e.Report, Incident = e.Incident }; await action.ExecuteAsync(actionContext); } } _logger.Debug("filters done.."); }
public Task <TriggerResult> ExecuteTriggerAsync(string name, EntityModel model, List <dynamic> entities, TriggerExecutionContext context, dynamic options) { if (_triggersAsync.ContainsKey(name)) { return(_triggersAsync[name](model, entities, context, options)); } throw new System.NotImplementedException(); }
public async Task <TriggerResult> InitDocument(EntityModel model, List <dynamic> entities, TriggerExecutionContext context, dynamic options) { var user = DWKitRuntime.Security.CurrentUser; var schemes = DWKitRuntime.Metadata.GetWorkflowByForm(model.Name); foreach (var entity in entities) { if (entity.Id == null) { var initialState = schemes.Count == 0 ? new WorkflowState() { Name = "", SchemeCode = "", VisibleName = "" } : await WorkflowInit.Runtime.GetInitialStateAsync(schemes[0]); entity.AuthorId = user.GetOperationUserId(); entity.author = user.GetOperationUserName(); entity.State = initialState.Name; entity.stateName = initialState.VisibleName; } } return(TriggerResult.Success()); }
public Task <TriggerResult> ExecuteTriggerAsync(string name, EntityModel model, List <dynamic> entities, TriggerExecutionContext context, dynamic options) { throw new System.NotImplementedException(); }
public TriggerResult ExecuteTrigger(string name, EntityModel model, List <dynamic> entities, TriggerExecutionContext context, dynamic options) { throw new NotImplementedException(); }
public async Task <TriggerResult> CheckLinkedSecurityUser(EntityModel model, List <dynamic> entities, TriggerExecutionContext context, dynamic options) { foreach (var entity in entities) { entity.Name = entity.FirstName + " " + entity.LastName; SecurityUser user = await SecurityUser.SelectByKey(entity.Id); if (user == null) { user = new SecurityUser() { Id = entity.Id, Name = entity.Name, Email = entity.Email }; await user.ApplyAsync(); } else { if (user.Name != entity.Name || user.Email != entity.Email) { user.StartTracking(); user.Name = entity.Name; user.Email = entity.Email; await user.ApplyAsync(); } } await EmployeeBusiness.CheckDefaultRole(user.Id, "Users"); } return(TriggerResult.Success()); }
public async Task <TriggerResult> InitFields(EntityModel model, List <dynamic> entities, TriggerExecutionContext context, dynamic options) { DynamicEntity fields = options as DynamicEntity; if (fields != null) { foreach (var entity in entities) { if (entity[model.PrimaryKeyAttributeName] == null) { foreach (var field in fields.Dictionary) { entity.TrySetMember(field.Key, await ReplaceVariable(field.Value, model)); } } } } return(TriggerResult.Success()); }