private void InitSettings() { var settings = _settingsRepository.GetSettings(); var users = _client.GetPhoneBook(); if (settings == null) { var newSettings = new AppPreferences(); var newAgents = new ObservableCollectionEx <AgentEntry>(); var retryStates = new ObservableCollectionEx <RetryState>() { new RetryState { Enabled = true, ProgressState = ProgressState.Error }, new RetryState { Enabled = true, ProgressState = ProgressState.Rejected }, new RetryState { Enabled = true, ProgressState = ProgressState.Aborted }, new RetryState { Enabled = true, ProgressState = ProgressState.NotFound } }; newAgents.AddItems(users.Select(userInfo => new AgentEntry(new PhoneBookItemInfo(userInfo), AgentState.Free))); newSettings.Agents = newAgents; newSettings.RetryStates = retryStates; newSettings.ChooseByOccupation = true; newSettings.ChooseByStatistics = false; newSettings.MaxConcurrentCalls = 5; _settingsRepository.SetSettings(newSettings); return; } foreach (var userInfo in users.Where(userInfo => !settings.Agents.Any(agent => agent.AgentInfo.Name.Equals(userInfo.Name)))) { settings.Agents.Add(new AgentEntry(new PhoneBookItemInfo(userInfo), AgentState.Free)); } var localAgents = settings.Agents.ToList(); foreach (var agent in localAgents.Where(agent => !users.Any(user => user.Name.Equals(agent.AgentInfo.Name)))) { settings.Agents.Remove(settings.Agents.FirstOrDefault(a => a.AgentInfo.Name.Equals(agent.AgentInfo.Name))); } _settingsRepository.SetSettings(settings); }
public EditorViewModel(TargetPlatform platform, IEnumerable <IObjectEditor> editors) { if (platform == null) { throw new ArgumentNullException(nameof(platform)); } if (editors == null) { throw new ArgumentNullException(nameof(editors)); } TargetPlatform = platform; var observableEditors = new ObservableCollectionEx <IObjectEditor> (); Editors = observableEditors; observableEditors.CollectionChanged += OnEditorsChanged; observableEditors.AddItems(editors); // Purposefully after the event hookup }
private void RebuildCrmEntries() { try { var entries = _wcfCrmClient.GetAllCrmEntries(); _internalCrmEntries = new ObservableCollectionEx <CrmEntry>(); _internalCrmEntries.AddItems(entries); CrmEntries = CollectionViewSource.GetDefaultView(_internalCrmEntries); CrmEntries.Filter = FilterItem; if (_internalCrmEntries.Count > 0) { SelectedCrmEntry = _internalCrmEntries.First(); } RaisePropertyChanged("CrmEntries"); } catch (Exception ex) { Messenger.Default.Send(new NotificationMessage(ex.Message, ShowWcfWarningWindow)); } }