private void OnCorrectChecksumsCompleted(Operation operation, bool success) { //UI should occur on the UI thread... Dispatcher.Invoke((Action)(() => { App.PercentOperationComplete = 100.0f; App.OperationInProgress = false; var correctOperation = operation as Checksum.CorrectChecksumsOperation; App.DisplayStatusMessage("Corrected " + correctOperation.NumCorrectedChecksums + " of " + correctOperation.NumChecksums + " checksums.", StatusMessageType.USER); if (success) { App.DisplayStatusMessage("Checksums updated to correct values.", StatusMessageType.USER); if (FlashMemoryImage.SaveToFile(FileNameToFlash)) { App.DisplayStatusMessage("Saved changes to file: " + FileNameToFlash, StatusMessageType.USER); } else { App.DisplayStatusMessage("Failed to save changes to file: " + FileNameToFlash, StatusMessageType.USER); } } else { App.DisplayStatusMessage("Failed to correct checksums.", StatusMessageType.USER); } })); }
private void LoadFlashFile() { if (FlashMemoryImage != null) { FlashMemoryImage.Reset(); } IsFlashFileOK = false; string error = null; if (FlashMemoryImage == null) { error = "Internal program error"; } else if (!String.IsNullOrEmpty(FileNameToFlash)) { Properties.Settings.Default.FlashFile = FileNameToFlash; try { var fileBytes = File.ReadAllBytes(FileNameToFlash); FlashMemoryImage = new MemoryImage(fileBytes, 0); ValidateFileToFlash(FlashMemoryImage, FlashMemoryLayout, out error); } catch (Exception) { error = "Could not read flash file"; } } else { error = "No file selected"; } //force and update without setting the property OnPropertyChanged(new PropertyChangedEventArgs("FlashMemoryImage")); this["FileNameToFlash"] = error; IsFlashFileOK = (error == null); }