Exemple #1
0
        private void contextMenuitemSaveAs_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                SaveFileDialog save_fileDialog = new SaveFileDialog()
                {
                    Filter = "PNG (*.png)|*.png|JPEG (*.jpg)|*.jpg|BMP (*.bmp)|*.bmp|Word документ (*.docx)|*.docx"
                };
                if (save_fileDialog.ShowDialog() == true && !String.IsNullOrEmpty(save_fileDialog.FileName))
                {
                    string             file_name = save_fileDialog.FileName;
                    RenderTargetBitmap rtb       = new RenderTargetBitmap((int)chartControl.ActualWidth, (int)chartControl.ActualHeight, 100, 100, PixelFormats.Pbgra32);
                    rtb.Render(chartControl);

                    BitmapEncoder bitmap_encoder = null;
                    if (file_name.Contains(".png"))
                    {
                        bitmap_encoder = new PngBitmapEncoder();
                    }
                    else if (file_name.Contains(".jpg"))
                    {
                        bitmap_encoder = new JpegBitmapEncoder();
                    }
                    else if (file_name.Contains(".bmp"))
                    {
                        bitmap_encoder = new BmpBitmapEncoder();
                    }

                    else if (file_name.Contains(".docx"))
                    {
                        DocumentGenerator.CreateDynamicsReport(CurrentPatient, test_list_, test_type, indicator_, file_name);
                        MessageBox.Show("Документ с отчетом о динамики показателей успешно сохранен!", "", MessageBoxButton.OK, MessageBoxImage.Information);
                        return;
                    }
                    bitmap_encoder.Frames.Add(BitmapFrame.Create(rtb));
                    using (FileStream fs = new FileStream(save_fileDialog.FileName, FileMode.Create))
                    {
                        bitmap_encoder.Save(fs);
                        MessageBox.Show("График динамики показателей успешно сохранен!", "", MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                }
            }
            catch (Exception exception)
            {
                string message = String.Format("Обнаружена проблема при работе программы!\n{0}", exception.Message);
                MessageBox.Show(message, "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        private void menuitemSaveTestAs_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (datagridProcedureInfo.SelectedItem != null)
                {
                    ProcedureInfo  selected_test_info = (ProcedureInfo)datagridProcedureInfo.SelectedItem;
                    SaveFileDialog save_file_dialog   = new SaveFileDialog()
                    {
                        Filter = "Word документ (*.docx)|*.docx|Zip архив (*.zip)|*.zip"
                    };
                    if (save_file_dialog.ShowDialog() == true)
                    {
                        string filename = save_file_dialog.FileName;
                        switch (filename.Substring(filename.LastIndexOf('.') + 1))
                        {
                        case "docx":
                            DocumentGenerator.CreateTestReport(selected_test_info.Patient, selected_test_info.Test, filename);
                            break;

                        case "zip":
                            string directorypath = System.IO.Path.GetDirectoryName(filename);
                            filename = filename.Substring(filename.LastIndexOf(@"\") + 1, filename.LastIndexOf(".") - filename.LastIndexOf(@"\") - 1);
                            Directory.CreateDirectory(directorypath + @"\" + filename);
                            DocumentGenerator.CreateTestReport(selected_test_info.Patient, selected_test_info.Test, directorypath + @"\" + filename + @"\" + filename + ".docx");
                            foreach (var attachment in selected_test_info.Test.Attachments)
                            {
                                File.WriteAllBytes(directorypath + @"\" + filename + @"\" + attachment.Name, attachment.Item);
                            }
                            ZipFile.CreateFromDirectory(directorypath + @"\" + filename, directorypath + @"\" + filename + ".zip");
                            Directory.Delete(directorypath + @"\" + filename, true);
                            break;
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                string message = String.Format("Обнаружена проблема при работе программы!\n{0}", exception.Message);
                MessageBox.Show(message, "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }