public void AddOrUpdate(ServerUserInfo user) { if (user == null) { throw new ArgumentNullException("user"); } // Clone the existing list of users var list = new List<ServerUserInfo>(); foreach (ServerUserInfo serverUserInfo in Users) { list.Add(serverUserInfo); } var index = FindIndex(list, user.Id); if (index != -1) { var existing = list[index]; // Merge the data existing.IsSignedInOffline = user.IsSignedInOffline; } else { list.Add(user); } Users = list; }
public void AddOrUpdate(ServerUserInfo user) { if (user == null) { throw new ArgumentNullException("user"); } // Clone the existing list of users var list = new List <ServerUserInfo>(); foreach (ServerUserInfo serverUserInfo in Users) { list.Add(serverUserInfo); } var index = FindIndex(list, user.Id); if (index != -1) { var existing = list[index]; // Merge the data existing.IsSignedInOffline = user.IsSignedInOffline; } else { list.Add(user); } Users = list; }
public void AddOrUpdate(ServerUserInfo user) { if (user == null) { throw new ArgumentNullException("user"); } var list = Users.ToList(); var index = FindIndex(list, user.Id); if (index != -1) { var existing = list[index]; // Merge the data existing.IsSignedInOffline = user.IsSignedInOffline; } else { list.Add(user); } Users = list; }
private async Task SaveOfflineUser(ServerUserInfo user, IApiClient apiClient, CancellationToken cancellationToken) { var deleteUser = false; var updateImage = false; UserDto offlineUser = null; try { offlineUser = await apiClient.GetOfflineUserAsync(user.Id).ConfigureAwait(false); await _localAssetManager.SaveOfflineUser(offlineUser).ConfigureAwait(false); updateImage = true; } catch (HttpException ex) { _logger.ErrorException("Error getting user info", ex); if (ex.StatusCode.HasValue && ex.StatusCode.Value == HttpStatusCode.NotFound) { deleteUser = true; } } catch (Exception ex) { _logger.ErrorException("Error getting user info", ex); } if (deleteUser) { await _localAssetManager.DeleteOfflineUser(user.Id).ConfigureAwait(false); } if (updateImage && offlineUser != null) { await UpdateUserImage(offlineUser, apiClient, cancellationToken).ConfigureAwait(false); } }