public ActionResult Approve(IssueModel model)
        {
            var issue = _issueRepository.GetById(model.Id);

            Validate(model, issue, WorkflowActionName.Approve);
            if (ModelState.IsValid)
            {
                issue = model.ToEntity(issue);

                if (issue.IsNew == true)
                {
                    string number = _autoNumberService.GenerateNextAutoNumber(_dateTimeHelper.ConvertToUserTime(DateTime.UtcNow, DateTimeKind.Utc), issue);
                    issue.Number = number;
                }

                //always set IsNew to false when saving
                issue.IsNew = false;
                //update attributes
                _issueRepository.Update(issue);

                //commit all changes in UI
                this._dbContext.SaveChanges();

                //approve
                _issueService.Approve(issue);

                //notification
                SuccessNotification(_localizationService.GetResource("Record.Saved"));
                return(Json(new { number = issue.Number, isApproved = issue.IsApproved }));
            }
            else
            {
                return(Json(new { Errors = ModelState.SerializeErrors() }));
            }
        }