Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            IGenericHttpClient <ProductDto> httpClientSample = new CustomHttpClient <ProductDto>();

            IProductService productService = new ProductManager(httpClientSample);

            var products = productService.GetAll();

            var product = productService.GetById(1);

            Console.WriteLine("Http Client Worked...");


            IGenericHttpClient <ProductDto> restClientSample = new CustomRestClient <ProductDto>();

            IProductService productService2 = new ProductManager(restClientSample);

            var products2 = productService2.GetAll();

            var product2 = productService2.GetById(1);

            Console.WriteLine("Rest Client Worked...");


            Console.Read();
        }
Ejemplo n.º 2
0
        public static CustomRestClient Create(string baseUrl, bool includeCookieContainer = false, string sessionId = null, int timeout = 3000)
        {
            var client = new CustomRestClient(baseUrl);

            if (includeCookieContainer)
            {
                client.CookieContainer = new CookieContainer();
            }

            client.SessionId = sessionId;
            client.Timeout   = timeout;
            return(client);
        }
Ejemplo n.º 3
0
        protected static IRestResponse SendRequest(CustomRestClient client, IRestRequest request, bool validateResponse = true)
        {
            var response = client.SendRequest(request);

            if (validateResponse)
            {
                ValidateResponse(response, request.Method);
            }
            else if (response.StatusCode != HttpStatusCode.OK && response.StatusCode != HttpStatusCode.NoContent)
            {
                Console.WriteLine($"Log: Expected OK or NoContent but found {response.StatusCode}");
            }

            return(response);
        }
Ejemplo n.º 4
0
        public T Execute <T>(RestRequest request) where T : new()
        {
            var client = CustomRestClient.CreateClient(this.baseUrl);

            request.AddHeader(Constants.ApiKeyHeader, this.adminApiKey);

            var response = client.Execute <T>(request);

            while (response.StatusCode.Equals(429))
            {
                //we hit rate limit and must wait for 1 second
                Thread.Sleep(1000);
                response = client.Execute <T>(request);
            }
            return(response.StatusCode == HttpStatusCode.OK ? response.Data : new T());
        }
Ejemplo n.º 5
0
        protected static TResultModel SendRequestWithRetry <TResultModel>(CustomRestClient client, IRestRequest request, bool lookForItems = false, int maxRetry = 3, bool validateResponse = true)
        {
            var response = client.SendRequest(request);

            var result = response.DeserializeJsonResponseContent <TResultModel>();

            var retry = 0;

            if (lookForItems)
            {
                while (((dynamic)result).Items.Count == 0 && retry < maxRetry)
                {
                    Thread.Sleep(3000);
                    response = client.SendRequest(request);
                    result   = response.DeserializeJsonResponseContent <TResultModel>();
                    retry++;
                }
            }
            else
            {
                while (result == null && retry < maxRetry)
                {
                    Thread.Sleep(3000);
                    response = client.SendRequest(request);
                    result   = response.DeserializeJsonResponseContent <TResultModel>();
                    retry++;
                }
            }

            if (validateResponse)
            {
                ValidateResponse(response, request.Method);
            }
            else if (response.StatusCode != HttpStatusCode.OK && response.StatusCode != HttpStatusCode.NoContent)
            {
                Console.WriteLine($"Log: Expected OK or NoContent but found {response.StatusCode}");
            }

            return(result);
        }
Ejemplo n.º 6
0
        private void RestSampleCode()
        {
            var serializer = new JsonSerializer();

            var _builder = new RestBuilder("https://jsonplaceholder.typicode.com/users/1");


            PostsRestClient client = new PostsRestClient(new CacheService(), serializer);

            var response = client.GetByID(1);


            CustomRestClient customRestClient = new CustomRestClient(new CacheService(), serializer, "https://jsonplaceholder.typicode.com/users/1");

            var request = _builder
                          .SetFormat(DataFormat.Json)
                          .SetMethod(Method.GET)
                          .Create();

            var userResponse = customRestClient.Get <UserModel>(request);

            //serializer.Deserialize<>
        }
Ejemplo n.º 7
0
 public BaseStep(ScenarioContext scenarioContext)
 {
     _scenarioContext = scenarioContext;
     Client           = new CustomRestClient("https://experience.co.nz");
 }
Ejemplo n.º 8
0
 public FreshdeskClient(string domainName, string username, string password)
 {
     client               = (CustomRestClient) new CustomRestClient().UseSerializer(() => new CustomSerializer());
     client.BaseUrl       = new Uri("https://" + domainName);
     client.Authenticator = new HttpBasicAuthenticator(username, password);
 }