public async Task <ActionResult> AdvanceStep([FromRoute] int id, string comments) { var workflowId = Context.Ticket.Where(t => t.Id == id && t.WorkflowId.HasValue) .Select(t => t.WorkflowId.Value) .FirstOrDefault(); var workflowDetails = await WorkflowService.GetWorkflowDetailsAsync(workflowId); // TODO: Resolve this problem if (workflowDetails?.StatusId != (int)WorkflowStatuses.WaitingSettlement) { return(BadRequest()); } await WorkflowService.ApproveAsync(workflowId, User.Identity.Name, comments ?? ""); return(Ok()); }
public async Task <ActionResult> Approve([FromServices] EventBus eventBus, int id, string comments) { var workflowId = Context.Ticket.Where(t => t.Id == id && t.WorkflowId.HasValue) .Select(t => t.WorkflowId.Value) .FirstOrDefault(); var previousStatus = await WorkflowService.GetWorkflowDetailsAsync(workflowId); var isFinished = await WorkflowService.ApproveAsync(workflowId, User.Identity.Name, comments); eventBus.Dispatch(new TicketStatusChangedEvent(id, isApproved: true, previousStatus: previousStatus.StatusDescription, comments: comments, user: User.Identity.Name)); return(Ok()); }