public async Task <IActionResult> DeleteAProvince([FromRoute] string province) { if (String.IsNullOrEmpty(province)) { var error = new BadRequestException("Province cannot be null or empty"); return(StatusCode(StatusCodes.Status400BadRequest, new CustomException <BadRequestException>(error).GetException())); } try { var deleted = await locationsRepository.DeleteAProvince(province); if (deleted == null) { var error = new NotFoundException("The given province cannot be found on database"); return(StatusCode(StatusCodes.Status404NotFound, new CustomException <NotFoundException>(error).GetException())); } var response = new DeletedResponse <string>(deleted, $"Successfully deleted location '{deleted}'"); 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())); } } }