public MailboxViewModel(MailboxWrapper mailbox) { Mailbox = mailbox; Folders = new ObservableCollection <MailboxFolderViewModel>(); Delegates = new DelegatesViewModel(this); getFoldersWorker = new BackgroundWorker(); getFoldersWorker.DoWork += getFoldersWorker_DoWork; getFoldersWorker.RunWorkerCompleted += getFoldersWorker_RunWorkerCompleted; getFoldersWorker.RunWorkerAsync(); MailboxesAndGroupsView = new ListCollectionView(MasterAddressList); MailboxesAndGroupsView.Filter = obj => (((MailboxWrapper)obj).DistinguishedName != Mailbox.DistinguishedName); }
private void addMailboxViewModelTab() { MailboxWrapper selected = (MailboxWrapper)UserMailboxesView.CurrentItem; //Check if the selected mailbox is already open, and if it is make it the selected tab. MailboxViewModel dup = MailboxViewModels.SingleOrDefault(x => x.Mailbox.DistinguishedName == selected.DistinguishedName); if (dup == null) { MailboxViewModel newTab = new MailboxViewModel(selected); newTab.IsSelected = true; MailboxViewModels.Add(newTab); } else { dup.IsSelected = true; } }
private bool filterDelegatesList(object obj) { MailboxWrapper mailbox = obj as MailboxWrapper; //You can't add groups as delegates. if (mailbox.RecipientType.Contains("Group")) { return(false); } //You can't add the user as a delegate to their own mailbox. if (mailbox.DistinguishedName == ParentMailboxViewModel.Mailbox.DistinguishedName) { return(false); } //Neither can you add users who are already delegates. DelegateUserViewModel dup = DelegateUsers.SingleOrDefault(x => x.EwsDelegateUser.UserId.PrimarySmtpAddress == mailbox.PrimarySmtp); if (dup != null) { return(false); } return(true); }