コード例 #1
0
        protected virtual IRestResponse SendAPICommand <T>(ICrewChiefRequest request)
        {
            var client     = new RestClient(ApiBaseUrl);
            var apiRequest = new RestRequest(ApiEndpoint, ApiMethod);

            return(client.Execute(apiRequest));
        }
コード例 #2
0
        public virtual void SendRequest(ICrewChiefRequest request)
        {
            var handler  = ApiRequestHandlerFactory.GetHandler(request.MessageType);
            var response = handler.HandleRequest(request);

            OnCrewChiefResponse(response);
        }
コード例 #3
0
        public virtual void SendRequest(ICrewChiefRequest request)
        {
            var handler = ApiRequestHandlerFactory.GetHandler(request.MessageType);
            var response = handler.HandleRequest(request);

            OnCrewChiefResponse(response);
        }
コード例 #4
0
        public ICrewChiefResponse HandleRequest(ICrewChiefRequest request)
        {
            ICrewChiefDataSampleResponse response = new DataSampleResponse();
            try
            {
                HttpClient client = new HttpClient();
                client.BaseAddress = new Uri(ApiBaseUrl);

                client.DefaultRequestHeaders.Accept.Add(
                    new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage httpResponse = client.GetAsync(ApiEndpoint).Result;

                if (httpResponse.IsSuccessStatusCode)
                {
                    var sample = httpResponse.Content.ReadAsStringAsync().Result;
                    response.StatusCode = (int)httpResponse.StatusCode;
                    response.IsSuccess = true;
                    response.Data = JsonConvert.DeserializeObject<DataSample>(sample);
                }

            }
            catch (Exception ex)
            {
                response.IsSuccess = false;
                response.ErrorMessage = ex.Message;
            }
            return response;
        }
コード例 #5
0
        public ICrewChiefResponse HandleRequest(ICrewChiefRequest request)
        {
            ICrewChiefDataSampleResponse response = new DataSampleResponse();

            try
            {
                HttpClient client = new HttpClient();
                client.BaseAddress = new Uri(ApiBaseUrl);

                client.DefaultRequestHeaders.Accept.Add(
                    new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage httpResponse = client.GetAsync(ApiEndpoint).Result;

                if (httpResponse.IsSuccessStatusCode)
                {
                    var sample = httpResponse.Content.ReadAsStringAsync().Result;
                    response.StatusCode = (int)httpResponse.StatusCode;
                    response.IsSuccess  = true;
                    response.Data       = JsonConvert.DeserializeObject <DataSample>(sample);
                }
            }
            catch (Exception ex)
            {
                response.IsSuccess    = false;
                response.ErrorMessage = ex.Message;
            }
            return(response);
        }
コード例 #6
0
        protected virtual IRestResponse <T> SendAPIRequest <T>(ICrewChiefRequest request)
            where T : new()
        {
            var client = new RestClient(ApiBaseUrl);

            client.Timeout = 10000;
            var apiRequest = new RestRequest(ApiEndpoint, ApiMethod);

            var responseObj = client.Execute <T>(apiRequest);

            return(responseObj);
        }
コード例 #7
0
        public ICrewChiefResponse HandleRequest(ICrewChiefRequest request)
        {
            ICrewChiefDriversListResponse response = new DriversListResponse();

            try
            {
                var apiResponse = SendAPIRequest <List <DriverModel> >(request);

                response.StatusCode = (int)apiResponse.StatusCode;

                switch (apiResponse.StatusCode)
                {
                case HttpStatusCode.OK:
                {
                    response.IsSuccess = true;
                    response.Drivers   = apiResponse.Data;
                    break;
                }

                case HttpStatusCode.NoContent:
                {
                    response.IsSuccess    = false;
                    response.ErrorMessage = "iRacing is not running.";
                    break;
                }

                default:
                {
                    response.IsSuccess = false;
                    if (null != apiResponse.ErrorException)
                    {
                        response.ErrorMessage = apiResponse.ErrorException.Message;
                    }
                    else if (null != apiResponse.ErrorMessage)
                    {
                        response.ErrorMessage = apiResponse.ErrorMessage;
                    }
                    else
                    {
                        response.ErrorMessage = String.Format("Server returned {0}\r\n{1}", apiResponse.StatusDescription, apiResponse.Content);
                    }
                    break;
                }
                }
            }
            catch (Exception ex)
            {
                response.IsSuccess    = false;
                response.ErrorMessage = ex.Message;
            }
            return(response);
        }
コード例 #8
0
        public ICrewChiefResponse HandleRequest(ICrewChiefRequest request)
        {
            ICrewChiefDriversListResponse response = new DriversListResponse();
            try
            {
                var apiResponse = SendAPIRequest<List<DriverModel>>(request);

                response.StatusCode = (int)apiResponse.StatusCode;

                switch (apiResponse.StatusCode)
                {
                    case HttpStatusCode.OK:
                        {
                            response.IsSuccess = true;
                            response.Drivers = apiResponse.Data;
                            break;
                        }
                    case HttpStatusCode.NoContent:
                        {
                            response.IsSuccess = false;
                            response.ErrorMessage = "iRacing is not running.";
                            break;
                        }
                    default:
                        {
                            response.IsSuccess = false;
                            if (null != apiResponse.ErrorException)
                            {
                                response.ErrorMessage = apiResponse.ErrorException.Message;
                            }
                            else if (null != apiResponse.ErrorMessage)
                            {
                                response.ErrorMessage = apiResponse.ErrorMessage;
                            }
                            else
                            {
                                response.ErrorMessage = String.Format("Server returned {0}\r\n{1}", apiResponse.StatusDescription, apiResponse.Content);
                            }
                            break;
                        }
                }

            }
            catch (Exception ex)
            {
                response.IsSuccess = false;
                response.ErrorMessage = ex.Message;
            }
            return response;
        }
コード例 #9
0
 public ICrewChiefResponse HandleRequest(ICrewChiefRequest request)
 {
     ICrewChiefAuthResponse response = new AuthResponse();
     try
     {
         response.AuthToken = Guid.NewGuid().ToString();
     }
     catch (Exception ex)
     {
         response.IsSuccess = false;
         response.ErrorMessage = ex.Message;
         response.ResponseData = ex.ToString();
     }
     return response;
 }
コード例 #10
0
 public ICrewChiefResponse HandleRequest(ICrewChiefRequest request)
 {
     ICrewChiefServerStateResponse response = new ServerStateResponse();
     try
     {
         response.ServerState = "true";// iRacingSDKConnection.IsConnected;
     }
     catch (Exception ex)
     {
         response.IsSuccess = false;
         response.ErrorMessage = ex.Message;
         response.ResponseData = ex.ToString();
     }
     return response;
 }
コード例 #11
0
        public ICrewChiefResponse HandleRequest(ICrewChiefRequest request)
        {
            ICrewChiefServerStateResponse response = new ServerStateResponse();

            try
            {
                response.ServerState = "true";// iRacingSDKConnection.IsConnected;
            }
            catch (Exception ex)
            {
                response.IsSuccess    = false;
                response.ErrorMessage = ex.Message;
                response.ResponseData = ex.ToString();
            }
            return(response);
        }
コード例 #12
0
        public ICrewChiefResponse HandleRequest(ICrewChiefRequest request)
        {
            ICrewChiefAuthResponse response = new AuthResponse();

            try
            {
                response.AuthToken = Guid.NewGuid().ToString();
            }
            catch (Exception ex)
            {
                response.IsSuccess    = false;
                response.ErrorMessage = ex.Message;
                response.ResponseData = ex.ToString();
            }
            return(response);
        }
コード例 #13
0
 public ICrewChiefResponse HandleRequest(ICrewChiefRequest request)
 {
     ICrewChiefDataSampleResponse response = new DataSampleResponse();
     try
     {
         var socketResponse = base.SendRequest(request.MessageType.ToString());
         response.ResponseData = socketResponse;
         response.Data = JsonConvert.DeserializeObject<DataSample>(socketResponse);
         response.MessageType = request.MessageType;
         response.StatusCode = 200;
         response.IsSuccess = true;
     }
     catch (Exception ex)
     {
         response.IsSuccess = false;
         response.ErrorMessage = ex.ToString();
     }
     return response;
 }
コード例 #14
0
        public ICrewChiefResponse HandleRequest(ICrewChiefRequest request)
        {
            ICrewChiefDataSampleResponse response = new DataSampleResponse();

            try
            {
                var socketResponse = base.SendRequest(request.MessageType.ToString());
                response.ResponseData = socketResponse;
                response.Data         = JsonConvert.DeserializeObject <DataSample>(socketResponse);
                response.MessageType  = request.MessageType;
                response.StatusCode   = 200;
                response.IsSuccess    = true;
            }
            catch (Exception ex)
            {
                response.IsSuccess    = false;
                response.ErrorMessage = ex.ToString();
            }
            return(response);
        }
コード例 #15
0
        public ICrewChiefResponse HandleRequest(ICrewChiefRequest request)
        {
            ICrewChiefDataSampleResponse response = new DataSampleResponse();
            try
            {

                //var apiResponse = SendAPIRequest<Data>(request);
                var apiResponse = SendAPIRequest(request);

                response.StatusCode = (int)apiResponse.StatusCode;
                switch (apiResponse.StatusCode)
                {
                    case HttpStatusCode.OK:
                        {
                            response.IsSuccess = true;
                            var jsonContent = apiResponse.Content;

                            response.Data = JsonConvert.DeserializeObject<DataSampleModel>(jsonContent);

                            // JsonConvert.DeserializeObject<SessionData>(apiResponse.Data);
                            //response.SessionData = new SessionData() { Raw = apiResponse.Content };
                            //response.SessionData = apiResponse.Data;

                            //var sessionInfoString = apiResponse.Content.Replace("\\r\\n", "\\n");
                            //var input = new StringReader(sessionInfoString);
                            //var deserializer = new Deserializer();

                            //var result = (SessionData)deserializer.Deserialize(input, typeof(SessionData));

                            //response.SessionData = result;
                            //var cleaned = apiResponse.Content.TrimEnd('"').Substring(1).Replace("\r\n","").Replace(@"\","");
                            //response.Data = JsonConvert.DeserializeObject<Data>(cleaned);

                            break;
                        }
                    case HttpStatusCode.NoContent:
                        {
                            response.IsSuccess = false;
                            response.ErrorMessage = "iRacing is not running.";
                            break;
                        }
                    default:
                        {
                            response.IsSuccess = false;
                            if (null != apiResponse.ErrorException)
                            {
                                response.ErrorMessage = apiResponse.ErrorException.Message;
                            }
                            else if (null != apiResponse.ErrorMessage)
                            {
                                response.ErrorMessage = apiResponse.ErrorMessage;
                            }
                            else
                            {
                                response.ErrorMessage = String.Format("Server returned {0}\r\n{1}", apiResponse.StatusDescription, apiResponse.Content);
                            }
                            break;
                        }
                }

            }
            catch (Exception ex)
            {
                response.IsSuccess = false;
                response.ErrorMessage = ex.Message;
            }
            return response;
        }
コード例 #16
0
        public ICrewChiefResponse HandleRequest(ICrewChiefRequest request)
        {
            ICrewChiefDataSampleResponse response = new DataSampleResponse();

            try
            {
                //var apiResponse = SendAPIRequest<Data>(request);
                var apiResponse = SendAPIRequest(request);

                response.StatusCode = (int)apiResponse.StatusCode;
                switch (apiResponse.StatusCode)
                {
                case HttpStatusCode.OK:
                {
                    response.IsSuccess = true;
                    var jsonContent = apiResponse.Content;

                    response.Data = JsonConvert.DeserializeObject <DataSampleModel>(jsonContent);

                    // JsonConvert.DeserializeObject<SessionData>(apiResponse.Data);
                    //response.SessionData = new SessionData() { Raw = apiResponse.Content };
                    //response.SessionData = apiResponse.Data;


                    //var sessionInfoString = apiResponse.Content.Replace("\\r\\n", "\\n");
                    //var input = new StringReader(sessionInfoString);
                    //var deserializer = new Deserializer();

                    //var result = (SessionData)deserializer.Deserialize(input, typeof(SessionData));

                    //response.SessionData = result;
                    //var cleaned = apiResponse.Content.TrimEnd('"').Substring(1).Replace("\r\n","").Replace(@"\","");
                    //response.Data = JsonConvert.DeserializeObject<Data>(cleaned);

                    break;
                }

                case HttpStatusCode.NoContent:
                {
                    response.IsSuccess    = false;
                    response.ErrorMessage = "iRacing is not running.";
                    break;
                }

                default:
                {
                    response.IsSuccess = false;
                    if (null != apiResponse.ErrorException)
                    {
                        response.ErrorMessage = apiResponse.ErrorException.Message;
                    }
                    else if (null != apiResponse.ErrorMessage)
                    {
                        response.ErrorMessage = apiResponse.ErrorMessage;
                    }
                    else
                    {
                        response.ErrorMessage = String.Format("Server returned {0}\r\n{1}", apiResponse.StatusDescription, apiResponse.Content);
                    }
                    break;
                }
                }
            }
            catch (Exception ex)
            {
                response.IsSuccess    = false;
                response.ErrorMessage = ex.Message;
            }
            return(response);
        }