internal static IEnumerable <WorkflowRoutesEntry> GetWorkflowTypeRoutesEntries(WorkflowType workflowType, IActivityLibrary activityLibrary) { return(workflowType.Activities.Where(x => x.IsStart && x.Name == HttpRequestFilterEvent.EventName).Select(x => { var activity = activityLibrary.InstantiateActivity <HttpRequestFilterEvent>(x); var entry = new WorkflowRoutesEntry { WorkflowId = workflowType.Id.ToString(), ActivityId = x.ActivityId, HttpMethod = activity.HttpMethod, RouteValues = activity.RouteValues }; return entry; })); }
internal static IEnumerable <WorkflowRoutesEntry> GetWorkflowRoutesEntries(WorkflowType workflowType, Workflow workflow, IActivityLibrary activityLibrary) { var awaitingActivityIds = workflow.BlockingActivities.Select(x => x.ActivityId).ToDictionary(x => x); return(workflowType.Activities.Where(x => x.Name == HttpRequestFilterEvent.EventName && awaitingActivityIds.ContainsKey(x.ActivityId)).Select(x => { var activity = activityLibrary.InstantiateActivity <HttpRequestFilterEvent>(x); var entry = new WorkflowRoutesEntry { WorkflowId = workflow.WorkflowId, ActivityId = x.ActivityId, HttpMethod = activity.HttpMethod, RouteValues = activity.RouteValues, }; return entry; })); }