using System; using Kreta.Client.ClientBase; using Kreta.Client.Leltar.Configuration; using Kreta.Client.Leltar.Request; using Newtonsoft.Json; using RestSharp; using RestSharp.Authenticators; namespace Kreta.Client.Leltar { internal class LeltarClient : RestSharpClientBase, ILeltarClient { private readonly ILeltarClientConfiguration leltarClientConfiguration; public LeltarClient(ILeltarClientConfiguration leltarClientConfiguration) { this.leltarClientConfiguration = leltarClientConfiguration ?? throw new ArgumentNullException(nameof(leltarClientConfiguration)); } public bool KretaUserSync(KretaUserSyncRequest request) { var restClient = new RestClient(leltarClientConfiguration.BaseUrl) { Authenticator = new HttpBasicAuthenticator(leltarClientConfiguration.Username, leltarClientConfiguration.Password) }; var relativeUri = "kreta-user-sync/action/KretaUserSyncAction"; var restRequest = new RestRequest(relativeUri, Method.POST); var parameter = JsonConvert.SerializeObject(request); restRequest.AddParameter("application/json;charset=utf-8", parameter, ParameterType.RequestBody); var restResponse = restClient.Execute(restRequest); if (restResponse.StatusCode == System.Net.HttpStatusCode.OK) { return true; } return false; } } }