public async Task <IActionResult> DeleteAProject([FromRoute] string projectNumber) { if (String.IsNullOrEmpty(projectNumber)) { var error = new BadRequestException("The given project number is null/empty"); return(StatusCode(StatusCodes.Status400BadRequest, new CustomException <BadRequestException>(error).GetException())); } try { var deletedCount = await projectsRepository.DeleteAProject(projectNumber); if (deletedCount != 1) { var error = new NotFoundException("The given project number cannot be found on database"); return(StatusCode(StatusCodes.Status404NotFound, new CustomException <NotFoundException>(error).GetException())); } var response = new DeletedResponse <string>(projectNumber, $"Successfully deleted project with number '{projectNumber}'"); return(StatusCode(StatusCodes.Status200OK, response)); } catch (Exception err) { var errMessage = $"Source: {err.Source}\n Message: {err.Message}\n StackTrace: {err.StackTrace}\n"; if (err is SqlException) { var error = new InternalServerException(errMessage); return(StatusCode(StatusCodes.Status500InternalServerError, new CustomException <InternalServerException>(error).GetException())); } else { var error = new BadRequestException(errMessage); return(StatusCode(StatusCodes.Status400BadRequest, new CustomException <BadRequestException>(error).GetException())); } } }
public async Task <ActionResult <Project> > DeleteAProject([FromRoute] string project) { var response = await projectsRepository.DeleteAProject(project); var viewModel = mapper.Map <Project>(response); return(Ok(viewModel)); }