internal static void InstallFilesRoutine(UpdateWindow ui, Dictionary <string, object> args) { ui.CurrentProgress = ui.MaxProgress; ui.OveralCurrentProgress = ui.OveralMaxProgress; ui.Status = MultiLanguage.Text.UpdateStatusInstallingFiles; ui.Details = MultiLanguage.Text.UpdateDetailsInstallingFiles; foreach ( var file in Directory.GetFiles(Settings.Instance.Directories.SystemDirectory, "*.dll", SearchOption.AllDirectories) .Where( file => !Md5Hash.Compare(Md5Hash.ComputeFromFile(file), Md5Hash.ComputeFromFile( Path.Combine(Settings.Instance.Directories.LibrariesDirectory, Path.GetFileName(file)))))) { try { FileHelper.CopyFile(file, Settings.Instance.Directories.LibrariesDirectory); } catch (Exception) { MessageBox.Show( string.Format(MultiLanguage.Text.ErrorUpdateFailedToCopyFile, Path.GetFileName(file)), MultiLanguage.Text.UpdateStatusInstallingFiles, MessageBoxButton.OK, MessageBoxImage.Information); } } foreach (var file in Directory.GetFiles(Environment.CurrentDirectory, "*.old", SearchOption.AllDirectories)) { try { File.Delete(file); } catch (Exception) { // ignored } } if (args.ContainsKey("restartRequired") && (bool)args["restartRequired"]) { EnvironmentHelper.Restart(true); } PathRandomizer.Randomize(); }