private DelugeResponse <TResult> ProcessRequest <TResult>(IRestClient client, string action, object[] arguments) { var request = new RestRequest(Method.POST); request.Resource = "json"; request.RequestFormat = DataFormat.Json; request.AddHeader("Accept-Encoding", "gzip,deflate"); var data = new Dictionary <string, object>(); data.Add("id", GetCallId()); data.Add("method", action); if (arguments != null) { data.Add("params", arguments); } request.AddBody(data); _logger.Debug("Url: {0} Action: {1}", client.BuildUri(request), action); var response = client.ExecuteAndValidate <DelugeResponse <TResult> >(request); return(response); }