You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OptifitWebService/TestConsoleApi/Program.cs

94 lines
3.3 KiB

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Server.Dto.Request;
using Server.Dto.Response;
class Program
{
static async Task Main(string[] args)
{
string baseUrl = "https://localhost:7273/api/v1/";
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(baseUrl);
// Création d'un nouvel élément
var newExperience = new RequestExperienceDto
{
AlumniId = "A1",
Title = "Junior Dev",
StartingDate = DateTime.Now.AddYears(-2),
CompanyName = "CGI",
CurrentJob = false
};
var json = JsonConvert.SerializeObject(newExperience);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("experiences", content);
if (response.IsSuccessStatusCode)
{
var responseData = await response.Content.ReadAsStringAsync();
var createdExperience = JsonConvert.DeserializeObject<ResponseExperienceDto>(responseData);
Console.WriteLine($"Expérience créée avec succès. ID : {createdExperience.Id}");
}
else
{
Console.WriteLine($"Erreur lors de la création de l'expérience. Code : {response.StatusCode}");
}
// Lecture d'un élément par son ID
string experienceId = "123";
response = await client.GetAsync($"experiences/{experienceId}");
if (response.IsSuccessStatusCode)
{
var responseData = await response.Content.ReadAsStringAsync();
var experience = JsonConvert.DeserializeObject<ResponseExperienceDto>(responseData);
Console.WriteLine($"Expérience récupérée avec succès : {experience.Title}");
}
else
{
Console.WriteLine($"Erreur lors de la récupération de l'expérience. Code : {response.StatusCode}");
}
// Mise à jour d'un élément
var updatedExperience = new RequestExperienceDto
{
Title = "Senior Dev",
StartingDate = DateTime.Now.AddYears(-3),
CompanyName = "Microsoft",
CurrentJob = true,
AlumniId = "A1"
};
json = JsonConvert.SerializeObject(updatedExperience);
content = new StringContent(json, Encoding.UTF8, "application/json");
response = await client.PutAsync($"experiences/{experienceId}", content);
if (response.IsSuccessStatusCode)
{
var responseData = await response.Content.ReadAsStringAsync();
var experience = JsonConvert.DeserializeObject<ResponseExperienceDto>(responseData);
Console.WriteLine($"Expérience mise à jour avec succès : {experience.Title}");
}
else
{
Console.WriteLine($"Erreur lors de la mise à jour de l'expérience. Code : {response.StatusCode}");
}
// Suppression d'un élément
response = await client.DeleteAsync($"experiences/{experienceId}");
if (response.IsSuccessStatusCode)
{
Console.WriteLine("Expérience supprimée avec succès.");
}
else
{
Console.WriteLine($"Erreur lors de la suppression de l'expérience. Code : {response.StatusCode}");
}
}
}