Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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));
        }