Completata user login...
This commit is contained in:
@@ -1039,9 +1039,8 @@ namespace MConnectSDK
|
||||
// inizio da watchdog...
|
||||
setWatchdog();
|
||||
var userList = new UserPayload();
|
||||
List<UserData> answ = userListMConnect();
|
||||
// salvo in cache locale (comunque...)
|
||||
userListCache = answ;
|
||||
updateUserListCacheFromCloud();
|
||||
List<UserData> answ = userListCache;
|
||||
// aggiungo nella risposta...
|
||||
userList.UserList = answ;
|
||||
userList.Message = $"{answ.Count} Users Found!";
|
||||
@@ -1061,7 +1060,6 @@ namespace MConnectSDK
|
||||
var taskCliInfo = Task.Run(() => GetClientStatusAsync());
|
||||
taskCliInfo.Wait();
|
||||
|
||||
// faccio la chiamata x elenco utenti...
|
||||
// parametri chiamata...SENZA /api...
|
||||
string shortBaseUrl = BaseUrl.Replace("/api", "");
|
||||
|
||||
@@ -1116,7 +1114,7 @@ namespace MConnectSDK
|
||||
// inizio da watchdog...
|
||||
setWatchdog();
|
||||
var userList = new UserPayload();
|
||||
List<UserData> answ = userListMConnect();
|
||||
List<UserData> answ = userListCache;
|
||||
// filtro SOLO per stato (improted)
|
||||
var resFilt = answ.FindAll(X => X.LoginStatus == UserStatus.IMPORTED);
|
||||
if (resFilt.Count > 0)
|
||||
@@ -1151,7 +1149,7 @@ namespace MConnectSDK
|
||||
// inizio da watchdog...
|
||||
setWatchdog();
|
||||
var userList = new UserPayload();
|
||||
List<UserData> answ = userListMConnect();
|
||||
List<UserData> answ = userListCache;
|
||||
// CERCO utente x settare importato...
|
||||
if (answ.Exists(x => x.Username == username))
|
||||
{
|
||||
@@ -1222,9 +1220,13 @@ namespace MConnectSDK
|
||||
{
|
||||
// inizio da watchdog...
|
||||
setWatchdog();
|
||||
// controllo con la chiamata della clientInfo...
|
||||
var taskCliInfo = Task.Run(() => GetClientStatusAsync());
|
||||
taskCliInfo.Wait();
|
||||
|
||||
// parto pessimista...
|
||||
bool userOk = false;
|
||||
// variabilia ccessorie
|
||||
// variabili accessorie
|
||||
var userList = new UserPayload();
|
||||
UserData answ = new UserData();
|
||||
ErrorResult errore = new ErrorResult();
|
||||
@@ -1233,8 +1235,53 @@ namespace MConnectSDK
|
||||
{
|
||||
// recupero ed aggiorno userListcache
|
||||
updateUserListCacheFromCloud();
|
||||
// cerco in utenti simulati che ci sia
|
||||
UserData userFound = userListCache.Find(x => x.Username == username);
|
||||
UserData userFound = new UserData();
|
||||
// se sono online --> login
|
||||
if (reqStatus.CloudStatusOk)
|
||||
{
|
||||
//Uri callUri = new Uri(BaseUrl + $"/FAKE/auth/login");
|
||||
Uri callUri = new Uri(BaseUrl + $"/{organizationCode}/auth/login");
|
||||
var payload = "{\"Username\": \"" + username + "\",\"Password\": \"" + password + "\"}";
|
||||
HttpContent callCont = new StringContent(payload, Encoding.UTF8, "application/json");
|
||||
// effettuo call effettiva
|
||||
var taskRes = Task.Run(() => Utils.PostURI(callUri, callCont));
|
||||
taskRes.Wait();
|
||||
var rawResult = taskRes.Result;
|
||||
if (rawResult != "")
|
||||
{
|
||||
// deserializzo
|
||||
var resp = JsonConvert.DeserializeObject<userLoginResponse>(rawResult);
|
||||
// controllo risultato: se 200 / status OK --> loggato!
|
||||
if (resp.status == "Ok" || resp.statusCode == 200)
|
||||
{
|
||||
// creo obj userData...
|
||||
Image userImg = null;
|
||||
var item = resp.result.user;
|
||||
userFound = new UserData()
|
||||
{
|
||||
UserId = item.Id,
|
||||
IsAdmin = item.IsAdmin,
|
||||
Username = item.Username,
|
||||
Email = item.Email,
|
||||
Cognome = item.Lastname,
|
||||
Nome = item.Firstname,
|
||||
UserImage = userImg
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
userFound = null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{ }
|
||||
}
|
||||
// se sono offline --> cache locale!
|
||||
else
|
||||
{
|
||||
// cerco in utenti che ci sia
|
||||
userFound = userListCache.Find(x => x.Username == username);
|
||||
}
|
||||
if (userFound != null)
|
||||
{
|
||||
// controllo che sia VALIDO e NON deleted...
|
||||
@@ -1357,17 +1404,19 @@ namespace MConnectSDK
|
||||
/// </summary>
|
||||
private void updateUserListCacheFromCloud()
|
||||
{
|
||||
if (_currParam.testMode)
|
||||
{
|
||||
// non faccio nulla se non attesa...
|
||||
Thread.Sleep(500);
|
||||
}
|
||||
else
|
||||
{
|
||||
// se NON modalità testing LEGGO davvero da cloud
|
||||
|
||||
// effettuo confronto e segno deleted i NON presenti (SE importati) con chaimata...
|
||||
}
|
||||
// se NON modalità testing LEGGO davvero da cloud la NUOVA lista
|
||||
List<UserData> answ = userListMConnect();
|
||||
|
||||
#if false
|
||||
// salvo elenco corrente
|
||||
var currUser = userListCache;
|
||||
// possibile fare cancellazione "logica" per utenti improtati e NON + presenti...
|
||||
|
||||
#endif
|
||||
|
||||
// salvo in cache locale (comunque...)
|
||||
userListCache = answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -271,6 +271,35 @@ namespace MConnectSDK
|
||||
/// </summary>
|
||||
public List<userData> result;
|
||||
}
|
||||
/// <summary>
|
||||
/// Struttura dati risposta LOGIN UTENTE utenti
|
||||
/// </summary>
|
||||
public class userLoginResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// Stato della risposta
|
||||
/// </summary>
|
||||
public string status;
|
||||
/// <summary>
|
||||
/// Valore risposta
|
||||
/// </summary>
|
||||
public int statusCode;
|
||||
/// <summary>
|
||||
/// Messaggio della risposta
|
||||
/// </summary>
|
||||
public string message;
|
||||
/// <summary>
|
||||
/// Utente trovato
|
||||
/// </summary>
|
||||
public userLoginData result;
|
||||
}
|
||||
|
||||
public class userLoginData
|
||||
{
|
||||
public userData user { get; set; }
|
||||
public string token { get; set; }
|
||||
public string refreshToken { get; set; }
|
||||
}
|
||||
|
||||
public class userData
|
||||
{
|
||||
|
||||
@@ -397,6 +397,7 @@ namespace TestClient
|
||||
await Task.Run(() =>
|
||||
{
|
||||
var userResult = MCC.getUserImportedListAsync();
|
||||
userResult.Wait();
|
||||
List<UserData> userList = ((UserPayload)userResult.Result.Payload).UserList;
|
||||
|
||||
synchronizationContext.Post(new SendOrPostCallback(o =>
|
||||
@@ -439,6 +440,7 @@ namespace TestClient
|
||||
{
|
||||
UserData userData = new UserData();
|
||||
var userResult = MCC.TryUserLogin(user, pwd);
|
||||
userResult.Wait();
|
||||
var currImage = pictBox.Image;
|
||||
|
||||
//if (userData.Username != "")
|
||||
|
||||
Reference in New Issue
Block a user