diff --git a/MConnectSDK/MConnectClient.cs b/MConnectSDK/MConnectClient.cs index 79be8d7..59fe133 100644 --- a/MConnectSDK/MConnectClient.cs +++ b/MConnectSDK/MConnectClient.cs @@ -118,6 +118,31 @@ namespace MConnectSDK } } /// + /// Ultima response elenco utenti + /// + protected userListResponse usrListResp + { + get + { + userListResponse answ = new userListResponse(); + try + { + answ = JsonConvert.DeserializeObject(ML.getRSV(ML.redHash("usrListResp"))); + } + catch + { } + return answ; + } + set + { + if (value != null) + { + string serVal = JsonConvert.SerializeObject(value); + ML.setRSV(ML.redHash("usrListResp"), serVal); + } + } + } + /// /// Ultimo token response ottenuto (e salvato in REDIS) /// protected tokenResponse tokResp @@ -1076,19 +1101,40 @@ namespace MConnectSDK // parametri chiamata...SENZA /api... string shortBaseUrl = BaseUrl.Replace("/api", ""); - string pageUrl = $"{shortBaseUrl}/clients/{organizationCode}/users?skip=0&limit=1"; - // effettuo call effettiva + string pageUrl = $"{shortBaseUrl}/clients/{organizationCode}/users?skip=0&limit=5"; + // effettuo call PRELIMINARE var taskRes = Task.Run(() => Utils.getPageAsync(pageUrl, verifResp.access_token)); taskRes.Wait(); - var rawResult = taskRes.Result; - - // leggo la rispsota in var temporanea... + // leggo la risposta in var temporanea... var resp = JsonConvert.DeserializeObject(rawResult); - - - + // ora che so quanti utenti ho --> chiedo TUTTI! + pageUrl = $"{shortBaseUrl}/clients/{organizationCode}/users?skip=0&limit={resp.total}"; + // effettuo call EFFETTIVA + taskRes = Task.Run(() => Utils.getPageAsync(pageUrl, verifResp.access_token)); + taskRes.Wait(); + rawResult = taskRes.Result; + // leggo la risposta in var temporanea... + resp = JsonConvert.DeserializeObject(rawResult); + // salvo in cache REDIS + usrListResp = resp; + UserData _newUser; + Image userImg = null; + // recupero effettivi dati utente e restituisco... + foreach (var item in resp.result) + { + _newUser = new UserData + { + UserId = item.Id, + IsAdmin = item.IsAdmin, + Username = item.Username, + Email = item.Email, + Cognome = item.Lastname, + Nome = item.Firstname, + UserImage = userImg + }; + } } return answ; diff --git a/MConnectSDK/Utils.cs b/MConnectSDK/Utils.cs index c0c3d21..99a0f40 100644 --- a/MConnectSDK/Utils.cs +++ b/MConnectSDK/Utils.cs @@ -269,13 +269,13 @@ namespace MConnectSDK /// /// Elenco utenti e dati relativi /// - public userData[] result; + public List result; } public class userData { - public Dictionary> Role_Ids { get; set; } - public Dictionary> Machine_Group_Ids { get; set; } + public List Role_Ids { get; set; } + public List Machine_Group_Ids { get; set; } public bool IsActive { get; set; } public bool IsAdmin { get; set; } public string Username { get; set; } diff --git a/TestClient/MainForm.cs b/TestClient/MainForm.cs index ffe8c6a..e46e656 100644 --- a/TestClient/MainForm.cs +++ b/TestClient/MainForm.cs @@ -54,6 +54,8 @@ namespace TestClient private void fixDisplay() { + // mostro init SOLO SE ho conf yaml... + btnInit.Enabled = txtConfFile.Text.Trim() != ""; // verifico SE ho inizializzato x cui POSSO mostrare alcuni buttons... bool enableBtn = (MCC != null); btnFlush.Enabled = enableBtn;