Exemple #1
0
 public ForteException()
 {
     ForteError = new ForteError();
 }
Exemple #2
0
 public ForteException(HttpStatusCode httpStatusCode, ForteError forteError, string message)
     : base(message)
 {
     HttpStatusCode = httpStatusCode;
     ForteError     = forteError;
 }
        internal static RequestorResponse GetResponse(String URL, String method, string requestBody, string username, string password, string authOrganizationId)
        {
            HttpResponseMessage response;

            using (var client = new HttpClient())
            {
                string authHeaderText = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", username, password)));
                client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", authHeaderText);
                client.DefaultRequestHeaders.Add("x-forte-auth-organization-id", authOrganizationId);

                StringContent content = new System.Net.Http.StringContent(requestBody, Encoding.UTF8, "application/json");
                try
                {
                    switch ((method).ToUpper())
                    {
                    default:
                    case "GET":
                        response = client.GetAsync(URL).Result;
                        break;

                    case "POST":
                        response = client.PostAsync(URL, content).Result;
                        break;

                    case "PUT":
                        response = client.PutAsync(URL, content).Result;
                        break;

                    case "DELETE":
                        response = client.DeleteAsync(URL).Result;
                        break;
                    }
                }
                catch (AggregateException webException)
                {
                    if (webException.Data != null)
                    {
                        var forteError = new ForteError();
                        forteError.ErrorType = "AggregateException";
                        forteError.Message   = webException.InnerException.ToString();
                        var statusCode = HttpStatusCode.Forbidden;
                        throw new ForteException(statusCode, forteError, forteError.Message);
                    }

                    throw;
                }
                catch (WebException webException)
                {
                    if (webException.Response != null)
                    {
                        var statusCode = ((HttpWebResponse)webException.Response).StatusCode;

                        var forteError = new ForteError();

                        if (webException.Response.ResponseUri.ToString().Contains("oauth"))
                        {
                            forteError = Mapper <ForteError> .MapFromJson(ReadStream(webException.Response.GetResponseStream()));
                        }
                        else
                        {
                            forteError = Mapper <ForteError> .MapFromJson(ReadStream(webException.Response.GetResponseStream()), "error");
                        }

                        throw new ForteException(statusCode, forteError, forteError.Message);
                    }

                    throw;
                }
                catch (Exception ex)
                {
                    throw ex;
                }


                RequestorResponse requestorResponse = new RequestorResponse();

                if (response != null && response.IsSuccessStatusCode)
                {
                    requestorResponse.Content    = response.Content.ReadAsStringAsync().Result;
                    requestorResponse.StatusCode = response.StatusCode;

                    switch ((method).ToUpper())
                    {
                    case "POST":
                        requestorResponse.Message = "Record Successfully.";
                        break;

                    case "PUT":
                        requestorResponse.Message = "Record Successfully Updated.";
                        break;

                    case "DELETE":
                        requestorResponse.Message = "Record Successfully Deleted.";
                        break;

                    default:
                        break;
                    }
                    return(requestorResponse);
                }
                else if (response != null && !(response.IsSuccessStatusCode))
                {
                    requestorResponse.Content    = response.Content.ReadAsStringAsync().Result;
                    requestorResponse.StatusCode = response.StatusCode;
                    requestorResponse.Message    = "#ERROR#";
                    return(requestorResponse);
                }
                else
                {
                    requestorResponse.Content = response.Content.ReadAsStringAsync().Result;
                    requestorResponse.Message = "#ERROR#";
                    return(requestorResponse);
                }
            }
        }