public async Task ExecuteAsync(ArchiveProjectRequest request) { //TODO: check if user allowed to archive this project var project = await _context.Projects.FindAsync(request.ProjectId); if (project != null && !project.Archived) { project.Archived = true; await _context.SaveChangesAsync(); } }
public async Task <IActionResult> ArchiveProjectAsync([FromBody] ArchiveProjectRequest request, [FromServices] IArchiveProjectCommand command) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!request.Confirm) { return(BadRequest($"Cannot archive project with id {request.ProjectId}. Operation requires confirmation")); } await command.ExecuteAsync(request); return(NoContent()); }