public bool FileTryDecrypt() { if (dsTmp != null) { try { EncryptionHelper.Instance.Password = this.Password; StringReader reader = new StringReader(EncryptionHelper.Instance.Decrypt(dsTmp.Setup[0].EncryptedData)); MoneyDataSet dsTry = new MoneyDataSet(); dsTry.ReadXml(reader); dsTmp = dsTry; return true; } catch (CryptographicException ce) { Log.Write(ce); return false; } } else { return false; } }
public bool FilePreLoad() { // loading file to dsTmp, only basic checks are done try { if (String.IsNullOrWhiteSpace(filename)) { // looking up command line (first parameter is a datafile name) String[] commandLine = Environment.GetCommandLineArgs(); if (commandLine.Count() > 1) { dataFilename = commandLine[1]; } else { String folderName = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + Path.DirectorySeparatorChar + Consts.Application.ProfileFolder; // looking up for default data files dataFilename = folderName + Path.DirectorySeparatorChar + Consts.Application.DefaultFileName; if (!File.Exists(dataFilename)) { dataFilename = folderName + Path.DirectorySeparatorChar + Consts.Application.XmlDataFileName; } String backupFileName = folderName + Path.DirectorySeparatorChar + String.Format(Consts.Application.BackupFileNameFormat, DateTime.Now); // backup current file if ((File.Exists(dataFilename)) && (!File.Exists(backupFileName))) { File.Copy(dataFilename, backupFileName); } // remove archives that are too old foreach (String fileName in Directory.EnumerateFiles(folderName, Consts.Application.BackupFileSearchPattern)) { if (File.GetLastWriteTime(fileName).AddDays(Parameters.KeepArchivesDays) < DateTime.Now) { File.Delete(fileName); } } } } else { dataFilename = filename; } dsTmp = new MoneyDataSet(); if (File.Exists(dataFilename)) { dsTmp.ReadXml(dataFilename); } return true; } catch (Exception e) { ErrorHelper.ShowErrorBox(ErrorHelper.Errors.ErrorReadingData, e); return false; } }