Exemplo n.º 1
0
        public override void Import(PwDatabase pwStorage, Stream sInput,
                                    IStatusLogger slLogger)
        {
            //Debugger.Launch();

            var pf = new ProviderForm(pwStorage);

            if (pf.ShowDialog() == DialogResult.OK)
            {
                var provider = pf.SelectedProvider;
                var parms    = new ImportParameter
                {
                    Logger = slLogger,

                    Database = pwStorage,
                    Group    = pf.SelectedGroup ?? pwStorage.RootGroup,

                    Profile           = pf.SelectedProfile,
                    CustomProfilePath = pf.CustomProfilePath,

                    Password = pf.MasterPassword,

                    CreationSettings = new CreationSettings
                    {
                        ExtractTitle = pf.ExtractTitle,
                        ExtractIcon  = pf.ExtractIcon,
                        UseDates     = pf.UseDates
                    }
                };

                //could take some time if the webpages need to get crawled
                var task = Task.Factory.StartNew(() => provider.ImportCredentials(parms));

                while (!task.IsCompleted)
                {
                    Thread.Sleep(100);
                    Application.DoEvents();
                }

                if (task.IsFaulted)
                {
                    var       message        = "Error while importing credentials from browser. Some credentials may have been imported.";
                    Exception innerException = null;
                    if (task.Exception != null)
                    {
                        message       += "\n\n" + task.Exception.Message;
                        innerException = task.Exception.InnerException;
                    }

                    throw new Exception(message, innerException);
                }
            }
        }
        public override void Import(PwDatabase pwStorage, Stream sInput,
                                    IStatusLogger slLogger)
        {
            //Debugger.Launch();

            var pf = new ProviderForm(pwStorage);

            if (pf.ShowDialog() == DialogResult.OK)
            {
                var provider = pf.SelectedProvider;
                var parms    = new ImportParameter
                {
                    Logger = slLogger,

                    Database = pwStorage,
                    Group    = pf.SelectedGroup ?? pwStorage.RootGroup,

                    Profile           = pf.SelectedProfile,
                    CustomProfilePath = pf.CustomProfilePath,

                    Password = pf.MasterPassword,

                    CreationSettings = new CreationSettings
                    {
                        ExtractTitle = pf.ExtractTitle,
                        ExtractIcon  = pf.ExtractIcon,
                        UseDates     = pf.UseDates
                    }
                };

                //could take some time if the webpages need to get crawled
                var task = Task.Factory.StartNew(() => provider.ImportCredentials(parms));

                while (!task.IsCompleted)
                {
                    Thread.Sleep(100);
                    Application.DoEvents();
                }

                var exp = task.Exception;
                if (exp != null)
                {
                    if (exp.InnerExceptions.Count > 0)
                    {
                        throw exp.InnerExceptions.First();
                    }

                    throw exp;
                }
            }
        }