Exemple #1
0
        public async Task <T> SendAsync <T>(ERestCall method, T payload = null) where T : class
        {
            T result = null;

            using (var httpClient = new HttpClient())
            {
                var request       = new HttpRequestMessage(Fatory(method), new Uri(_uri));
                var stringPayload = JsonConvert.SerializeObject(payload);
                request.Content = new StringContent(stringPayload, Encoding.UTF8, "application/json");

                var response = await httpClient.SendAsync(request);

                response.EnsureSuccessStatusCode();
                await response.Content.ReadAsStringAsync().ContinueWith((Task <string> x) =>
                {
                    if (x.IsFaulted)
                    {
                        throw x.Exception;
                    }

                    result = JsonConvert.DeserializeObject <T>(x.Result);
                });
            }

            return(result);
        }
Exemple #2
0
        private HttpMethod Fatory(ERestCall method)
        {
            switch (method)
            {
            case ERestCall.Get:
                return(HttpMethod.Get);

            case ERestCall.Post:
                return(HttpMethod.Post);

            default:
                throw new AppBaseException("Invalid Operation!");
            }
        }