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.
94 lines
3.3 KiB
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}");
|
|
}
|
|
}
|
|
}
|