private async Task <WorkflowTriggersContainer> GetWorkflowEventTriggersForNewArtifactEventInternal(int userId, IEnumerable <int> artifactIds, int revisionId, bool addDrafts) { var param = new DynamicParameters(); param.Add("@userId", userId); var artifactIdsTable = SqlConnectionWrapper.ToDataTable(artifactIds); param.Add("@artifactIds", artifactIdsTable); param.Add("@revisionId", revisionId); param.Add("@addDrafts", addDrafts); var newArtifactEvents = (await ConnectionWrapper.QueryAsync <SqlWorkflowNewArtifactEvent>("GetWorkflowEventTriggersForNewArtifact", param, commandType: CommandType.StoredProcedure)).ToList(); var eventTriggers = new WorkflowEventTriggers(); newArtifactEvents.Where(n => n != null).ForEach(n => { eventTriggers.AddRange(ToWorkflowTriggers(SerializationHelper.FromXml <XmlWorkflowEventTriggers>(n.Triggers), userId)); }); return(GetWorkflowTriggersContainer(eventTriggers)); }
private WorkflowEventTriggers ToWorkflowTriggers(XmlWorkflowEventTriggers xmlWorkflowEventTriggers, int currentUserId) { WorkflowEventTriggers triggers = new WorkflowEventTriggers(); if (xmlWorkflowEventTriggers == null || xmlWorkflowEventTriggers.Triggers == null) { return(triggers); } triggers.AddRange(xmlWorkflowEventTriggers.Triggers.Select(xmlWorkflowEventTrigger => new WorkflowEventTrigger { Name = xmlWorkflowEventTrigger.Name, Condition = new WorkflowEventCondition(), Action = GenerateAction(xmlWorkflowEventTrigger.Action, currentUserId) })); return(triggers); }