public async Task <JsonResult> GetTaskItem(Guid?id) { TaskItemModel model = new TaskItemModel(); try { TaskItemDto dto = null; if (id.HasValue) { dto = await _taskItemService.GetById(id.Value); if (dto == null) { var rs = SendMessageResponse.CreateFailedResponse("NotExist"); return(Json(rs, JsonRequestBehavior.AllowGet)); } if (dto.CreatedBy != CurrentUser.Id && !CurrentUser.HavePermission(EnumModulePermission.Task_FullControl)) { var rs = SendMessageResponse.CreateFailedResponse("AccessDenied"); return(Json(rs, JsonRequestBehavior.AllowGet)); } } else { dto = new TaskItemDto { AssignBy = CurrentUser.Id, AssignByFullName = CurrentUser.FullName }; dto.TaskItemAssigns.Add(new TaskItemAssignDto { AssignToFullName = CurrentUser.FullName, AssignToJobTitleName = CurrentUser.Departments != null ? CurrentUser.Departments[0].JobTitle : string.Empty, Department = CurrentUser.Departments != null ? CurrentUser.Departments[0].Name : string.Empty, AssignTo = CurrentUser.Id, TaskType = Entities.TaskType.Primary }); } model = _mapper.Map <TaskItemModel>(dto); } catch (Exception ex) { _loggerServices.WriteError(ex.ToString()); } return(Json(model, JsonRequestBehavior.AllowGet)); }