class Client
{
RestClient _client = new RestClient(SettingsContainer.ApiPath.Testers);
public Client()
{
_client.CookieContainer = new System.Net.CookieContainer();
}
public string Ping()
{
var request = new RestRequest("Ping", Method.GET);
var response = _client.Execute(request);
return response.Content;
}
public string Authentification(string login, int protocolVersion, string userId, string pushToken)
{
var request = new RestRequest("Authentification/{login}/{protocolVersion}/{userId}/{pushToken}", Method.GET);
request.AddUrlSegment("login", login);
request.AddUrlSegment("protocolVersion", protocolVersion.ToString());
request.AddUrlSegment("userId", userId);
request.AddUrlSegment("pushToken", pushToken);
var response = _client.Execute(request);
foreach (var item in response.Cookies)
{
var cookie = new System.Net.Cookie()
{
Name = item.Name,
Comment = item.Comment,
CommentUri = item.CommentUri,
Discard = item.Discard,
Domain = item.Domain,
Expired = item.Expired,
Expires = item.Expires,
HttpOnly = item.HttpOnly,
Path = item.Path,
Port = item.Port,
Secure = item.Secure,
Value = item.Value,
Version = item.Version
};
_client.CookieContainer.Add(cookie);
}
return response.Content;
}
Y2xhc3MgQ2xpZW50CiAgICB7CiAgICAgICAgUmVzdENsaWVudCBfY2xpZW50ID0gbmV3IFJlc3RDbGllbnQoU2V0dGluZ3NDb250YWluZXIuQXBpUGF0aC5UZXN0ZXJzKTsKCiAgICAgICAgcHVibGljIENsaWVudCgpCiAgICAgICAgewogICAgICAgICAgICBfY2xpZW50LkNvb2tpZUNvbnRhaW5lciA9IG5ldyBTeXN0ZW0uTmV0LkNvb2tpZUNvbnRhaW5lcigpOwogICAgICAgIH0KCiAgICAgICAgcHVibGljIHN0cmluZyBQaW5nKCkKICAgICAgICB7CiAgICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlc3RSZXF1ZXN0KCJQaW5nIiwgTWV0aG9kLkdFVCk7CgogICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSBfY2xpZW50LkV4ZWN1dGUocmVxdWVzdCk7CiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5Db250ZW50OwogICAgICAgIH0KCiAgICAgICAgcHVibGljIHN0cmluZyBBdXRoZW50aWZpY2F0aW9uKHN0cmluZyBsb2dpbiwgaW50IHByb3RvY29sVmVyc2lvbiwgc3RyaW5nIHVzZXJJZCwgc3RyaW5nIHB1c2hUb2tlbikKICAgICAgICB7CiAgICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlc3RSZXF1ZXN0KCJBdXRoZW50aWZpY2F0aW9uL3tsb2dpbn0ve3Byb3RvY29sVmVyc2lvbn0ve3VzZXJJZH0ve3B1c2hUb2tlbn0iLCBNZXRob2QuR0VUKTsKCiAgICAgICAgICAgIHJlcXVlc3QuQWRkVXJsU2VnbWVudCgibG9naW4iLCBsb2dpbik7CiAgICAgICAgICAgIHJlcXVlc3QuQWRkVXJsU2VnbWVudCgicHJvdG9jb2xWZXJzaW9uIiwgcHJvdG9jb2xWZXJzaW9uLlRvU3RyaW5nKCkpOwogICAgICAgICAgICByZXF1ZXN0LkFkZFVybFNlZ21lbnQoInVzZXJJZCIsIHVzZXJJZCk7CiAgICAgICAgICAgIHJlcXVlc3QuQWRkVXJsU2VnbWVudCgicHVzaFRva2VuIiwgcHVzaFRva2VuKTsKCiAgICAgICAgICAgIHZhciByZXNwb25zZSA9IF9jbGllbnQuRXhlY3V0ZShyZXF1ZXN0KTsKCiAgICAgICAgICAgIGZvcmVhY2ggKHZhciBpdGVtIGluIHJlc3BvbnNlLkNvb2tpZXMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBjb29raWUgPSBuZXcgU3lzdGVtLk5ldC5Db29raWUoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgPSBpdGVtLk5hbWUsCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9IGl0ZW0uQ29tbWVudCwKICAgICAgICAgICAgICAgICAgICBDb21tZW50VXJpID0gaXRlbS5Db21tZW50VXJpLAogICAgICAgICAgICAgICAgICAgIERpc2NhcmQgPSBpdGVtLkRpc2NhcmQsCiAgICAgICAgICAgICAgICAgICAgRG9tYWluID0gaXRlbS5Eb21haW4sCiAgICAgICAgICAgICAgICAgICAgRXhwaXJlZCA9IGl0ZW0uRXhwaXJlZCwKICAgICAgICAgICAgICAgICAgICBFeHBpcmVzID0gaXRlbS5FeHBpcmVzLAogICAgICAgICAgICAgICAgICAgIEh0dHBPbmx5ID0gaXRlbS5IdHRwT25seSwKICAgICAgICAgICAgICAgICAgICBQYXRoID0gaXRlbS5QYXRoLAogICAgICAgICAgICAgICAgICAgIFBvcnQgPSBpdGVtLlBvcnQsCiAgICAgICAgICAgICAgICAgICAgU2VjdXJlID0gaXRlbS5TZWN1cmUsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgPSBpdGVtLlZhbHVlLAogICAgICAgICAgICAgICAgICAgIFZlcnNpb24gPSBpdGVtLlZlcnNpb24KICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgX2NsaWVudC5Db29raWVDb250YWluZXIuQWRkKGNvb2tpZSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5Db250ZW50OwogICAgICAgIH0=