private async void Window_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {
                _doctorData = await DDoctor.GetViewData();

                _patientData = await DPatient.GetData();

                _doctorPatientData = await DDoctorPatient.GetViewData();
            }
            catch (Exception exception)
            {
                Utility.MyMessageBox("خطا در بانک اطلاعاتی", "خطا در دریافت اطلاعات\n" + exception.Message);
                Close();
                return;
            }
            _doctorSearchData           = _doctorData;
            _patientSearchData          = _patientData;
            _doctorPatientSearchData    = _doctorPatientData;
            DgdDoctor.ItemsSource       = _doctorSearchData;
            DgdPatient.ItemsSource      = _patientSearchData;
            DgdPatientVisit.ItemsSource = _doctorPatientSearchData;

            BtnNew_Click(null, null);
        }
        private async void BtnEdit_Click(object sender, RoutedEventArgs e)
        {
            if (!CheckSelectEdit() || !CheckEmpty())
            {
                return;
            }
            var selectItem = _doctorPatientSearchData[DgdPatientVisit.SelectedIndex];

            try
            {
                var editDoctorPatient = new DDoctorPatient
                {
                    DId       = selectItem.Id,
                    DDoctorId =
                        DgdDoctor.SelectedIndex == -1 ? DoctorId : _doctorSearchData[DgdDoctor.SelectedIndex].Id,
                    DPatientId = DgdPatient.SelectedIndex == -1
                        ? PatientId
                        : _patientSearchData[DgdPatient.SelectedIndex].Id,
                    DMedicalRecord = TxtMedicalRecord.Text.Trim() == string.Empty ? null : TxtMedicalRecord.Text,
                    DDate          = Utility.CurrectDate(TxtDate.Text),
                    DTime          = Utility.CurrectTime(TxtTime.Text),
                    DDescription   = TxtDescription.Text.Trim() == string.Empty ? null : TxtDescription.Text
                };
                await Task.Run(() => editDoctorPatient.Edit());
            }
            catch (Exception exception)
            {
                Utility.MyMessageBox("خطا در بانک اطلاعاتی", "خطا در ویرایش اطلاعات پزشک\n" + exception.Message);
                return;
            }
            Window_Loaded(null, null);
            Utility.Message("پیام", "اطلاعات با موفقیت ویرایش گردید", "Correct.png");
        }
        private async void BtnDelete_Click(object sender, RoutedEventArgs e)
        {
            if (!CheckSelectDelete())
            {
                return;
            }
            var selectItem = _doctorPatientSearchData[DgdPatientVisit.SelectedIndex];

            Utility.MyMessageBox("هشدار", "آیا از حذف اطمینان دارید؟ ", "Warning.png", false);
            if (!Utility.YesNo)
            {
                return;
            }
            try
            {
                var deleteDoctorPatient = new DDoctorPatient
                {
                    DId = selectItem.Id
                };
                await Task.Run(() => deleteDoctorPatient.Delete());
            }
            catch (Exception exception)
            {
                Utility.MyMessageBox("خطا در بانک اطلاعاتی", "خطا در حذف اطلاعات\n" + exception.Message);
                return;
            }
            Window_Loaded(null, null);
            Utility.Message("پیام", "اطلاعات با موفقیت حذف گردید", "Correct.png");
        }
        private async void BtnAdd_Click(object sender, RoutedEventArgs e)
        {
            if (!CheckEmpty())
            {
                return;
            }

            #region AddDoctor

            try
            {
                var addDoctorPatient = new DDoctorPatient
                {
                    DDoctorId      = _doctorSearchData[DgdDoctor.SelectedIndex].Id,
                    DPatientId     = _patientSearchData[DgdPatient.SelectedIndex].Id,
                    DMedicalRecord = TxtMedicalRecord.Text.Trim() == string.Empty ? null : TxtMedicalRecord.Text,
                    DDate          = Utility.CurrectDate(TxtDate.Text),
                    DTime          = Utility.CurrectTime(TxtTime.Text),
                    DDescription   = TxtDescription.Text.Trim() == string.Empty ? null : TxtDescription.Text
                };
                await Task.Run(() => addDoctorPatient.Add());
            }
            catch (Exception exception)
            {
                Utility.MyMessageBox("خطا در بانک اطلاعاتی", "خطا در ثبت اطلاعات پزشک\n" + exception.Message);
            }
            Window_Loaded(null, null);
            Utility.Message("پیام", "اطلاعات با موفقیت ثبت گردید", "Correct.png");

            #endregion
        }