public async Task <int> CreateAsync(IssueViewModel model) { if (model == null) { throw new ArgumentNullException("model"); } var issue = Issue.Create(_userContext.UserName); issue.Title = model.Title; issue.Description = model.Description; if (!string.IsNullOrWhiteSpace(model.Assignee)) { issue.Assignee = model.Assignee; } this._context.Issues.Add(issue); await this._context.SaveChangesAsync(); // await this._messageBus.PublishAsync(WorkItemMessage.Create( // IssueTrackingWorkflow.ASSIGN_TRIGGER, // issue.Id, // issue.Type // )); return(issue.Id); }
private IssueViewModel ToViewModel(Issue issue) { var viewModel = new IssueViewModel { Id = issue.Id, Trigger = string.Empty, Assignee = issue.Assignee, Title = issue.Title, Description = issue.Description }; return(viewModel); }
public async Task <IWorkflowResult <AssigneeWorkflowResult> > ProcessAsync(IssueViewModel model) { var issue = await FindOrCreate(model.Id); var triggerParam = new TriggerParam(model.Trigger, issue) .AddVariableWithKey <IssueViewModel>(model); var triggerResult = await this._workflowEngine.TriggerAsync(triggerParam); var info = await this._workflowEngine.ToWorkflowTriggerInfo(issue, triggerResult); var viewModel = new AssigneeWorkflowResult(issue.Assignee); return(new WorkflowResult <Issue, AssigneeWorkflowResult>(info, issue, viewModel)); }
public async Task <IWorkflowResult <IssueViewModel> > NewAsync() { var issue = Issue.Create(_userContext.UserName); var triggerParam = new TriggerParam(IssueTrackingWorkflow.ASSIGN_TRIGGER, issue); var triggerResult = await this._workflowEngine.CanTriggerAsync(triggerParam); var info = await this._workflowEngine.ToWorkflowTriggerInfo(issue, triggerResult); var viewModel = new IssueViewModel(); var result = new WorkflowResult <Issue, IssueViewModel>(info, issue, viewModel); return(await Task.FromResult <IWorkflowResult <IssueViewModel> >(result)); }
public async Task <IActionResult> Process([FromBody] IssueViewModel model) { if (model == null) { return(BadRequest()); } if (!this.ModelState.IsValid) { return(BadRequest(this.ModelState)); } var result = await this._service.ProcessAsync(model); return(Ok(result)); }
public async Task <IActionResult> Post([FromBody] IssueViewModel model) { if (model == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var result = await _service.CreateAsync(model); return(Created($"api/issue/{result}", result)); }
public async Task <int> CreateAsync(IssueViewModel model) { if (model == null) { throw new ArgumentNullException("model"); } var issue = Issue.Create(_userContext.UserName); issue.Title = model.Title; issue.Description = model.Description; this._context.Issues.Add(issue); await this._context.SaveChangesAsync(); // WorkItem wi = WorkItem.Create(IssueTrackingWorkflow.ASSIGN_TRIGGER, issue.Id, issue.Type); // await this._messageBus.PublishAsync(wi); return(issue.Id); }