public static string Serialize(RecoveryState recoveryState) { var str = new StringBuilder(); str.AppendLine(string.Join(",", recoveryState.SelectionIndices)); str.AppendLine(string.Join <ImageSet>(";", recoveryState.ImageSets)); return(str.ToString()); }
/// <summary> /// Update the status message /// </summary> /// <param name="imagesSorted">Number of images sorted</param> private void UpdateStatus(int imagesSorted) { this.StatusLabel.Text = $"{imagesSorted} of {_totalImages} images sorted"; using (var fout = new StreamWriter(RecoveryState.RestoreFile)) { fout.WriteLine(RecoveryState.Serialize(new RecoveryState(_selectionIndices, _imageSets))); } }
/// <summary> /// Restore from a crashed run. /// </summary> /// <param name="sender">Not used</param> /// <param name="e">Not used</param> private void RestoreButton_Click(object sender, EventArgs e) { if (!File.Exists(RecoveryState.RestoreFile)) { MessageBox.Show("No recovery data exists!"); return; } RecoveryState state; using (var fin = new StreamReader(RecoveryState.RestoreFile)) { state = RecoveryState.Deserialize(fin.ReadToEnd()); } var imageSorter = new ImageSorter(state.ImageSets.ToList(), state.SelectionIndices); this.Visible = false; imageSorter.ShowDialog(); this.Close(); }