Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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;
            }
        }