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));
        }