public IActionResult GetTaskComments([FromQuery] int?taskId) { if (taskId == null) { return(BadRequest("Task ID is required!")); } var task = _context .TicketTasks .Include(x => x.User) .FirstOrDefault(x => x.Id == taskId); if (task == null) { return(NotFound("Task with such id doesn't exists!")); } var role = StaticHelper.GetCurrentRole(User); if (!StaticHelper.CheckTaskByRole(role, task, User.Identity.Name, _context)) { return(BadRequest()); } var taskComments = IncludeAllComments().Where(x => x.TaskId == taskId); return(new JsonResult(taskComments)); }
public async Task <IActionResult> GetTaskComment([FromRoute] int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var taskComment = await IncludeAllComments().FirstOrDefaultAsync(x => x.Id == id); if (taskComment == null) { return(NotFound()); } var role = StaticHelper.GetCurrentRole(User); if (!StaticHelper.CheckTaskByRole(role, taskComment.TicketTask, User.Identity.Name, _context)) { return(BadRequest()); } return(new JsonResult(taskComment)); }
public async Task <IActionResult> PostTaskComment([FromBody] TaskComment taskComment) { if (taskComment.TaskId == 0) { return(BadRequest("Task required!")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var role = StaticHelper.GetCurrentRole(User); var task = await _context.TicketTasks.FirstOrDefaultAsync(x => x.Id == taskComment.TaskId); if (task == null) { return(BadRequest()); } if (!StaticHelper.CheckTaskByRole(role, task, User.Identity.Name, _context)) { return(BadRequest()); } var user = await _context.Users.FirstOrDefaultAsync(x => x.Email == User.Identity.Name); if (user == null) { return(BadRequest()); } taskComment.UserId = user.Id; _context.TaskComments.Add(taskComment); await _context.SaveChangesAsync(); await StaticHelper.RaiseEvent(EventTypes.TaskCommented, task, _context); return(CreatedAtAction("GetTaskComment", new { id = taskComment.Id }, taskComment)); }