public static async Task <T> GetData <T>(string url, params object[] @params)
        {
            T result = (T)Activator.CreateInstance(typeof(T));

            try
            {
                url = string.Format(url, @params);

                var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
                httpWebRequest.ContentType = "application/json";
                httpWebRequest.Method      = "GET";

                UserApiResult user = UserApiService.GetUserLogged();

                if (user != null)
                {
                    httpWebRequest.Headers["Authorization"] = user.Token;
                }

                httpWebRequest.Headers["X-App-Platform"]     = ((int)AppStatus.Platform).ToString();
                httpWebRequest.Headers["X-App-TimeZone"]     = GetTimeZone();
                httpWebRequest.Headers["X-App-Registration"] = AppStatus.AppRegistration;
                httpWebRequest.Headers["Accept-Language"]    = AppStatus.Language;

                WebResponse httpWebResponse = await httpWebRequest.GetResponseAsync();

                var httpResponse = (HttpWebResponse)httpWebResponse;

                string responseBody = "";

                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    responseBody = streamReader.ReadToEnd();
                }

                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    result = JsonConvert.DeserializeObject <T>(responseBody);
                }
            }
            catch (Exception ex)
            {
                BaseApiResult errorResult = new BaseApiResult();

                errorResult.Message = ex.Message + "|" + ex.StackTrace;
                errorResult.Error   = true;

                result = JsonConvert.DeserializeObject <T>(JsonConvert.SerializeObject(errorResult));
            }

            return(result);
        }
        public static async Task <bool> RegisterPurchase(BuyIntentApiRequest request)
        {
            var result = false;

            var response = await HttpController.PostData <UserApiResult>(ApiMethods.RegisterPurchase(), request);

            if (ResponseValidator.Validate(response))
            {
                result = true;

                UserApiService.SaveUserLogged(response);

                result = true;
            }

            return(result);
        }
示例#3
0
        public static async Task <UserApiResult> Arm(ArmedTrapApiRequest request)
        {
            UserApiResult result = null;

            try
            {
                result = await HttpController.PostData <UserApiResult>(ApiMethods.ArmTrap(), request);

                if (ResponseValidator.Validate(result))
                {
                    UserApiService.SaveUserLogged(result);
                }
            }
            catch (Exception)
            {
                result = null;
            }

            return(result);
        }