public RarPasswordViewModel(CorruptedRarOrMissingPasswordArgs iCorruptedRarOrMissingPasswordArgs) { _CorruptedRarOrMissingPasswordArgs = iCorruptedRarOrMissingPasswordArgs; _SavePassword = _CorruptedRarOrMissingPasswordArgs.SavePassword; _Who = _CorruptedRarOrMissingPasswordArgs.Who; _What = _CorruptedRarOrMissingPasswordArgs.What; OK = RelayCommand.Instanciate(() => { _CorruptedRarOrMissingPasswordArgs.accept = !string.IsNullOrEmpty(Password); _CorruptedRarOrMissingPasswordArgs.Password = Password; _CorruptedRarOrMissingPasswordArgs.SavePassword = SavePassword; Window.Close(); }); Cancel = RelayCommand.Instanciate(() =>{ _CorruptedRarOrMissingPasswordArgs.accept = false; Window.Close();}); }
private bool OnErrorUserExit(IEventListener iel,CorruptedRarOrMissingPasswordArgs cr) { iel.Report(cr); if ((cr.accept) && (cr.SavePassword)) _IUnrarUserSettings. AddPassword(cr.Password); if (_AddRar!=cr.SavePassword) { _IUnrarUserSettings.AddUseRarPasswordToList = cr.SavePassword; _AddRar = cr.SavePassword; return true; } return false; }
private SevenZipExtractor InstanciateZipExctractorWithPassword(string FileName, IEventListener iel) { SevenZipExtractor Sex = new SevenZipExtractor(FileName); bool valid = Sex.Check(); if (valid == false) { Sex.Dispose(); foreach (string psw in _IUnrarUserSettings.EnumerableRarPasswords) { Sex = new SevenZipExtractor(FileName, psw); if (Sex.Check()) { Trace.WriteLine(string.Format("Find Password in list: {0}", psw)); return Sex; } else Sex.Dispose(); } string same = Path.GetFileName(FileName); CorruptedRarOrMissingPasswordArgs cr = new CorruptedRarOrMissingPasswordArgs(same, _AddRar); OnErrorUserExit(iel, cr); while ((!valid) && (cr.accept == true)) { Sex = new SevenZipExtractor(FileName, cr.Password); valid = Sex.Check(); if (valid == false) { Sex.Dispose(); cr = new CorruptedRarOrMissingPasswordArgs(same, cr.SavePassword); OnErrorUserExit(iel, cr); } } if (valid == false) return null; } return Sex; }