static void Main(string[] args) { Console.WriteLine("Creating a login request for enviso."); Console.WriteLine($"Please fill in your APIKEY: {Environment.NewLine} eg:{Environment.NewLine}{defaultApiKey}"); var apikey = Console.ReadLine(); if (string.IsNullOrWhiteSpace(apikey)) { apikey = defaultApiKey; } ; Console.WriteLine($"Please fill in your Public RSA Key: {Environment.NewLine}eg: {Environment.NewLine}{defaultPublicRsaKey}"); var rsaKey = Console.ReadLine(); if (string.IsNullOrWhiteSpace(rsaKey)) { rsaKey = defaultPublicRsaKey; } Library.LoginGenerator generator = new Library.LoginGenerator(); var loginRequest = generator.GenerateLogin(apikey, rsaKey); Console.WriteLine("The Loginrequest is : "); var serializedRequest = Newtonsoft.Json.JsonConvert.SerializeObject(loginRequest); Console.WriteLine(serializedRequest); using (var httpClient = new HttpClient()) { var content = new StringContent(serializedRequest, Encoding.UTF8, "application/json"); Console.WriteLine("Executing login: . . . "); var postTask = Task.Run(async() => await httpClient.PostAsync("https://api.staging-enviso.io/resellingapi/v1/apis/login", content)); postTask.Wait(TimeSpan.FromSeconds(3)); if (postTask.IsCompletedSuccessfully) { var httpResponseMessage = postTask.Result; Console.WriteLine($"{httpResponseMessage.StatusCode.ToString()} - {httpResponseMessage.Content.ReadAsStringAsync().Result}"); } else { Console.WriteLine($"An error occured: {postTask.Exception.ToString()}"); } } Console.WriteLine("Press any key to close . . ."); Console.ReadLine(); }
/// <summary> /// Initializing the client will login into Enviso. /// </summary> public async Task Initialize() { Library.LoginGenerator generator = new Library.LoginGenerator(); var loginRequest = generator.GenerateLogin(ApiKey, RsaKey); var serializedRequest = Newtonsoft.Json.JsonConvert.SerializeObject(loginRequest); // we shouldn't create a HTTPclient for each call but share this accross different calls. // For simplicity of the sample code this is kept as an optimization. using (var httpClient = new HttpClient()) { var content = new StringContent(serializedRequest, Encoding.UTF8, "application/json"); var loginResponse = await httpClient.PostAsync(URI.LOGIN, content); var loginResponseDTO = await ReadResponseAndDeserialize <LoginResponseDTO>(loginResponse); this._authToken = loginResponseDTO.AuthToken; } _isInitialized = true; }