private void ButtonLoad_Click(object sender, RoutedEventArgs e)
        {
            var dialog = new OpenFileDialog
            {
                Filter = "Recorded Flight|*.flightrecorder"
            };

            if (dialog.ShowDialog() == true)
            {
                using var file    = dialog.OpenFile();
                using var zipFile = new ZipFile(file);

                foreach (ZipEntry entry in zipFile)
                {
                    if (entry.IsFile && entry.Name == "data.json")
                    {
                        using var stream = zipFile.GetInputStream(entry);

                        var reader     = new StreamReader(stream);
                        var dataString = reader.ReadToEnd();

                        var savedData = JsonSerializer.Deserialize <SavedData>(dataString);

                        recorderLogic.FromData(savedData);
                        imageLogic.ClearCache();

                        Draw();
                    }
                }
            }
        }
Beispiel #2
0
        private void ButtonLoad_Click(object sender, RoutedEventArgs e)
        {
            var dialog = new OpenFileDialog
            {
                Filter = "Recorded Flight|*.flightrecorder"
            };

            if (dialog.ShowDialog() == true)
            {
                try
                {
                    using var file    = dialog.OpenFile();
                    using var zipFile = new ZipFile(file);

                    foreach (ZipEntry entry in zipFile)
                    {
                        if (entry.IsFile && entry.Name == "data.json")
                        {
                            using var stream = zipFile.GetInputStream(entry);

                            var reader     = new StreamReader(stream);
                            var dataString = reader.ReadToEnd();

                            var savedData = JsonSerializer.Deserialize <SavedData>(dataString);

                            recorderLogic.FromData(savedData);
                            imageLogic.ClearCache();

                            Draw();
                        }
                    }
                }
                catch (Exception ex)
                {
                    logger.LogError(ex, "Cannot load file");
                    MessageBox.Show("The selected file is not a valid recording or not accessible!\n\nAre you sure you are opening a *.flightrecorder file?", "Flight Recorder", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }