public async Task <HttpWebApiResponse <string> > ValidateUser(string userName, string password)
        {
            try
            {
                var clientId     = userName;
                var clientSecret = password;
                var parameters   = new List <KeyValuePair <string, string> >();
                parameters.Add(new KeyValuePair <string, string>("grant_type", "client_credentials"));
                parameters.Add(new KeyValuePair <string, string>("role", "Beneficiary"));
                var client = _httpClientManager.GetOrAdd(_baseUrl);
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes(clientId + ":" + clientSecret)));
                var response = await client.ExtensionPostAsync <string>("token", parameters);

                return(response);
            }
            catch (Exception e)
            {
                var result = new HttpWebApiResponse <string> {
                    ErrorMessage = e.Message
                };
                return(result);
            }
        }
        public static async Task <HttpWebApiResponse> ExtensionPostAsJsonAsync(this HttpClient client, string requestUri, object value)
        {
            try
            {
                var jsonBody    = JsonConvert.SerializeObject(value);
                var buffer      = Encoding.UTF8.GetBytes(jsonBody);
                var byteContent = new ByteArrayContent(buffer);
                byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                var message = new HttpRequestMessage(HttpMethod.Post, requestUri);
                message.Content = byteContent;

                var httpResponse = await client.SendAsync(message).ConfigureAwait(false);

                if (!httpResponse.IsSuccessStatusCode)
                {
                    var response = new HttpWebApiResponse
                    {
                        ResponseStatus = ResponseStatuses.Failed,
                        ErrorMessage   = httpResponse.StatusCode + " " + httpResponse.ReasonPhrase
                    };
                    return(response);
                }
                // var responseResult = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);
                return(new HttpWebApiResponse()
                {
                    ResponseStatus = ResponseStatuses.Success
                });
            }
            catch (Exception ex)
            {
                return(new HttpWebApiResponse
                {
                    ResponseStatus = ResponseStatuses.Failed,
                    ErrorMessage = ex.ToString()
                });
            }
        }