/// <summary> /// Send a request, with retry /// </summary> protected ResponseEx Send(RequestFluent request) { // send var response = request.Send(); // if failed if (response.StatusHttp == HttpStatusCode.InternalServerError) { // retry response = request.Send(); } return(response); }
/// <summary> /// Send a request, with retry /// </summary> protected ResponseEx Send <TContent>(RequestFluent request, TContent content, HttpVerb verb = HttpVerb.Post) where TContent : class { // set the verb request.Verb(verb); // send var response = request.SendAsJson(content); // if failed if (response.StatusHttp == HttpStatusCode.InternalServerError) { // retry response = request.SendAsJson(content); } return(response); }
/// <summary> /// Create a request /// </summary> protected RequestReport CreateRequest(out RequestFluent request, string endpoint) { RequestReport result = null; request = null; // if we have a valid root uri if (UriRoot != null) { // if we have a given url if (!string.IsNullOrEmpty(endpoint)) { try { // combine the urls endpoint = new Uri(UriRoot, new Uri(endpoint, UriKind.Relative)).ToString(); // if we got a provider if (this._provider != null) { request = this._provider.CreateRequest(endpoint); } // if no provided else { request = RequestFluent.Create(endpoint); } } catch (Exception exc) { // error result = new RequestReport { Code = "Api.Client.CreateRequest.Exception", Message = "ProAbono client library internal error - " + exc.Message, Exception = exc.ToString() }; } } // if no url else { // error result = new RequestReport { Code = "Api.Client.CreateRequest.NoEndpoint", Message = "ProAbono client library internal error suspected - Endpoint is missing" }; } } // if no root URI else { // error result = new RequestReport { Code = "Api.Client.CreateRequest.NoRootUrl", Message = "Configuration error suspected - ProAbono API root url not found" }; } return(result); }