123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- using Microsoft.Win32;
- using StationProbe;
- using System.IO;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Media.Imaging;
- namespace TestViewer
- {
- /// <summary>
- /// Interaction logic for MainWindow.xaml
- /// </summary>
- public partial class MainWindow : Window
- {
- private readonly Database _db;
- private int _pageIndex = -1;
- private int _pageCount = 0;
- public MainWindow()
- {
- InitializeComponent();
- var fileDialog = new OpenFileDialog();
- fileDialog.Title = "Open database file";
- fileDialog.Filter = "*.db|*.db";
- if(fileDialog.ShowDialog() == true)
- {
- _db = new Database(fileDialog.FileName);
- PageIndex.Text = $"{_pageIndex + 1}/{_pageCount}";
- var batchTasks = _db.GetBatchTasks();
- foreach (var task in batchTasks)
- {
- BatchTaskList.Items.Add(task);
- }
- BatchTaskList.SelectionChanged += OnBatchTaskSelectionChanged;
- ExamList.SelectionChanged += OnExamSelectionChanged;
- }
- else
- {
- Application.Current.Shutdown(0);
- }
- }
- private void OnBatchTaskSelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- var batchTask = BatchTaskList.SelectedValue as BatchTask;
- if (batchTask != null)
- {
- var lastExam = _db.GetLastExam(batchTask.Id);
- if (lastExam != null)
- {
- _pageIndex = 0;
- _pageCount = lastExam.PageIndex + 1;
- var exams = _db.GetExams(batchTask.Id, _pageIndex);
- foreach (var exam in exams)
- {
- ExamList.Items.Add(exam);
- }
- PageIndex.Text = $"{_pageIndex + 1}/{_pageCount}";
- }
- }
- }
- private void OnExamSelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- ExamContent.Children.Clear();
- if (ExamList.SelectedValue != null)
- {
- var exam = ExamList.SelectedValue as Exam;
- if (exam != null)
- {
- ExamContent.Children.Add(new TextBlock()
- {
- Margin = new Thickness(16),
- Text = exam.Report,
- FontSize = 20,
- TextWrapping = TextWrapping.Wrap
- });
- var images = _db.GetImages(exam.Id);
- foreach (var image in images)
- {
- var img = new BitmapImage();
- img.BeginInit();
- img.StreamSource = new MemoryStream(image.Data);
- img.EndInit();
- ExamContent.Children.Add(new System.Windows.Controls.Image()
- {
- Margin = new Thickness(4),
- Source = img
- });
- }
- }
- }
- }
- private void OnNextPageClick(object sender, RoutedEventArgs e)
- {
- if (_pageIndex < _pageCount - 1)
- {
- var batchTask = BatchTaskList.SelectedValue as BatchTask;
- if (batchTask != null)
- {
- ExamList.Items.Clear();
- _pageIndex++;
- var exams = _db.GetExams(batchTask.Id, _pageIndex);
- foreach (var exam in exams)
- {
- ExamList.Items.Add(exam);
- }
- PageIndex.Text = $"{_pageIndex + 1}/{_pageCount}";
- }
- }
- }
- private void OnPreviousPageClick(object sender, RoutedEventArgs e)
- {
- if (_pageIndex > 0)
- {
- var batchTask = BatchTaskList.SelectedValue as BatchTask;
- if (batchTask != null)
- {
- ExamList.Items.Clear();
- _pageIndex--;
- var exams = _db.GetExams(batchTask.Id, _pageIndex);
- foreach (var exam in exams)
- {
- ExamList.Items.Add(exam);
- }
- PageIndex.Text = $"{_pageIndex + 1}/{_pageCount}";
- }
- }
- }
- }
- }
|