예제 #1
0
        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));
        }
예제 #2
0
        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);
        }