/// <summary> /// Создает выполняемую задачу из запланированной задачи из бд. /// </summary> /// <param name="workflowTaskEvent">Запланированная задача из бл.</param> /// <returns>Выполняемая задача.</returns> public static WorkflowAutoExecutionEventObject ConstructFrom(WorkflowTaskQueue workflowTaskEvent) { var workflowEventObject = new WorkflowAutoExecutionEventObject { EventName = workflowTaskEvent.WorkflowEventKey, WorkflowTaskEvent = workflowTaskEvent }; if (workflowTaskEvent.IsRequestEvent) { workflowEventObject.EventAction = ProcessRequestWorkflowEvent; } else if (workflowTaskEvent.IsContractEvent) { workflowEventObject.EventAction = ProcessContractWorkflowEvent; } else if (workflowTaskEvent.IsProtectionDocEvent) { workflowEventObject.EventAction = ProcessProtectionDocumentWorkflowEvent; } return(workflowEventObject); }
/// <summary> /// Проверяет, есть ли в словаре указанная задача. /// </summary> /// <param name="eventObject">Выполняемая задача.</param> public static bool ContainsEvent(WorkflowAutoExecutionEventObject eventObject) { return(AutoExecutionEvents.Select(a => a.Value.WorkflowTaskEvent) .Any(e => e.Id == eventObject.WorkflowTaskEvent.Id)); }
/// <summary> /// Добавляет задачу в словарь задач и запускает ее. /// </summary> /// <param name="autoExecutionEventObject">Выполняемая задача.</param> public static void AddEvent(WorkflowAutoExecutionEventObject autoExecutionEventObject) { AutoExecutionEvents.GetOrAdd(autoExecutionEventObject.EventName, autoExecutionEventObject); autoExecutionEventObject.StartEventExecution(); }