//Clear all the data public void Unload() { SelectedServiceUsers.Clear(); ServiceUsers.Clear(); isLoaded = false; }
/// <summary> /// Refresh all the service user lists /// </summary> public void RefreshLists(bool ServiceUsersChanged, bool SelectedServiceuserChanged, bool ServiceUserFilterChanged) { if (_isRefreshingControls || IgnoreControlRefresh) { return; } Console.WriteLine("[" + DateTime.Now.ToString() + "] Refrehing Service User Lists"); _isRefreshingControls = true; foreach (ServiceUserCtrl ctrl in _serviceUserCtrls) { bool ChangeMade = false; //update service users in list if (ServiceUsersChanged) { ctrl.List.ServiceUsers = ServiceUsers; ChangeMade = true; } if (SelectedServiceuserChanged) { //<DEP> THis is not needed as only one service user can be selected! //bool containsSelectedItems = !SelectedServiceUsers.Except(ctrl.List.FilteredObjects).Any(); //if(containsSelectedItems) //{ //var DifferencesList = ctrl.List.SelectedItems.Where(x => !SelectedServiceUsers.Any(x1 => x1 == x)) // .Union(SelectedServiceUsers.Where(x => !ctrl.List.SelectedItems.Any(x1 => x1 == x))); //if (DifferencesList.Count() > 0) //{ // ctrl.List.SelectedItem = SelectedServiceUsers[0]; // ChangeMade = true; //} //} if (SelectedServiceUsers.Count() > 0 && ctrl.List.SelectedItem != SelectedServiceUsers[0]) { ctrl.List.SelectedItem = SelectedServiceUsers[0]; ChangeMade = true; } else if (SelectedServiceUsers.Count() == 0 && ctrl.List.SelectedItem != null) { ctrl.List.SelectedItem = null; ChangeMade = true; } } //update the filter if (ServiceUserFilterChanged) { if (ctrl.List.Filter != _ServiceUserListFilter) { ctrl.List.Filter = _ServiceUserListFilter; } } //refresh the control if (ChangeMade || (!ServiceUsersChanged && !SelectedServiceuserChanged && !ServiceUserFilterChanged)) { ctrl.List.Refresh(); } } _isRefreshingControls = false; }