public async Task <IActionResult> Put([FromBody] TicketModificationViewModel model) { var issue = await Db.GetIssueAsync(model.Id, GetUserId(), false); if (issue == null) { return(NotFound()); } // clone the issue before altering it var oldIssue = issue.Clone(); issue.Body = model.Body; issue.Subject = model.Subject; var success = await Db.UpdateIssueAsync(issue, CurrentUserId, newStatus : TicketStatus.Unchanged, save : true); if (success) { var cmt = await Db.AddSysCommentAsync(TicketUpdated, issue.Id); await Db.AddFileAttachementAsync(oldIssue, cmt.Id, CurrentUserId); await EventLogger.LogAsync(SysEventType.IssueUpdated, CurrentUserId, issue, oldIssue); } return(new OkObjectResult(success ? TicketUpdated : TicketNotUpdated)); }