public bool Test(string serviceUrl, string path, PgAuthenticationTicket ticket) { if (ticket == null) { throw new ArgumentNullException(nameof(ticket)); } if (ticket.ExpireDate < DateTime.Now) { return(false); } if (string.IsNullOrWhiteSpace(serviceUrl)) { throw new ArgumentException("message", nameof(serviceUrl)); } if (string.IsNullOrWhiteSpace(path)) { throw new ArgumentException("message", nameof(path)); } var client = new RestClient(serviceUrl); var request = new RestRequest(path, Method.GET); request.AddHeader("Authorization", $"Bearer {ticket.AccessToken}"); var response = client.Execute(request); return(response.StatusCode.IsOk()); }
public TResponse PostJson <TResponse>(string serviceUrl, string path, PgAuthenticationTicket ticket) where TResponse : class { var response = InternalSendJson(Method.POST, serviceUrl, path, ticket); if (!response.StatusCode.IsOk()) { throw new InvalidOperationException($"Server responded with status {response.StatusCode}"); } return(JsonConvert.DeserializeObject <TResponse>(response.Content)); }
public byte[] DownloadFile(string serviceUrl, string path, PgAuthenticationTicket ticket, Dictionary <string, string> model) { var client = new RestClient(serviceUrl); var request = new RestRequest(path, Method.GET); if (ticket != null) { request.AddHeader("Authorization", $"Bearer {ticket.AccessToken}"); } if (model != null && model.Count > 0) { foreach (var kv in model) { request.AddQueryParameter(kv.Key, kv.Value); } } return(client.DownloadData(request)); }
public void Delete(string serviceUrl, string path, PgAuthenticationTicket ticket) { var client = new RestClient(serviceUrl); var request = new RestRequest(path, Method.DELETE); request.AddHeader("Content-Type", "application/json"); request.JsonSerializer = NewtonsoftJsonSerializer.Default; if (ticket != null) { request.AddHeader("Authorization", $"Bearer {ticket.AccessToken}"); } var response = client.Execute(request); if (!response.StatusCode.IsOk()) { throw new InvalidOperationException($"Server responded with status {response.StatusCode}"); } }
public PgAuthenticationResult(PgAuthenticationTicket ticket, PgAuthenticationStatus status) { Ticket = ticket; Status = status; }
private static IRestResponse InternalSendJson <TRequest>(Method method, string serviceUrl, string path, PgAuthenticationTicket ticket, TRequest model) where TRequest : class { var client = new RestClient(serviceUrl); var request = new RestRequest(path, method); request.AddHeader("Content-Type", "application/json"); request.JsonSerializer = NewtonsoftJsonSerializer.Default; if (ticket != null) { request.AddHeader("Authorization", $"Bearer {ticket.AccessToken}"); } if (model != null) { request.AddJsonBody(model); } return(client.Execute(request)); }
public HttpStatusCode PostJson <TRequest>(string serviceUrl, string path, PgAuthenticationTicket ticket, TRequest model) where TRequest : class { return(InternalSendJson(Method.POST, serviceUrl, path, ticket, model).StatusCode); }
public TResponse GetJson <TRequest, TResponse>(string serviceUrl, string path, PgAuthenticationTicket ticket, TRequest model) where TRequest : class where TResponse : class { var pathWithQueryString = model != null ? $"{path}?{QueryStringSerializer.Serialize(model)}" : path; var response = InternalSendJson(Method.GET, serviceUrl, pathWithQueryString, ticket, default(TRequest)); if (response.StatusCode == HttpStatusCode.NotFound) { return(null); } if (!response.StatusCode.IsOk()) { throw new InvalidOperationException($"Server responded with status {response.StatusCode}"); } return(JsonConvert.DeserializeObject <TResponse>(response.Content, DefaultJsonSerializerSettings)); }