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();
            }
        }
Example #2
0
        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();
            }
        }