public async Task <ActionResult> ShareTask(Guid id, string username) { var taskDetailsQuery = new TaskDetailsQuery(id); var task = await Mediator.Send(taskDetailsQuery); if (task == null) { return(NotFound("Task not found")); } var loggedUserQuery = new LoggedUserQuery(); User loggedUser = await Mediator.Send(loggedUserQuery); var getUserQuery = new GetUserQuery(username); User sharedWithUser = await Mediator.Send(getUserQuery); if (sharedWithUser == null) { return(NotFound("User to share the task with not found.")); } else if (task.UserTask.SharedWithId != null) { return(BadRequest("The task is shared already.")); } var shareTaskCommand = new ShareTaskCommand(task, loggedUser.Id, sharedWithUser); await Mediator.Send(shareTaskCommand); return(NoContent()); }
public async Task <ActionResult <DelegatedTaskViewModel> > TaskDetails(Guid id) { var taskDetailsQuery = new TaskDetailsQuery(id); var task = await Mediator.Send(taskDetailsQuery); if (task == null) { return(BadRequest("Task not found")); } return(Mapper.Map <DelegatedTask, DelegatedTaskViewModel>(task)); }
public async Task <ActionResult> FinishTask(Guid id) { var taskDetailsQuery = new TaskDetailsQuery(id); var task = await Mediator.Send(taskDetailsQuery); if (task == null) { return(NotFound("Task not found")); } var finishTask = new FinishTaskCommand(task); await Mediator.Send(finishTask); return(NoContent()); }
public async Task <ActionResult> EditTask([CustomizeValidator(Interceptor = typeof(API.Middleware.ValidatorInterceptor))] DelegatedTaskViewModel task) { var taskDetailsQuery = new TaskDetailsQuery(task.Id); var taskQuery = await Mediator.Send(taskDetailsQuery); if (taskQuery == null) { return(BadRequest("Task not found")); } var editTaskCommand = new EditTaskCommand(taskQuery, task.Type, task.Deadline, task.Notes); await Mediator.Send(editTaskCommand); return(NoContent()); }
public async Task <ActionResult> DeleteTask(Guid id) { var taskDetailsQuery = new TaskDetailsQuery(id); var task = await Mediator.Send(taskDetailsQuery); if (task == null) { return(NotFound("Task not found")); } var loggedUserQuery = new LoggedUserQuery(); User user = await Mediator.Send(loggedUserQuery); var deleteTaskCommand = new DeleteTaskCommand(user.UserName, task); await Mediator.Send(deleteTaskCommand); return(NoContent()); }