void sync_OnSyncFinished(bool status) { try { IPBSync sync = resolver.GetInstanceOf <IPBSync>(); sync.OnSyncFinished -= sync_OnSyncFinished; var browserImporters = resolver.GetAllInstancesOf <BrowserImportStrategyBase>(); var results = browserImporters.Select(s => s.Import()); var importedSitesNum = results.Sum(r => r.Imported); var alredyImportedSitesNum = 0; List <SecureItem> userSites = pbData.GetSecureItemsByItemType(PasswordBoss.Helpers.DefaultProperties.SecurityItemType_PasswordVault).Where(x => x.Site.IsRecommendedSite == false).ToList(); if (userSites.Count == 0) { alredyImportedSitesNum = 0; //we didn't have anything previous. alredyImportedSitesNum can also mean overlapping between browsers } else { alredyImportedSitesNum = results.Sum(r => r.AlreadyImported); } var inAppAnalyitics = resolver.GetInstanceOf <IInAppAnalytics>(); if (inAppAnalyitics != null) { ImportPasswordsItem item = new ImportPasswordsItem(importedSitesNum, ImportPasswordsTrigger.Installer, null); var analytics = inAppAnalyitics.Get <Events.ImportPasswords, ImportPasswordsItem>(); analytics.Log(item); } pbData.ChangePrivateSetting("setup_wizard_imported_passwords_number", importedSitesNum.ToString()); pbData.ChangePrivateSetting("setup_wizard_already_passwords_number", alredyImportedSitesNum.ToString()); AddEmailToPI(); logger.Debug("sync images"); SyncImagesHelper syncImages = new SyncImagesHelper(pbData, webApi); //syncImages.SyncImagesAsync(); syncImages.SyncImages(); logger.Debug("Finished"); } finally { evDone.Set(); } }
void sync_OnSyncFinished() { SyncImagesHelper syncImages = new SyncImagesHelper(pbData, webApi); syncImages.SyncImages(); }
void sync_OnSyncFinished(bool status) { // RIO - Hot path if (!status) { try { string _path = pbData.StorePath; Application.Current.Dispatcher.Invoke((Action)(() => { SystemTray.Logout(); })); int cnt = 3; do { Thread.Sleep(250); try { if (Directory.Exists(_path)) { Directory.Delete(_path, true); } cnt = 0; } catch (Exception ex) { logger.Error(ex.ToString()); } cnt--; } while (cnt > 0); _finishVerification = false; } catch (Exception ex) { logger.Error(ex.ToString()); } finally { Application.Current.Dispatcher.BeginInvoke((Action)(() => { LoginWindow loginWindow = ((PBApp)Application.Current).FindWindow <LoginWindow>(); loginWindow.NavigateloginScreens(); })); evtDone.Set(); } } else { try { LoginViewModel.CheckRSA(new GenerateKeysStep().Execute(), pbData, webAPI); SyncImagesHelper syncImages = new SyncImagesHelper(this.pbData, this.webAPI); syncImages.SyncImages(); _finishVerification = true; } finally { evtDone.Set(); } } }
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(); }
void sync_OnSyncFinished(bool status) { try { IPBSync sync = resolver.GetInstanceOf <IPBSync>(); sync.OnSyncFinished -= sync_OnSyncFinished; List <LoginInfo> chromeLoginInfo = new List <LoginInfo>(); List <LoginInfo> ieLoginInfo = new List <LoginInfo>(); List <LoginInfo> ffLoginInfo = new List <LoginInfo>(); Parallel.Invoke(() => { //loading chrome items parallel if (Browsers.BrowserVersionGetter.GetChromeVersion() != null) { //if (!BrowserHelper.IsChromeOpened) //{ var tmploginInfo = pbData.GetChromeAccounts(); chromeLoginInfo.AddRange(tmploginInfo); //} } } , () => { if (Browsers.BrowserVersionGetter.GetIEVersion() != null) { //if (!BrowserHelper.IsIEOpened) //{ var tmploginInfo = pbData.GetIEAccounts(); ieLoginInfo.AddRange(tmploginInfo); //} } } , () => { if (Browsers.BrowserVersionGetter.GetFFVersion() != null) { //if (!BrowserHelper.IsFFOpened) //{ var tmploginInfo = pbData.GetFFAccounts(() => { return(null); }); ffLoginInfo.AddRange(tmploginInfo); //} } }); SecureItemHelper siHelper = new SecureItemHelper(pbData, sync); int ieImportedSitesNum = 0; int ffImportedSitesNum = 0; int chromeImportedSitesNum = 0; int ieAlredyImportedSitesNum = 0; int ffAlredyImportedSitesNum = 0; int chromeAlredyImportedSitesNum = 0; int alredyImportedSitesNum = 0; List <SecureItem> userSites = pbData.GetSecureItemsByItemType(PasswordBoss.Helpers.DefaultProperties.SecurityItemType_PasswordVault).Where(x => x.Site.IsRecommendedSite == false).ToList(); logger.Debug("Importing sites from browsers - Start"); siHelper.ImportLoginInfoList(chromeLoginInfo.Where(x => !string.IsNullOrWhiteSpace(x.UserName)).Distinct().ToList(), ref chromeImportedSitesNum, ref chromeAlredyImportedSitesNum); siHelper.ImportLoginInfoList(ieLoginInfo.Where(x => !string.IsNullOrWhiteSpace(x.UserName)).Distinct().ToList(), ref ieImportedSitesNum, ref ieAlredyImportedSitesNum); siHelper.ImportLoginInfoList(ffLoginInfo.Where(x => !string.IsNullOrWhiteSpace(x.UserName)).Distinct().ToList(), ref ffImportedSitesNum, ref ffAlredyImportedSitesNum); logger.Debug("Importing sites from browsers - Finish"); var importedSitesNum = ieImportedSitesNum + ffImportedSitesNum + chromeImportedSitesNum; if (userSites.Count == 0) { alredyImportedSitesNum = 0; //we didn't have anything previous. alredyImportedSitesNum can also mean overlapping between browsers } else { alredyImportedSitesNum = ieAlredyImportedSitesNum + ffAlredyImportedSitesNum + chromeAlredyImportedSitesNum; } var inAppAnalyitics = resolver.GetInstanceOf <IInAppAnalytics>(); if (inAppAnalyitics != null) { ImportPasswordsItem item = new ImportPasswordsItem(importedSitesNum, ImportPasswordsTrigger.Installer, null); var analytics = inAppAnalyitics.Get <Events.ImportPasswords, ImportPasswordsItem>(); analytics.Log(item); } pbData.ChangePrivateSetting("setup_wizard_imported_passwords_number", importedSitesNum.ToString()); pbData.ChangePrivateSetting("setup_wizard_already_passwords_number", alredyImportedSitesNum.ToString()); logger.Debug("private settings modified"); AddEmailToPI(); logger.Debug("added email to PI"); SyncImagesHelper syncImages = new SyncImagesHelper(pbData, webApi); syncImages.SyncImages(); logger.Debug("Finished"); } finally { evDone.Set(); } }