public List <DoctorViewModel> Read(DoctorBindingModel model)
 {
     if (model == null)
     {
         return(_doctorStorage.GetFullList());
     }
     if (model.Id.HasValue)
     {
         return(new List <DoctorViewModel> {
             _doctorStorage.GetElement(model)
         });
     }
     return(_doctorStorage.GetFilteredList(model));
 }
        public List <ReportDiseasesViewModel> GetDiseases(ReportBindingModel model)
        {
            var drugCourseList = _drugCourseStorage.GetFilteredList(new DrugCourseBindingModel {
                DateFrom = model.DateFrom, DateTo = model.DateTo, Id = model.DoctorId
            });
            var listAll = new List <ReportDiseasesViewModel>();

            foreach (var drugCourse in drugCourseList)
            {
                foreach (var dc in drugCourse.DrugCourseDiseases)
                {
                    var doctor = _doctorStorage.GetElement(new DoctorBindingModel {
                        Id = drugCourse.DoctorId
                    });
                    listAll.Add(new ReportDiseasesViewModel
                    {
                        Type = "Выписка о приёме препарата " + _medicineStorage.GetElement(new MedicineBindingModel {
                            Id = drugCourse.MedicineId
                        }).Name,
                        DiseaseName = dc.Value.Item1,
                        DateFormed  = drugCourse.FormedDate,
                        Length      = dc.Value.Item2,
                        DoctorName  = doctor.F_Name + " " + doctor.L_Name
                    });
                }
            }
            var listSymptomatics = _symptomaticStorage.GetFilteredList(new SymptomaticsBindingModel {
                DateFrom = model.DateFrom, DateTo = model.DateTo
            });

            foreach (var sympt in listSymptomatics)
            {
                foreach (var dc in sympt.SymptomaticDiseases)
                {
                    var doctor = _doctorStorage.GetElement(new DoctorBindingModel {
                        Id = sympt.DoctorId
                    });
                    listAll.Add(new ReportDiseasesViewModel
                    {
                        Type        = "Выписка о симптоме " + sympt.SymptomName,
                        DiseaseName = dc.Value.Item1,
                        DateFormed  = sympt.IssueDate,
                        Length      = dc.Value.Item2,
                        DoctorName  = doctor.F_Name + " " + doctor.L_Name
                    });
                }
            }
            return(listAll);
        }
 private void buttonToPdf_Click(object sender, RoutedEventArgs e)
 {
     if (datePickerFrom.SelectedDate >= datePickerTo.SelectedDate)
     {
         MessageBox.Show("Неверное выставление даты начала", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
         return;
     }
     try
     {
         logic.SaveDiseasesToPdfFile(new ReportBindingModel
         {
             FileName = "D:\\Otchet.pdf",
             DateFrom = datePickerFrom.SelectedDate,
             DateTo   = datePickerTo.SelectedDate,
             DoctorId = id
         });
         MailLogic.MailSendAsync(new MailSendInfo
         {
             MailAddress = _doctorStorage.GetElement(new DoctorBindingModel {
                 Id = id
             })?.EMail,
             Subject = $"Отчет",
             Text    = "Отчет по заболеваниям за период c " + datePickerFrom.SelectedDate.Value.ToShortDateString() +
                       " по " + datePickerTo.SelectedDate.Value.ToShortDateString(),
             File = "D:\\Otchet.pdf"
         });
         MessageBox.Show("Сообщение отправлено", "Успех", MessageBoxButton.OK, MessageBoxImage.Information);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }