public async Task <bool> HandlePropertyItemTypesChangedAction(TenantInformation tenant, ActionMessage actionMessage, IBaseRepository baseRepository, IWorkflowMessagingProcessor workflowMessagingProcessor) { var message = (PropertyItemTypesChangedMessage)actionMessage; var repository = (IPropertyItemTypesChangedRepository)baseRepository; var revisionId = message.RevisionId; var isInstance = message.IsStandard; var itemTypes = message.ItemTypeIds?.ToList(); var propertyTypes = message.PropertyTypeIds?.ToList(); var artifactIds = new List <int>(); if (itemTypes != null && itemTypes.Any()) { Logger.Log("Getting affected artifact IDs for item types", message, tenant); var affectedArtifacts = await repository.GetAffectedArtifactIdsForItemTypes(itemTypes, isInstance, revisionId); Logger.Log($"Received {affectedArtifacts.Count} affected artifact IDs for item types", message, tenant); artifactIds.AddRange(affectedArtifacts); } if (propertyTypes != null && propertyTypes.Any()) { Logger.Log("Getting affected artifact IDs for property types", message, tenant); var affectedArtifacts = await repository.GetAffectedArtifactIdsForPropertyTypes(propertyTypes, isInstance, revisionId); Logger.Log($"Received {affectedArtifacts.Count} affected artifact IDs for property types", message, tenant); artifactIds.AddRange(affectedArtifacts); } await ArtifactsChangedMessageSender.Send(artifactIds, tenant, actionMessage, workflowMessagingProcessor); return(true); }
public async Task <bool> HandleWorkflowsChangedAction(TenantInformation tenant, ActionMessage actionMessage, IBaseRepository baseRepository, IWorkflowMessagingProcessor workflowMessagingProcessor) { var message = (WorkflowsChangedMessage)actionMessage; var repository = (IWorkflowsChangedRepository)baseRepository; Logger.Log("Getting affected artifact IDs", message, tenant); var workflowIds = new[] { message.WorkflowId }; var artifactIds = await repository.GetAffectedArtifactIds(workflowIds, message.RevisionId); await ArtifactsChangedMessageSender.Send(artifactIds, tenant, actionMessage, workflowMessagingProcessor); return(true); }
public async Task <bool> HandleUsersGroupsChangedAction(TenantInformation tenant, ActionMessage actionMessage, IBaseRepository baseRepository, IWorkflowMessagingProcessor workflowMessagingProcessor) { var message = (UsersGroupsChangedMessage)actionMessage; var repository = (IUsersGroupsChangedRepository)baseRepository; Logger.Log($"Handling Users Groups Changed Message for change type {message.ChangeType}", message, tenant); if (message.ChangeType == UsersGroupsChangedType.Create) { Logger.Log("No need to send Artifacts Changed Messages when Creating Users or Groups", message, tenant); return(true); } Logger.Log("Getting affected artifact IDs", message, tenant); var artifactIds = await repository.GetAffectedArtifactIds(message.UserIds, message.GroupIds, message.RevisionId); await ArtifactsChangedMessageSender.Send(artifactIds, tenant, actionMessage, workflowMessagingProcessor); return(true); }