protected static RestClientException CreateDefaultException(List <HttpStatusCode> expected, IRestResponse result) { var statusCode = result?.StatusCode; var content = result?.Content; var errorException = result.ErrorException; return(RestClientExceptionUtils.CreateDefaultException(expected, statusCode, content, errorException)); }
private static void ThrowRestClientException(Exception e, HttpWebResponse errorResponse) { var content = (errorResponse?.GetResponseStream() != null) ? new StreamReader(errorResponse.GetResponseStream()).ReadToEnd() : null; throw RestClientExceptionUtils.CreateDefaultException(new List <HttpStatusCode> { HttpStatusCode.OK }, errorResponse?.StatusCode, content, e); }
public override void ValidateResponse(IRestResponse result) { if (result.StatusCode != HttpStatusCode.OK) { var errorResponse = RestClientExceptionUtils.GetDefaultErrorResponse(result?.Content); if (result.StatusCode == HttpStatusCode.Forbidden && errorResponse?.Code == (int)ReturnCode.INVALID_STATE) { throw new FolderNameAlreadyExistsException(); } else if (result.StatusCode == HttpStatusCode.BadRequest && errorResponse?.Code == (int)ReturnCode.INVALID_REQUEST_DATA) { throw new InvalidFolderNameException(); } throw CreateDefaultException(HttpStatusCode.OK, result); } base.ValidateResponse(result); }
public FoldersResponse UnwrapResponse(IRestResponse <FoldersResponse> result) { if (result.StatusCode == HttpStatusCode.NoContent) { #pragma warning disable IDE0017 // Initialisierung von Objekten vereinfachen var foldersResponse = new FoldersResponse(); #pragma warning restore IDE0017 // Initialisierung von Objekten vereinfachen foldersResponse.Folders = new List <Folder>(); return(foldersResponse); } if (result.StatusCode == HttpStatusCode.OK) { return(result.Data); } if (RestClientExceptionUtils.GetDefaultErrorResponse(result?.Content)?.Code == (int)ReturnCode.INVALID_STATE) { throw new FolderParentNotFoundException(); } throw CreateDefaultException(HttpStatusCode.OK, result); }
public FolderCreationResponse UnwrapResponse(IRestResponse <FolderCreationResponse> result) { if (result.StatusCode == HttpStatusCode.Created) { return(result.Data); } if (result.StatusCode == HttpStatusCode.Forbidden) { var error = RestClientExceptionUtils.GetDefaultErrorResponse(result?.Content); if (error != null && error.Code == 300) { if (IsFolderNotFoundException(error)) { throw new FolderParentNotFoundException(); } if (IsFolderAlreadyExistsException(error)) { throw new FolderAlreadyExistsException(); } if (IsMaxNumberOfFoldersInCollectionReachedException(error)) { throw new MaxNumberOfFoldersInCollectionReachedException(); } if (IsMaxDepthOfNestedFoldersExceededException(error)) { throw new MaxDepthOfNestedFoldersExceededException(); } } } throw CreateDefaultException(HttpStatusCode.OK, result); }