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(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(); } }