Example #1
0
        /// <summary>
        /// Gets the datafile report.
        /// </summary>
        /// <value>The datafile report.</value>
        private static string GetDatafileReport()
        {
            StringBuilder datafileReport = new StringBuilder();

            try
            {
                datafileReport.AppendLine("Datafile report:");

                foreach (string datafile in Datafile.GetFilesFrom(EveMonClient.EVEMonDataDir,
                                                                  Datafile.DatafilesExtension))
                {
                    FileInfo info = new FileInfo(datafile);
                    Datafile file = new Datafile(Path.GetFileName(datafile));

                    datafileReport.AppendLine($"  {info.Name} ({info.Length / 1024}KiB - {file.MD5Sum})");
                }
            }
            catch (UnauthorizedAccessException ex)
            {
                ExceptionHandler.LogException(ex, true);
                datafileReport.AppendLine(Properties.Resources.ErrorNoDataFile);
            }

            return(datafileReport.ToString());
        }
Example #2
0
        /// <summary>
        /// Downloads the updates.
        /// </summary>
        private void DownloadUpdates()
        {
            List <SerializableDatafile> datafiles = new List <SerializableDatafile>();

            // Copy the new datafiles to a new list
            datafiles.AddRange(m_args.ChangedFiles);

            // Show the download dialog, which will download the files
            using (DataUpdateDownloadForm form = new DataUpdateDownloadForm(datafiles))
            {
                form.ShowDialog();
            }

            foreach (SerializableDatafile versionDatafile in datafiles.Where(datafile => datafile.IsDownloaded))
            {
                string oldFilename  = Path.Combine(EveMonClient.EVEMonDataDir, versionDatafile.Name);
                string tempFilename = $"{oldFilename}.tmp";

                Datafile downloadedDatafile = new Datafile(Path.GetFileName(tempFilename));

                if (versionDatafile.MD5Sum != null && versionDatafile.MD5Sum != downloadedDatafile.MD5Sum)
                {
                    FileHelper.DeleteFile(tempFilename);
                    continue;
                }

                UpdateManager.ReplaceDatafile(oldFilename, tempFilename);
                m_args.ChangedFiles.Remove(versionDatafile);
            }
        }
Example #3
0
        static List <Datafile> TakeFileSnapshot(string sourceDirName)
        {
            List <string> validExtensions = new List <string>()
            {
                ".txt", ".bak", ".sql"
            };
            var minModifiedDate = new DateTime(2019, 12, 18);

            List <Datafile> Datafiles = new List <Datafile>();

            foreach (var file in Directory.EnumerateFiles(sourceDirName,
                                                          "*.*",
                                                          SearchOption.AllDirectories))
            {
                var fFile = new FileInfo(file);

                if ((validExtensions.Contains(fFile.Extension)) && (minModifiedDate <= fFile.LastAccessTime))
                {
                    var newSourceFile = new Datafile();

                    newSourceFile.fileName       = fFile.Name;
                    newSourceFile.lastAccessTime = fFile.LastAccessTime;
                    newSourceFile.size           = fFile.Length;
                    newSourceFile.extension      = fFile.Extension;
                    newSourceFile.directory      = fFile.DirectoryName;
                    newSourceFile.status         = "Snapshot";

                    Datafiles.Add(newSourceFile);
                }
            }

            return(Datafiles);
        }
Example #4
0
        /// <summary>
        /// Creates one file alongside the resources file containing
        /// the MD5 sums for each resource.
        /// </summary>
        /// <param name="filename">The filename.</param>
        /// <exception cref="System.IO.FileNotFoundException"></exception>
        internal static void CreateMD5SumsFile(string filename)
        {
            ResetCounters();

            Console.WriteLine();

            string resourcesPath       = Path.Combine(GetSolutionDirectory(), @"src\EVEMon.Common\Resources");
            string md5SumsFileFullPath = Path.Combine(resourcesPath, filename);

            using (StreamWriter md5SumsFile = File.CreateText(md5SumsFileFullPath))
            {
                foreach (string file in Datafile.GetFilesFrom(resourcesPath, Datafile.DatafilesExtension))
                {
                    FileInfo datafile = new FileInfo(file);
                    if (!datafile.Exists)
                    {
                        throw new FileNotFoundException($"{file} not found!");
                    }

                    string line = $"{Common.Util.CreateMD5From(file)} *{datafile.Name}";
                    md5SumsFile.WriteLine(line);
                }
            }

            Console.WriteLine(@"MD5Sums file created successfully");
            Console.WriteLine();
        }
Example #5
0
        /// <summary>
        /// Updates the info in the data files section.
        /// </summary>
        /// <param name="control"></param>
        /// <param name="datafile"></param>
        private static void UpdateDatafileInfo(DatafileControl control, Datafile datafile)
        {
            // Data file info
            FileInfo fileInfo = new FileInfo(Path.Combine(Helper.GetDataFilesDirectory, datafile.Filename));

            // Assign info
            control.gbDatafile.Text    = datafile.Filename;
            control.lblMD5Sum.Text     = datafile.MD5Sum;
            control.dtpDatafiles.Value = fileInfo.LastWriteTime;
        }
        /// <summary>
        /// Downloads the updates.
        /// </summary>
        private void DownloadUpdates()
        {
            List <SerializableDatafile> datafiles = new List <SerializableDatafile>();

            // Copy the list of datafiles
            m_args.ChangedFiles.ForEach(x => datafiles.Add(x));

            foreach (var dfv in datafiles)
            {
                // Work out the new names of the files
                string urn         = String.Format(CultureConstants.DefaultCulture, "{0}/{1}", dfv.Url, dfv.Name);
                string oldFilename = Path.Combine(EveClient.EVEMonDataDir, dfv.Name);
                string newFilename = String.Format(CultureConstants.DefaultCulture, "{0}.tmp", oldFilename);

                // If the file already exists delete it
                if (File.Exists(newFilename))
                {
                    File.Delete(newFilename);
                }

                // Show the download dialog, which will download the file
                using (UpdateDownloadForm f = new UpdateDownloadForm(urn, newFilename))
                {
                    if (f.ShowDialog() == DialogResult.OK)
                    {
                        string   filename = Path.GetFileName(newFilename);
                        Datafile datafile = new Datafile(filename);

                        if (datafile.MD5Sum != dfv.MD5Sum)
                        {
                            File.Delete(newFilename);
                            continue;
                        }

                        ReplaceDatafile(oldFilename, newFilename);
                        m_args.ChangedFiles.Remove(dfv);
                    }
                }
            }
        }
Example #7
0
        /// <summary>
        /// Occurs on clicking the "clear all" button in datafiles section.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDatafilesClear_Click(object sender, EventArgs e)
        {
            rtbDatafileUrl.ResetText();
            tbExpansion.ResetText();
            tbExpVersion.ResetText();
            tbExpRevision.ResetText();

            foreach (DatafileControl dfControl in gbDatafiles.Controls.OfType <DatafileControl>().Where(x => x != null))
            {
                dfControl.dtpDatafiles.ResetText();
                dfControl.rtbDatafileMessage.ResetText();

                Datafile datafile = s_datafiles.First(x => x.Filename == dfControl.gbDatafile.Text);

                if (datafile != null)
                {
                    UpdateDatafileInfo(dfControl, datafile);
                }
            }

            UpdateCreateButtonEnabled();
        }
Example #8
0
 /// <summary>
 /// Write sensor values to file
 /// </summary>
 /// <param name="SensorValue">Tinkerforge Sensor plugin value</param>
 public void HandleValue(MeasurementValue SensorValue)
 {
     Datafile.WriteLine(SensorValue.ToJSON());
 }
Example #9
0
 /// <summary>
 /// Close the file
 /// </summary>
 public void Shutdown()
 {
     Datafile.Flush();
     Datafile.Close();
 }
        /// <summary>
        /// Downloads the updates.
        /// </summary>
        private void DownloadUpdates()
        {
            List<SerializableDatafile> datafiles = new List<SerializableDatafile>();

            // Copy the new datafiles to a new list
            datafiles.AddRange(m_args.ChangedFiles);

            // Show the download dialog, which will download the files
            using (DataUpdateDownloadForm form = new DataUpdateDownloadForm(datafiles))
            {
                form.ShowDialog();
            }

            foreach (SerializableDatafile versionDatafile in datafiles.Where(datafile => datafile.IsDownloaded))
            {
                string oldFilename = Path.Combine(EveMonClient.EVEMonDataDir, versionDatafile.Name);
                string tempFilename = $"{oldFilename}.tmp";

                Datafile downloadedDatafile = new Datafile(Path.GetFileName(tempFilename));

                if (versionDatafile.MD5Sum != null && versionDatafile.MD5Sum != downloadedDatafile.MD5Sum)
                {
                    FileHelper.DeleteFile(tempFilename);
                    continue;
                }

                UpdateManager.ReplaceDatafile(oldFilename, tempFilename);
                m_args.ChangedFiles.Remove(versionDatafile);
            }
        }
        /// <summary>
        /// Updates the info in the data files section.
        /// </summary>
        /// <param name="control"></param>
        /// <param name="datafile"></param>
        private static void UpdateDatafileInfo(DatafileControl control, Datafile datafile)
        {
            // Data file info
            FileInfo fileInfo = new FileInfo(Path.Combine(Helper.GetDataFilesDirectory, datafile.Filename));

            // Assign info
            control.gbDatafile.Text = datafile.Filename;
            control.lblMD5Sum.Text = datafile.MD5Sum;
            control.dtpDatafiles.Value = fileInfo.LastWriteTime;
        }
        /// <summary>
        /// Gets the datafile report.
        /// </summary>
        /// <value>The datafile report.</value>
        private static string GetDatafileReport()
        {
            StringBuilder datafileReport = new StringBuilder();

            try
            {
                datafileReport.AppendLine("Datafile report:");

                foreach (string datafile in Datafile.GetFilesFrom(EveMonClient.EVEMonDataDir, Datafile.DatafilesExtension))
                {
                    FileInfo info = new FileInfo(datafile);
                    Datafile file = new Datafile(Path.GetFileName(datafile));

                    datafileReport
                        .Append($"  {info.Name} ({info.Length / 1024}KiB - {file.MD5Sum})")
                        .AppendLine();
                }
            }
            catch (UnauthorizedAccessException ex)
            {
                ExceptionHandler.LogException(ex, true);
                datafileReport
                    .Append("Unable to create datafile report")
                    .AppendLine();
            }

            return datafileReport.ToString();
        }