/// <summary> /// ctor /// </summary> public SecureItemsHolderViewModel(IResolver resolver, List <AddSecureSubItem> addItems, string type) { this.resolver = resolver; if (_pbExtSecureBrowserBridge == null) { _pbExtSecureBrowserBridge = resolver.GetInstanceOf <IPBExtSecureBrowserBridge>(); } pbData = resolver.GetInstanceOf <IPBData>(); InitializeCommands(); //TODO check if there is any passwords, if not _recommendedsiteFlag set true _recommendedsiteFlag = false; SecureItemList = new List <ISecureItemVM>(); _subItemsComponentTree = addItems; SecureItemType = type; ShowLandingScreen = pbData.GetSecureItemCountByType(SecureItemType) == 0 ? true : false; RefreshData(); }
public MainWindow([Import(typeof(IResolver))] IResolver resolver)//[ImportMany] IEnumerable<IUIComponent> components, [Import(typeof(IPBData))]IPBData pbData) { Application.Current.MainWindow = this; application = (PBApp)Application.Current; //masterDialog = new MasterPwdBox(); this.resolver = resolver; this.components = resolver.GetAllInstancesOf <IUIComponent>(); if (this.components == null) { this.components = new List <IUIComponent>(); } this.subComponents = resolver.GetAllInstancesOf <IUISubComponent>(); if (this.subComponents == null) { this.subComponents = new List <IUISubComponent>(); } this.dialogs = resolver.GetAllInstancesOf <IDialog>(); if (this.dialogs == null) { this.dialogs = new List <IDialog>(); } this.pbData = resolver.GetInstanceOf <IPBData>(); ServiceLocator.Register <IFolderService>(new FolderService(pbData)); this.webApi = resolver.GetInstanceOf <IPBWebAPI>(); this.accountSettingsUserControl = new AccountSettings.AccountSettings(resolver) { Visibility = System.Windows.Visibility.Collapsed }; this.accountSettingsUserControl.Loaded += accountSettingsUserControl_Loaded; this.searchViewModel = new SearchViewModel(resolver, SecureHolderCollection); searchViewModel.ChangeVisibility += (o, e) => { topGrid.Visibility = searchViewModel.IsOpen ? Visibility.Collapsed : Visibility.Visible; var component = components.FirstOrDefault(x => x.ID == selectedUIComponentID); if (component != null) { component.Selected = !searchViewModel.IsOpen; } }; folderTreeViewModel = new FoldersTreeViewModel(resolver); folderTreeViewModel.SelectedFolder_Changed += (o, e) => { if (selectedUIComponentID != null) { var component = components.FirstOrDefault(x => x.ID == selectedUIComponentID); if (component != null && component.ViewModel is ISecureHolder) { ((ISecureHolder)component.ViewModel).UpdateTreeView(); } } }; folderTreeViewModel.FolderList_Changed += (o, e) => { Reload(); }; folderTreeViewModel.ItemsToFolder_Moved += (o, e) => { if (selectedUIComponentID != null) { foreach (var item in e.Items.GroupBy(x => (x as ISecureItemVM).Type)) { var holder = SecureHolderCollection.FirstOrDefault(x => x.SecureItemType == item.Key); if (holder != null) { holder.MoveSecureItemToFolder(item, e.FolderId); } } } }; foreach (var holder in SecureHolderCollection) { holder.FolderListUpdated += (o, e) => { folderTreeViewModel.UpdateFolderTree(); }; holder.DataUpdated += (o, e) => { searchViewModel.Update(); }; holder.AddSecureItem += (o, e) => { addBtn_Click(null, null); }; } syncImagesHelper = new SyncImagesHelper(pbData, webApi); //this.pbData.OnLoginToProfile(pbData_LoginToProfile); this.pbData.OnProfileLock += ProfileLock; this.pbData.OnUserLoggedIn += pbData_OnUserLoggedIn; Title = this.pbData.ActiveUser; resizer = new WindowResizer(this); InitializeComponent(); LoadMenu(); //LoadDialog(dialogOrder); Closing += OnMainClosing; sync = resolver.GetInstanceOf <IPBSync>(); if (sync != null) { sync.OnSyncFinished += sync_OnSyncFinished; sync.OnSyncDeviceDeleted += sync_OnSyncDeviceDeleted; //sync.OnSyncSuccess += sync_OnSyncSuccess; } var advertControl = new MainWindowAdvertising(resolver); inAppAdvertisingGrid.Children.Add(advertControl); Grid.SetColumn(advertControl, 1); ucMainSearchBox.DataContext = searchViewModel; mainSearchResultPanel.DataContext = searchViewModel; selectFolderControl.DataContext = folderTreeViewModel; this.ResizeMode = System.Windows.ResizeMode.CanMinimize; this.ShowInTaskbar = true; LoadForShowOnStartup(); if (_pbExtSecureBrowserBridge == null) { _pbExtSecureBrowserBridge = resolver.GetInstanceOf <IPBExtSecureBrowserBridge>(); } this.Activated += MainWindow_Activated; SyncAsync(); var test = this.FindName("menuUserControl") as MenuUserControl; this.DataContext = new MainWindowViewModel(); }