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