private void AddReplacementFromNeedsReplacementForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (DialogResult == DialogResult.OK)
            {
                try
                {
                    if (SelectedCarrierUseID == -1)
                    {
                        throw new Exception("Произошла ошибка при загрузке формы. Сохранение невозможно");
                    }
                    AutoschoolDataSet TempDS = new AutoschoolDataSet();
                    TempDS = BusinessLogic.ReadInstructorByID(SelectedInstructorID);
                    if (TempDS.Instructors[0]["WorkStatusName"].ToString() != "Работает")
                    {
                        DialogResult result = MessageBox.Show("Выбран отсутствующий инструктор. Вы уверены, что хотите продолжить?", "Выбор отсутствующего сотрудника", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                        if (result == DialogResult.No)
                        {
                            e.Cancel = true;
                            return;
                        }
                    }
                    if (SelectedReplacingCarrierID == -1)
                    {
                        throw new Exception("Не выбрано заменяющее ТС");
                    }
                    TempDS = BusinessLogic.ReadReplacementsCarriersByCarrierUseID(Convert.ToInt32(BusinessLogic.ReadCarriersUsesByInstructorCarrierID(SelectedInstructorID, SelectedReplaceableCarrierID).CarriersUses[0]["ID"].ToString()));
                    for (int i = 0; i < TempDS.ReplacementsCarriers.Rows.Count; i++)
                    {
                        DateTime BeginReplacementInBdRow = Convert.ToDateTime(TempDS.ReplacementsCarriers.Rows[i]["DateBeginReplacement"].ToString()).Date;
                        DateTime EndReplacementInBdRow   = Convert.ToDateTime(TempDS.ReplacementsCarriers.Rows[i]["DateEndReplacement"].ToString()).Date;
                        DateTime Begin = Convert.ToDateTime(BeginReplacement_dateTimePicker.Text).Date;
                        DateTime End   = Convert.ToDateTime(EndReplacement_dateTimePicker.Text).Date;
                        if (BeginReplacementInBdRow > Begin && End < BeginReplacementInBdRow)
                        {
                            continue;
                        }
                        if (EndReplacementInBdRow < Begin)
                        {
                            continue;
                        }
                        else
                        {
                            throw new Exception("Выбранное заменяемое ТС у данного водителя уже заменяется в указанное время");
                        }
                    }

                    TempDS = BusinessLogic.ReadReplacementsCarriersByCarrierReplacementID(SelectedReplacingCarrierID);
                    for (int i = 0; i < TempDS.ReplacementsCarriers.Rows.Count; i++)
                    {
                        DateTime BeginReplacementInBdRow = Convert.ToDateTime(TempDS.ReplacementsCarriers.Rows[i]["DateBeginReplacement"].ToString()).Date;
                        DateTime EndReplacementInBdRow   = Convert.ToDateTime(TempDS.ReplacementsCarriers.Rows[i]["DateEndReplacement"].ToString()).Date;
                        DateTime Begin = Convert.ToDateTime(BeginReplacement_dateTimePicker.Text).Date;
                        DateTime End   = Convert.ToDateTime(EndReplacement_dateTimePicker.Text).Date;
                        if (BeginReplacementInBdRow > Begin && End < BeginReplacementInBdRow)
                        {
                            continue;
                        }
                        if (EndReplacementInBdRow < Begin)
                        {
                            continue;
                        }
                        else
                        {
                            throw new Exception("Выбранное заменяющее ТС уже используется в указанное время");
                        }
                    }
                }
                catch (Exception exp)
                {
                    MessageBox.Show(exp.Message, "Ошибка");
                    e.Cancel = true;
                    return;
                }
                replacementsCarriersDataTable.AddReplacementsCarriersRow((AutoschoolDataSet.CarriersUsesRow)carriersUsesDataTable.Rows.Find(SelectedCarrierUseID),
                                                                         (AutoschoolDataSet.CarriersRow)carriersDataTable.Rows.Find(SelectedReplacingCarrierID),
                                                                         Convert.ToDateTime(BeginReplacement_dateTimePicker.Text).Date,
                                                                         Convert.ToDateTime(EndReplacement_dateTimePicker.Text).Date);
            }
        }
        private void AddEditReplacementCarrierForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (DialogResult == DialogResult.OK)
            {
                try
                {
                    if (Instructor_comboBox.SelectedIndex == -1)
                    {
                        Instructor_comboBox.Focus();
                        throw new Exception("Не выбран инструктор");
                    }
                    AutoschoolDataSet TempDS = new AutoschoolDataSet();
                    TempDS = BusinessLogic.ReadInstructorByID(Convert.ToInt32(Instructor_comboBox.SelectedValue.ToString()));
                    if (TempDS.Instructors[0]["WorkStatusName"].ToString() != "Работает")
                    {
                        DialogResult result = MessageBox.Show("Вы выбрали отсутствующего инструктора. Вы уверены, что хотите продолжить?", "Выбор отсутствующего сотрудника", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                        if (result == DialogResult.No)
                        {
                            e.Cancel = true;
                            return;
                        }
                    }
                    if (SelectedReplaceableCarrierID == -1)
                    {
                        throw new Exception("Не выбрано заменяемое ТС");
                    }
                    if (SelectedReplacingCarrierID == -1)
                    {
                        throw new Exception("Не выбрано заменяющее ТС");
                    }
                    TempDS = BusinessLogic.ReadReplacementsCarriersByCarrierUseID(Convert.ToInt32(BusinessLogic.ReadCarriersUsesByInstructorCarrierID(Convert.ToInt32(Instructor_comboBox.SelectedValue), Convert.ToInt32(ReplaceableCarriers_dataGridView.SelectedRows[0].Cells["ID1Column"].Value)).CarriersUses[0]["ID"].ToString()));
                    if (dataRow != null)
                    {
                        for (int i = 0; i < TempDS.ReplacementsCarriers.Rows.Count; i++)
                        {
                            if (dataRow["ID"].ToString() == TempDS.ReplacementsCarriers.Rows[i]["ID"].ToString())
                            {
                                continue;
                            }
                            DateTime BeginReplacementInBdRow = Convert.ToDateTime(TempDS.ReplacementsCarriers.Rows[i]["DateBeginReplacement"].ToString()).Date;
                            DateTime EndReplacementInBdRow   = Convert.ToDateTime(TempDS.ReplacementsCarriers.Rows[i]["DateEndReplacement"].ToString()).Date;
                            DateTime Begin = Convert.ToDateTime(BeginReplacement_dateTimePicker.Text).Date;
                            DateTime End   = Convert.ToDateTime(EndReplacement_dateTimePicker.Text).Date;
                            if (BeginReplacementInBdRow > Begin && End < BeginReplacementInBdRow)
                            {
                                continue;
                            }
                            if (EndReplacementInBdRow < Begin)
                            {
                                continue;
                            }
                            else
                            {
                                throw new Exception("Выбранное заменяемое ТС у данного водителя уже заменяется в указанное время");
                            }
                        }
                    }
                    else
                    {
                        for (int i = 0; i < TempDS.ReplacementsCarriers.Rows.Count; i++)
                        {
                            DateTime BeginReplacementInBdRow = Convert.ToDateTime(TempDS.ReplacementsCarriers.Rows[i]["DateBeginReplacement"].ToString()).Date;
                            DateTime EndReplacementInBdRow   = Convert.ToDateTime(TempDS.ReplacementsCarriers.Rows[i]["DateEndReplacement"].ToString()).Date;
                            DateTime Begin = Convert.ToDateTime(BeginReplacement_dateTimePicker.Text).Date;
                            DateTime End   = Convert.ToDateTime(EndReplacement_dateTimePicker.Text).Date;
                            if (BeginReplacementInBdRow > Begin && End < BeginReplacementInBdRow)
                            {
                                continue;
                            }
                            if (EndReplacementInBdRow < Begin)
                            {
                                continue;
                            }
                            else
                            {
                                throw new Exception("Выбранное заменяемое ТС у данного водителя уже заменяется в указанное время");
                            }
                        }
                    }

                    TempDS = BusinessLogic.ReadReplacementsCarriersByCarrierReplacementID(SelectedReplacingCarrierID);
                    if (dataRow != null)
                    {
                        for (int i = 0; i < TempDS.ReplacementsCarriers.Rows.Count; i++)
                        {
                            if (dataRow["ID"].ToString() == TempDS.ReplacementsCarriers.Rows[i]["ID"].ToString())
                            {
                                continue;
                            }
                            DateTime BeginReplacementInBdRow = Convert.ToDateTime(TempDS.ReplacementsCarriers.Rows[i]["DateBeginReplacement"].ToString()).Date;
                            DateTime EndReplacementInBdRow   = Convert.ToDateTime(TempDS.ReplacementsCarriers.Rows[i]["DateEndReplacement"].ToString()).Date;
                            DateTime Begin = Convert.ToDateTime(BeginReplacement_dateTimePicker.Text).Date;
                            DateTime End   = Convert.ToDateTime(EndReplacement_dateTimePicker.Text).Date;
                            if (BeginReplacementInBdRow > Begin && End < BeginReplacementInBdRow)
                            {
                                continue;
                            }
                            if (EndReplacementInBdRow < Begin)
                            {
                                continue;
                            }
                            else
                            {
                                throw new Exception("Выбранное заменяющее ТС уже используется в указанное время");
                            }
                        }
                    }
                    else
                    {
                        for (int i = 0; i < TempDS.ReplacementsCarriers.Rows.Count; i++)
                        {
                            DateTime BeginReplacementInBdRow = Convert.ToDateTime(TempDS.ReplacementsCarriers.Rows[i]["DateBeginReplacement"].ToString()).Date;
                            DateTime EndReplacementInBdRow   = Convert.ToDateTime(TempDS.ReplacementsCarriers.Rows[i]["DateEndReplacement"].ToString()).Date;
                            DateTime Begin = Convert.ToDateTime(BeginReplacement_dateTimePicker.Text).Date;
                            DateTime End   = Convert.ToDateTime(EndReplacement_dateTimePicker.Text).Date;
                            if (BeginReplacementInBdRow > Begin && End < BeginReplacementInBdRow)
                            {
                                continue;
                            }
                            if (EndReplacementInBdRow < Begin)
                            {
                                continue;
                            }
                            else
                            {
                                throw new Exception("Выбранное заменяющее ТС уже используется в указанное время");
                            }
                        }
                    }

                    TempDS = BusinessLogic.ReadByCarrierID_AND_CrossInBeginEndDates(
                        SelectedReplacingCarrierID,
                        Convert.ToDateTime(BeginReplacement_dateTimePicker.Text).Date,
                        Convert.ToDateTime(EndReplacement_dateTimePicker.Text).Date);
                    if (TempDS.CarriersRepairs.Rows.Count > 0)
                    {
                        throw new Exception("Выбранное заменяющее ТС само находится в ремонте в одни из указанных дней");
                    }
                }
                catch (Exception exp)
                {
                    MessageBox.Show(exp.Message, "Ошибка");
                    e.Cancel = true;
                    return;
                }
                int CarrierUseID = Convert.ToInt32(BusinessLogic.ReadCarriersUsesByInstructorCarrierID(Convert.ToInt32(Instructor_comboBox.SelectedValue), Convert.ToInt32(ReplaceableCarriers_dataGridView.SelectedRows[0].Cells["ID1Column"].Value)).CarriersUses[0]["ID"].ToString());
                if (dataRow != null)
                {
                    dataRow["CarrierUse"]           = CarrierUseID;
                    dataRow["CarrierReplacement"]   = SelectedReplacingCarrierID;
                    dataRow["DateBeginReplacement"] = Convert.ToDateTime(BeginReplacement_dateTimePicker.Text).Date;
                    dataRow["DateEndReplacement"]   = Convert.ToDateTime(EndReplacement_dateTimePicker.Text).Date;
                }
                else
                {
                    replacementsCarriersDataTable.AddReplacementsCarriersRow((AutoschoolDataSet.CarriersUsesRow)carriersUsesDataTable.Rows.Find(CarrierUseID),
                                                                             (AutoschoolDataSet.CarriersRow)carriersDataTable.Rows.Find(SelectedReplacingCarrierID),
                                                                             Convert.ToDateTime(BeginReplacement_dateTimePicker.Text).Date,
                                                                             Convert.ToDateTime(EndReplacement_dateTimePicker.Text).Date);
                }
            }
        }