Iniziato modifiche x check preliminare ping/rete/cloud...
This commit is contained in:
+251
-206
@@ -20,6 +20,14 @@ namespace MConnectSDK
|
||||
{
|
||||
#region oggetti base ed init
|
||||
|
||||
/// <summary>
|
||||
/// Semaforo ping PRELIMINARE
|
||||
/// </summary>
|
||||
protected bool pingOk = false;
|
||||
/// <summary>
|
||||
/// Semaforo controllo CLOUD PRELIMINARE
|
||||
/// </summary>
|
||||
protected bool cloudOk = false;
|
||||
/// <summary>
|
||||
/// Oggetto accesso memoria...
|
||||
/// {ext}<summary>
|
||||
@@ -443,7 +451,8 @@ namespace MConnectSDK
|
||||
// ORA verifica STATO sistema A VALLE...
|
||||
|
||||
// STEP 1: PING a server (locale/remoto)
|
||||
bool pingOk = false;
|
||||
pingOk = false;
|
||||
cloudOk = false;
|
||||
if (PingTarget != "")
|
||||
{
|
||||
pingOk = Utils.pingAddress(PingTarget);
|
||||
@@ -458,6 +467,7 @@ namespace MConnectSDK
|
||||
{
|
||||
answ.CloudStatusOk = true;
|
||||
answ.Source = SourceType.CLOUD;
|
||||
cloudOk = true;
|
||||
}
|
||||
}
|
||||
answ.CallResultOk = (answ.CloudStatusOk || answ.LocalStatusOk);
|
||||
@@ -507,14 +517,19 @@ namespace MConnectSDK
|
||||
Uri callUri = new Uri(BaseUrl + "/oauth2/token");
|
||||
var payload = "{\"client_id\": \"test\"}";
|
||||
HttpContent callCont = new StringContent(payload, Encoding.UTF8, "application/json");
|
||||
// effettuo call effettiva
|
||||
var taskRes = Task.Run(() => Utils.postUriAsync(callUri, callCont));
|
||||
taskRes.Wait();
|
||||
|
||||
// decodifico risposta come tokResp...
|
||||
var resp = JsonConvert.DeserializeObject<tokenResponse>(taskRes.Result);
|
||||
waitRecall = 1000 * resp.interval;
|
||||
tokResp = resp;
|
||||
// controllo preliminare ping/cloud..
|
||||
if (pingOk && cloudOk)
|
||||
{
|
||||
// effettuo call effettiva
|
||||
var taskRes = Task.Run(() => Utils.postUriAsync(callUri, callCont));
|
||||
taskRes.Wait();
|
||||
|
||||
// decodifico risposta come tokResp...
|
||||
var resp = JsonConvert.DeserializeObject<tokenResponse>(taskRes.Result);
|
||||
waitRecall = 1000 * resp.interval;
|
||||
tokResp = resp;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Effetuo step 3: /verification
|
||||
@@ -526,36 +541,40 @@ namespace MConnectSDK
|
||||
{
|
||||
// SOLO SE ho un device code...
|
||||
if (tokResp != null && tokResp.device_code != "")
|
||||
{
|
||||
// parametri chiamata
|
||||
Uri callUri = new Uri(BaseUrl + "/oauth2/verification");
|
||||
var payload = "{\"client_id\": \"test\", \"device_code\": \"" + tokResp.device_code + "\"}";
|
||||
HttpContent callCont = new StringContent(payload, Encoding.UTF8, "application/json");
|
||||
// effettuo call effettiva
|
||||
var taskRes = Task.Run(() => Utils.postUriAsync(callUri, callCont));
|
||||
taskRes.Wait();
|
||||
|
||||
// leggo la rispsota in var temporanea...
|
||||
var resp = JsonConvert.DeserializeObject<tokenResponse>(taskRes.Result);
|
||||
// verifico se esista un errore come risposta...
|
||||
if (resp != null)
|
||||
{
|
||||
// controllo preliminare ping/cloud..
|
||||
if (pingOk && cloudOk)
|
||||
{
|
||||
// se è stato autorizzato...
|
||||
if (resp.error == "")
|
||||
// parametri chiamata
|
||||
Uri callUri = new Uri(BaseUrl + "/oauth2/verification");
|
||||
var payload = "{\"client_id\": \"test\", \"device_code\": \"" + tokResp.device_code + "\"}";
|
||||
HttpContent callCont = new StringContent(payload, Encoding.UTF8, "application/json");
|
||||
// effettuo call effettiva
|
||||
var taskRes = Task.Run(() => Utils.postUriAsync(callUri, callCont));
|
||||
taskRes.Wait();
|
||||
|
||||
// leggo la rispsota in var temporanea...
|
||||
var resp = JsonConvert.DeserializeObject<tokenResponse>(taskRes.Result);
|
||||
// verifico se esista un errore come risposta...
|
||||
if (resp != null)
|
||||
{
|
||||
var authResp = JsonConvert.DeserializeObject<verificationSuccessResponse>(taskRes.Result);
|
||||
verifResp = authResp;
|
||||
// blocco richiesta verifica
|
||||
var currReq = reqStatus;
|
||||
currReq.IsAuth = true;
|
||||
answ = true;
|
||||
reqStatus = currReq;
|
||||
}
|
||||
else
|
||||
{
|
||||
// resp.error == "slow_down"
|
||||
// resp.error == "authorization_pending"
|
||||
Thread.Sleep(waitRecall);
|
||||
// se è stato autorizzato...
|
||||
if (resp.error == "")
|
||||
{
|
||||
var authResp = JsonConvert.DeserializeObject<verificationSuccessResponse>(taskRes.Result);
|
||||
verifResp = authResp;
|
||||
// blocco richiesta verifica
|
||||
var currReq = reqStatus;
|
||||
currReq.IsAuth = true;
|
||||
answ = true;
|
||||
reqStatus = currReq;
|
||||
}
|
||||
else
|
||||
{
|
||||
// resp.error == "slow_down"
|
||||
// resp.error == "authorization_pending"
|
||||
Thread.Sleep(waitRecall);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -676,34 +695,37 @@ namespace MConnectSDK
|
||||
{
|
||||
// se ho il TOKEN di accesso procedo
|
||||
if (verifResp.access_token != "")
|
||||
{
|
||||
// provo a chiamare clientInfo...
|
||||
|
||||
string pageUrl = $"{BaseUrl}/oauth2/clientinfo?access_token={verifResp.access_token}";
|
||||
|
||||
var taskRes = Task.Run(() => Utils.getPageAsync(pageUrl));
|
||||
taskRes.Wait();
|
||||
rawResult = taskRes.Result;
|
||||
tokenRefreshed = checkFixToken(rawResult);
|
||||
if (tokenRefreshed)
|
||||
{
|
||||
// controllo preliminare ping/cloud..
|
||||
if (pingOk && cloudOk)
|
||||
{
|
||||
taskRes = Task.Run(() => Utils.getPageAsync(pageUrl));
|
||||
// provo a chiamare clientInfo...
|
||||
string pageUrl = $"{BaseUrl}/oauth2/clientinfo?access_token={verifResp.access_token}";
|
||||
|
||||
var taskRes = Task.Run(() => Utils.getPageAsync(pageUrl));
|
||||
taskRes.Wait();
|
||||
rawResult = taskRes.Result;
|
||||
tokenRefreshed = checkFixToken(rawResult);
|
||||
currReq.CloudStatusOk = true;
|
||||
}
|
||||
|
||||
// ORA se NON HA + fatto refresh --> procedo!
|
||||
if (!tokenRefreshed)
|
||||
{
|
||||
// salvo il client info...
|
||||
var cliResp = JsonConvert.DeserializeObject<clientInfoResponse>(taskRes.Result);
|
||||
if (cliResp != null)
|
||||
if (tokenRefreshed)
|
||||
{
|
||||
clientInfoResp = cliResp;
|
||||
taskRes = Task.Run(() => Utils.getPageAsync(pageUrl));
|
||||
taskRes.Wait();
|
||||
rawResult = taskRes.Result;
|
||||
tokenRefreshed = checkFixToken(rawResult);
|
||||
currReq.CloudStatusOk = true;
|
||||
}
|
||||
|
||||
// ORA se NON HA + fatto refresh --> procedo!
|
||||
if (!tokenRefreshed)
|
||||
{
|
||||
// salvo il client info...
|
||||
var cliResp = JsonConvert.DeserializeObject<clientInfoResponse>(taskRes.Result);
|
||||
if (cliResp != null)
|
||||
{
|
||||
clientInfoResp = cliResp;
|
||||
currReq.CloudStatusOk = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
reqStatus = currReq;
|
||||
@@ -747,15 +769,19 @@ namespace MConnectSDK
|
||||
Uri callUri = new Uri(BaseUrl + "/oauth2/refresh");
|
||||
var payload = "{\"refresh_token\": \"" + verifResp.refresh_token + "\"}";
|
||||
HttpContent callCont = new StringContent(payload, Encoding.UTF8, "application/json");
|
||||
// effettuo call effettiva
|
||||
var taskRes = Task.Run(() => Utils.postUriAsync(callUri, callCont));
|
||||
taskRes.Wait();
|
||||
|
||||
// decodifico risposta come authResp...
|
||||
var authResp = JsonConvert.DeserializeObject<verificationSuccessResponse>(taskRes.Result);
|
||||
// se OK salvo e sovrascrivo...
|
||||
verifResp = authResp;
|
||||
// controllo preliminare ping/cloud..
|
||||
if (pingOk && cloudOk)
|
||||
{
|
||||
// effettuo call effettiva
|
||||
var taskRes = Task.Run(() => Utils.postUriAsync(callUri, callCont));
|
||||
taskRes.Wait();
|
||||
|
||||
// decodifico risposta come authResp...
|
||||
var authResp = JsonConvert.DeserializeObject<verificationSuccessResponse>(taskRes.Result);
|
||||
// se OK salvo e sovrascrivo...
|
||||
verifResp = authResp;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -778,14 +804,17 @@ namespace MConnectSDK
|
||||
// se ho il TOKEN di accesso procedo
|
||||
if (verifResp.access_token != "")
|
||||
{
|
||||
// provo a chiamare clientInfo...
|
||||
// controllo preliminare ping/cloud..
|
||||
if (pingOk && cloudOk)
|
||||
{
|
||||
// provo a chiamare clientInfo...
|
||||
string pageUrl = $"{BaseUrl}/oauth2/clientinfo?access_token={verifResp.access_token}";
|
||||
|
||||
string pageUrl = $"{BaseUrl}/oauth2/clientinfo?access_token={verifResp.access_token}";
|
||||
var taskRes = Task.Run(() => Utils.getPageAsync(pageUrl));
|
||||
taskRes.Wait();
|
||||
|
||||
var taskRes = Task.Run(() => Utils.getPageAsync(pageUrl));
|
||||
taskRes.Wait();
|
||||
|
||||
string outVal = taskRes.Result;
|
||||
string outVal = taskRes.Result;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -852,9 +881,14 @@ namespace MConnectSDK
|
||||
Uri callUri = new Uri(pageUrlCheckEnroll);
|
||||
var payload = "";
|
||||
HttpContent callCont = new StringContent(payload, Encoding.UTF8, "application/json");
|
||||
var taskRes = Task.Run(() => Utils.putAsync(callUri, callCont, verifResp.access_token));
|
||||
taskRes.Wait();
|
||||
answ = taskRes.Result;
|
||||
|
||||
// controllo preliminare ping/cloud..
|
||||
if (pingOk && cloudOk)
|
||||
{
|
||||
var taskRes = Task.Run(() => Utils.putAsync(callUri, callCont, verifResp.access_token));
|
||||
taskRes.Wait();
|
||||
answ = taskRes.Result;
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
@@ -862,27 +896,30 @@ namespace MConnectSDK
|
||||
/// {ext}<summary>
|
||||
protected bool checkEnroll()
|
||||
{
|
||||
bool answ = false;
|
||||
|
||||
// controllo con la chiamata della clientInfo...
|
||||
var taskCliInfo = Task.Run(() => GetClientStatusAsync());
|
||||
taskCliInfo.Wait();
|
||||
// effettuo lettura verifica...
|
||||
var taskRes = Task.Run(() => Utils.getPageAsync(pageUrlCheckEnroll, verifResp.access_token));
|
||||
taskRes.Wait();
|
||||
var rawResult = taskRes.Result;
|
||||
// leggo la risposta...
|
||||
var resp = JsonConvert.DeserializeObject<enrollResponse>(taskRes.Result);
|
||||
if (resp != null)
|
||||
bool answ = false;
|
||||
// controllo preliminare ping/cloud..
|
||||
if (pingOk && cloudOk)
|
||||
{
|
||||
enrollResp = resp;
|
||||
var currStatus = reqStatus;
|
||||
if (resp.result != null && (resp.result.OrganizationCode.ToUpper() == organizationCode.ToUpper()))
|
||||
// controllo con la chiamata della clientInfo...
|
||||
var taskCliInfo = Task.Run(() => GetClientStatusAsync());
|
||||
taskCliInfo.Wait();
|
||||
// effettuo lettura verifica...
|
||||
var taskRes = Task.Run(() => Utils.getPageAsync(pageUrlCheckEnroll, verifResp.access_token));
|
||||
taskRes.Wait();
|
||||
var rawResult = taskRes.Result;
|
||||
// leggo la risposta...
|
||||
var resp = JsonConvert.DeserializeObject<enrollResponse>(taskRes.Result);
|
||||
if (resp != null)
|
||||
{
|
||||
// registro che è OK x AUTH
|
||||
currStatus.IsHmiEnrolled = true;
|
||||
answ = true;
|
||||
reqStatus = currStatus;
|
||||
enrollResp = resp;
|
||||
var currStatus = reqStatus;
|
||||
if (resp.result != null && (resp.result.OrganizationCode.ToUpper() == organizationCode.ToUpper()))
|
||||
{
|
||||
// registro che è OK x AUTH
|
||||
currStatus.IsHmiEnrolled = true;
|
||||
answ = true;
|
||||
reqStatus = currStatus;
|
||||
}
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
@@ -1001,129 +1038,132 @@ namespace MConnectSDK
|
||||
/// <returns>{ext}<returns>
|
||||
private List<UserData> userListMConnect(bool getImages = false)
|
||||
{
|
||||
// salvo VECCHIO elenco utenti...
|
||||
List<UserData> userListOld = userListCache;
|
||||
// gestisco numero utenti precedentemente importati... e trovati nella nuova call da cloud
|
||||
var elImported = userListOld.FindAll(X => X.LoginStatus == UserStatus.IMPORTED);
|
||||
int numImp = elImported.Count;
|
||||
int numFound = 0;
|
||||
// continuo da remoto
|
||||
List<UserData> answ = new List<UserData>();
|
||||
List<UserData> resFilt = new List<UserData>();
|
||||
// controllo con la chiamata della clientInfo...
|
||||
var taskCliInfo = Task.Run(() => GetClientStatusAsync());
|
||||
taskCliInfo.Wait();
|
||||
|
||||
// parametri chiamata...SENZA /api...
|
||||
string shortBaseUrl = BaseUrl.Replace("/api", "");
|
||||
|
||||
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 risposta in var temporanea...
|
||||
var resp = JsonConvert.DeserializeObject<userListResponse>(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<userListResponse>(rawResult);
|
||||
// salvo in cache REDIS
|
||||
usrListResp = resp;
|
||||
UserData _newUser;
|
||||
Image userImg = null;
|
||||
UserStatus currStatus = UserStatus.NOT_IMPORTED;
|
||||
// recupero effettivi dati utente e restituisco...
|
||||
foreach (var item in resp.result)
|
||||
// controllo preliminare ping/cloud..
|
||||
if (pingOk && cloudOk)
|
||||
{
|
||||
// verifica SE FOSSE GIA' esistente --> tengo STATUS...
|
||||
resFilt = userListOld.FindAll(X => X.Username == item.Username);
|
||||
if (resFilt.Count > 0)
|
||||
{
|
||||
currStatus = resFilt[0].LoginStatus;
|
||||
if (currStatus == UserStatus.IMPORTED)
|
||||
{
|
||||
numFound++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
currStatus = UserStatus.NOT_IMPORTED;
|
||||
}
|
||||
// creo utente
|
||||
_newUser = new UserData
|
||||
{
|
||||
UserId = item.Id,
|
||||
IsAdmin = item.IsAdmin,
|
||||
Username = item.Username,
|
||||
Email = item.Email,
|
||||
Cognome = item.Lastname,
|
||||
Nome = item.Firstname,
|
||||
LoginStatus = currStatus,
|
||||
UserImage = userImg
|
||||
};
|
||||
answ.Add(_newUser);
|
||||
}
|
||||
// salvo VECCHIO elenco utenti...
|
||||
List<UserData> userListOld = userListCache;
|
||||
// gestisco numero utenti precedentemente importati... e trovati nella nuova call da cloud
|
||||
var elImported = userListOld.FindAll(X => X.LoginStatus == UserStatus.IMPORTED);
|
||||
int numImp = elImported.Count;
|
||||
int numFound = 0;
|
||||
// controllo con la chiamata della clientInfo...
|
||||
var taskCliInfo = Task.Run(() => GetClientStatusAsync());
|
||||
taskCliInfo.Wait();
|
||||
|
||||
// se ne avessi ricevuti (da cloud) meno di quanti ne avevo --> cerco DELETED...
|
||||
if (numFound != numImp)
|
||||
{
|
||||
// cerco nei "vecchi" imported chi sia stato eliminato...
|
||||
foreach (var item in elImported)
|
||||
// parametri chiamata...SENZA /api...
|
||||
string shortBaseUrl = BaseUrl.Replace("/api", "");
|
||||
|
||||
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 risposta in var temporanea...
|
||||
var resp = JsonConvert.DeserializeObject<userListResponse>(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<userListResponse>(rawResult);
|
||||
// salvo in cache REDIS
|
||||
usrListResp = resp;
|
||||
UserData _newUser;
|
||||
Image userImg = null;
|
||||
UserStatus currStatus = UserStatus.NOT_IMPORTED;
|
||||
// recupero effettivi dati utente e restituisco...
|
||||
foreach (var item in resp.result)
|
||||
{
|
||||
resFilt = answ.FindAll(X => X.Username == item.Username);
|
||||
if (resFilt.Count == 0)
|
||||
// verifica SE FOSSE GIA' esistente --> tengo STATUS...
|
||||
resFilt = userListOld.FindAll(X => X.Username == item.Username);
|
||||
if (resFilt.Count > 0)
|
||||
{
|
||||
// creo utente
|
||||
_newUser = new UserData
|
||||
currStatus = resFilt[0].LoginStatus;
|
||||
if (currStatus == UserStatus.IMPORTED)
|
||||
{
|
||||
UserId = item.UserId,
|
||||
IsAdmin = item.IsAdmin,
|
||||
Username = item.Username,
|
||||
Email = item.Email,
|
||||
Cognome = item.Cognome,
|
||||
Nome = item.Nome,
|
||||
LoginStatus = UserStatus.DELETED,
|
||||
UserImage = userImg
|
||||
};
|
||||
answ.Add(_newUser);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// se richiesto aggiungo immagine...
|
||||
if (getImages)
|
||||
{
|
||||
// in modalità parallela TENTO scaricamento imagini...
|
||||
Parallel.ForEach(resp.result, item =>
|
||||
{
|
||||
userImg = null;
|
||||
try
|
||||
{
|
||||
// creo obj userData... SE HO immagine...
|
||||
if (item.Image_Url != "")
|
||||
{
|
||||
var imgRes = Task.Run(() => Utils.getImageAsync(pageUrlImgDownload, item.Image_Url));
|
||||
imgRes.Wait();
|
||||
if (imgRes.Result != null)
|
||||
{
|
||||
userImg = imgRes.Result;
|
||||
}
|
||||
numFound++;
|
||||
}
|
||||
}
|
||||
catch
|
||||
else
|
||||
{
|
||||
currStatus = UserStatus.NOT_IMPORTED;
|
||||
}
|
||||
resFilt = answ.FindAll(X => X.Username == item.Username);
|
||||
if (resFilt.Count == 1)
|
||||
// creo utente
|
||||
_newUser = new UserData
|
||||
{
|
||||
resFilt[0].UserImage = userImg;
|
||||
UserId = item.Id,
|
||||
IsAdmin = item.IsAdmin,
|
||||
Username = item.Username,
|
||||
Email = item.Email,
|
||||
Cognome = item.Lastname,
|
||||
Nome = item.Firstname,
|
||||
LoginStatus = currStatus,
|
||||
UserImage = userImg
|
||||
};
|
||||
answ.Add(_newUser);
|
||||
}
|
||||
|
||||
// se ne avessi ricevuti (da cloud) meno di quanti ne avevo --> cerco DELETED...
|
||||
if (numFound != numImp)
|
||||
{
|
||||
// cerco nei "vecchi" imported chi sia stato eliminato...
|
||||
foreach (var item in elImported)
|
||||
{
|
||||
resFilt = answ.FindAll(X => X.Username == item.Username);
|
||||
if (resFilt.Count == 0)
|
||||
{
|
||||
// creo utente
|
||||
_newUser = new UserData
|
||||
{
|
||||
UserId = item.UserId,
|
||||
IsAdmin = item.IsAdmin,
|
||||
Username = item.Username,
|
||||
Email = item.Email,
|
||||
Cognome = item.Cognome,
|
||||
Nome = item.Nome,
|
||||
LoginStatus = UserStatus.DELETED,
|
||||
UserImage = userImg
|
||||
};
|
||||
answ.Add(_newUser);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// se richiesto aggiungo immagine...
|
||||
if (getImages)
|
||||
{
|
||||
// in modalità parallela TENTO scaricamento imagini...
|
||||
Parallel.ForEach(resp.result, item =>
|
||||
{
|
||||
userImg = null;
|
||||
try
|
||||
{
|
||||
// creo obj userData... SE HO immagine...
|
||||
if (item.Image_Url != "")
|
||||
{
|
||||
var imgRes = Task.Run(() => Utils.getImageAsync(pageUrlImgDownload, item.Image_Url));
|
||||
imgRes.Wait();
|
||||
if (imgRes.Result != null)
|
||||
{
|
||||
userImg = imgRes.Result;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
resFilt = answ.FindAll(X => X.Username == item.Username);
|
||||
if (resFilt.Count == 1)
|
||||
{
|
||||
resFilt[0].UserImage = userImg;
|
||||
}
|
||||
|
||||
#if false
|
||||
// verifica SE FOSSE GIA' esistente --> tengo STATUS...
|
||||
@@ -1155,8 +1195,8 @@ namespace MConnectSDK
|
||||
answ.Add(_newUser);
|
||||
#endif
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return answ;
|
||||
}
|
||||
|
||||
@@ -1521,10 +1561,15 @@ namespace MConnectSDK
|
||||
/// {ext}<summary>
|
||||
private void updateUserListCacheFromCloud(bool getImages = false)
|
||||
{
|
||||
// se NON modalità testing LEGGO davvero da cloud la NUOVA lista
|
||||
List<UserData> answ = userListMConnect(getImages);
|
||||
// salvo in cache locale (comunque...)
|
||||
userListCache = answ;
|
||||
try
|
||||
{
|
||||
// se NON modalità testing LEGGO davvero da cloud la NUOVA lista
|
||||
List<UserData> answ = userListMConnect(getImages);
|
||||
// salvo in cache locale (comunque...)
|
||||
userListCache = answ;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -22,12 +22,17 @@ namespace MConnectSDK
|
||||
{
|
||||
bool answ = false;
|
||||
Ping pingSender = new Ping();
|
||||
PingReply reply = pingSender.Send(target, 100);
|
||||
// se passa il ping do OK...
|
||||
if (reply.Status == IPStatus.Success)
|
||||
try
|
||||
{
|
||||
answ = true;
|
||||
PingReply reply = pingSender.Send(target, 100);
|
||||
// se passa il ping do OK...
|
||||
if (reply.Status == IPStatus.Success)
|
||||
{
|
||||
answ = true;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user