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.
Blazor_SAE/VeraxShield/VeraxShield/services/UtilisateursDataService/UtilisateursDataServiceFact...

73 lines
2.2 KiB

using Blazored.LocalStorage;
using Microsoft.AspNetCore.Components;
using VeraxShield.modele.utilisateurs;
namespace VeraxShield.services.UtilisateursDataService
{
public class UtilisateursDataServiceFactice : IUtilisateursDataService
{
[Inject]
private HttpClient _clientHttp { get; set; }
[Inject]
public ILocalStorageService _localStorage { get; set; }
[Inject]
public NavigationManager _navigationManager { get; set; }
private String EmplacementLocalStorage { get; set; }
private String EmplacementJson {get; set;}
public UtilisateursDataServiceFactice(HttpClient clientHttp, ILocalStorageService localStorage, NavigationManager navigationManager)
{
this._clientHttp = clientHttp;
this._localStorage = localStorage;
this._navigationManager = navigationManager;
this.EmplacementLocalStorage = "utilisateursData";
this.EmplacementJson = $"{_navigationManager.BaseUri}data/fakeUtilisateurs.json";
}
public async Task<List<Utilisateur>> getAllUtilisateurs()
{
List<Utilisateur> lUtilisateurs = new List<Utilisateur>();
lUtilisateurs = await this.getUtilisateursFromLocalStorage();
if (lUtilisateurs.Count == 0)
{
lUtilisateurs = await this.getUtilisateursFromJson(this.EmplacementJson);
await this.saveUtilisateursLocalStorage(lUtilisateurs);
}
return lUtilisateurs;
}
private async Task<List<Utilisateur>> getUtilisateursFromJson(String cheminVersJson)
{
List<Utilisateur> utilisateursDeserialise = new List<Utilisateur> ();
var data = await _clientHttp.GetFromJsonAsync<Utilisateur[]>(cheminVersJson);
utilisateursDeserialise = data.ToList();
return utilisateursDeserialise;
}
private async Task<List<Utilisateur>> getUtilisateursFromLocalStorage()
{
List<Utilisateur> utilisateursFromLocalStorage = new List<Utilisateur>();
var data = await _localStorage.GetItemAsync<Utilisateur[]>(EmplacementLocalStorage);
utilisateursFromLocalStorage = data.ToList();
return utilisateursFromLocalStorage;
}
private async Task saveUtilisateursLocalStorage(List<Utilisateur> lUtilisateurs)
{
await _localStorage.SetItemAsync(this.EmplacementLocalStorage, lUtilisateurs);
}
}
}