public async Task <IActionResult> Post(string eventName, string eventKey, [FromBody] Approval approvalData)
        {
            _logger.LogInformation("Event: {eventName}, {eventKey}", eventName, eventKey);
            await _workflowService.PublishEvent(eventName, eventKey, approvalData.ApprovalStatus);

            return(Ok());
        }
        private bool InitializeStep(WorkflowInstance workflow, WorkflowStep step, WorkflowExecutorResult wfResult, WorkflowDefinition def, ExecutionPointer pointer)
        {
            switch (step.InitForExecution(wfResult, def, workflow, pointer))
            {
            case ExecutionPipelineDirective.Defer:
                return(false);

            case ExecutionPipelineDirective.EndWorkflow:
                workflow.Status       = WorkflowStatus.Complete;
                workflow.CompleteTime = _datetimeProvider.Now.ToUniversalTime();
                _workflowController.PublishEvent("WorkFlowEnded", workflow.Id, null);
                return(false);
            }

            if (pointer.Status != PointerStatus.Running)
            {
                pointer.Status = PointerStatus.Running;
                _publisher.PublishNotification(new StepStarted()
                {
                    EventTimeUtc         = _datetimeProvider.Now,
                    Reference            = workflow.Reference,
                    ExecutionPointerId   = pointer.Id,
                    StepId               = step.Id,
                    WorkflowInstanceId   = workflow.Id,
                    WorkflowDefinitionId = workflow.WorkflowDefinitionId,
                    Version              = workflow.Version
                });
            }

            if (!pointer.StartTime.HasValue)
            {
                pointer.StartTime = _datetimeProvider.Now.ToUniversalTime();
            }

            return(true);
        }
Example #3
0
 public Task PublishEvent(string eventName, string eventKey, object eventData, DateTime?effectiveDate = null)
 {
     return(_workflowController.PublishEvent(eventName, eventKey, eventData, effectiveDate));
 }
Example #4
0
        public async Task Post(string name, string key, [FromBody] object data)
        {
            await _workflowController.PublishEvent(name, key, data);

            Response.StatusCode = 204;
        }
Example #5
0
        public async Task <IActionResult> Post(string eventName, string eventKey, [FromBody] object eventData)
        {
            await _workflowService.PublishEvent(eventName, eventKey, eventData);

            return(Ok());
        }
        public async Task <IActionResult> Post(string eventName, string eventKey, string doc)
        {
            await _workflowService.PublishEvent(eventName, eventKey, doc);

            return(Ok());
        }