private bool LogicValidation()
    {
        #region Check If Death Case Exist

        Dead objDead = new Dead();
        if (DeadEventIDParameter != null)
        {
            // update case

            //now we want to be sure that we validating in not Unknown case.
            if (!IsLostCase || (IsLostCase && (rdTypeList.SelectedValue != "1" && rdTypeList.SelectedValue != "2")))
            {

                if ((UcDeathInfo2.EventDeadNID != currentDeadData.NationalIden)
                        ||
                        (
                        UcDeathInfo2.EventDeadFristName != currentDeadData.FirstName ||
                        UcDeathInfo2.EventDeadFatherName != currentDeadData.FatherName ||
                        UcDeathInfo2.EventDeadFamilyName != currentDeadData.FamilyName ||
                        UcDeathInfo2.EventDeadTitle != currentDeadData.SureName
                        )
                    )
                {
                    if (objDead.IsDeathCaseExist(UcDeathInfo2.EventDeadNID, UcDeathInfo2.EventDeadFristName
                                                , UcDeathInfo2.EventDeadFatherName,
                                                 UcDeathInfo2.EventDeadFamilyName,
                                                 UcDeathInfo2.EventDeadTitle, currentDeadData._oldRegDate))
                    {
                        MHOCommon.ShowMessage("بيانات المتوفى موجودة من قبل برجاء مراجعة البيانات و اعادة المحاولة", this.Page);
                        return false;
                    }
                }
            }
        }
        else
        {
            // add new case.
            // we want to be sure that we validating in not Unknown case.
            if (!IsLostCase || (IsLostCase && (rdTypeList.SelectedValue != "1" && rdTypeList.SelectedValue != "2")))
            {
                if (objDead.IsDeathCaseExist(UcDeathInfo2.EventDeadNID, UcDeathInfo2.EventDeadFristName
                                                , UcDeathInfo2.EventDeadFatherName,
                                                 UcDeathInfo2.EventDeadFamilyName,
                                                 UcDeathInfo2.EventDeadTitle, ""))
                {
                    MHOCommon.ShowMessage("بيانات المتوفى موجودة من قبل برجاء مراجعة البيانات و اعادة المحاولة", this.Page);
                    return false;
                }
            }
        }

        #endregion

        #region Check for Date versus National IDs

        if (UcDeathInfo2.EventDeadNID.Trim() != "0" && UcDeathInfo2.EventDeadNID.Trim().Length == 14)
        {
            // Dead has National ID
            if (MHOCommon.GetDateFromNID(UcDeathInfo2.EventDeadNID) != DateTime.Parse(UcDeathInfo2.EventDeadBirthDate))
            {
                MHOCommon.ShowMessage("تاريخ ميلاد المتوفى يجب ان يتوافق مع رقمه القومى", this.Page);
                return false;
            }

            if (UcMotherInfo2.ParentNID.Trim() != "0" && UcMotherInfo2.ParentNID.Trim().Length == 14)
            {
                if (MHOCommon.GetDateFromNID(UcDeathInfo2.EventDeadNID) <= MHOCommon.GetDateFromNID(UcMotherInfo2.ParentNID))
                {
                    MHOCommon.ShowMessage("سن المتوفى لابد ان يكون اصغر من سن الام", this.Page);
                    return false;
                }
            }
        }

        try
        {
            DateTime.Parse(UcDeathInfo2.EventDeadBirthDate.Trim());
        }
        catch (Exception ex)
        {
            MHOCommon.ShowMessage("خطأ فى تاريخ ميلاد المتوفى", this.Page);
            return false;
        }

        try
        {
            DateTime.Parse(UcGeneralDeathInfo1.EventDeadDieDate);
        }
        catch (Exception ex)
        {
            MHOCommon.ShowMessage("خطأ فى تاريخ الوفاة", this.Page);
            return false;
        }

        #endregion

        if (!IsLostCase && DeadEventIDParameter == null)
        {
            //if (DateTime.Today.AddDays(-3) > DateTime.Parse(UcGeneralDeathInfo1.EventDeadDieDate))
            //{
            //    MHOCommon.ShowMessage("تاريخ تسجيل الوفاة غير صحيح", this.Page);
            //    return false;
            //}
        }
        if (DateTime.Parse(UcDeathInfo2.EventDeadBirthDate) > DateTime.Today)
        {
            MHOCommon.ShowMessage("تاريخ ميلاد المتوفى غير صحيح", this.Page);
            return false;
        }
        if (UcDeathInfo2.EventDeadNID.Trim() == UcNotifierInfo2.NotifierNID.Trim())
        {
            MHOCommon.ShowMessage("الرقم القومى للمبلغ لا يمكن ان يكون نفس الرقم القومى للمتوفى", this.Page);
            return false;
        }

        if (UcDeathInfo2.EventDeadNID.Trim() == UcMotherInfo2.ParentNID.Trim() && UcMotherInfo2.ParentNID.Trim()  != "0")
        {
            MHOCommon.ShowMessage("الرقم القومى للام لا يمكن ان يكون نفس الرقم القومى للمتوفى", this.Page);
            return false;
        }

        if (DateTime.Parse(UcDeathInfo2.EventDeadBirthDate) > DateTime.Parse(UcGeneralDeathInfo1.EventDeadDieDate))
        {
            MHOCommon.ShowMessage("تاريخ الوفاة لابد ان يكون بعد تاريخ الميلاد", this.Page);
            return false;
        }
        if (DateTime.Parse(UcGeneralDeathInfo1.EventDeadDieDate).Date > DateTime.Today.Date)
        {
            MHOCommon.ShowMessage("تاريخ وفاة المتوفى غير صحيح", this.Page);
            return false;
        }
        if ((UcMotherInfo2.ParentNID == UcNotifierInfo2.NotifierNID) && UcNotifierInfo2.NotifierRelation == 4)
        {
            MHOCommon.ShowMessage("لقد قمت بادخال الرقم القومى للام فى بيانات المبلغ فى حين ان المبلغ هو الاخت", this.Page);
            return false;
        }
        if ((UcMotherInfo2.ParentNID == UcNotifierInfo2.NotifierNID) && UcNotifierInfo2.NotifierRelation != 2)
        {
            MHOCommon.ShowMessage("لقد قمت بادخال الرقم القومى للام فى بيانات المبلغ فى حين ان المبلغ ليس الأم", this.Page);
            return false;
        }

        if ((DateTime.Now.Year - DateTime.Parse(UcDeathInfo2.EventDeadBirthDate).Year < 18 ) && UcDeathInfo2.EventDeadCardType == 2)
        {
            MHOCommon.ShowMessage("نوع البطاقة غير متوافق مع سن المتوفى", this.Page);
            return false;
        }

        if (!IsLostCase && !MHOCommon.ValidateNationalIDInput(UcDeathInfo2.EventDeadNID, UcDeathInfo2.EventDeadGender != 1))
        {
            MHOCommon.ShowMessage(MHOCommon.NIDValidationMessage + "\\nبيانات المتوفى", this.Page);
            return false;
        }

        if (IsLostCase)
        {
            health_office objHealthOffice = new health_office();
            if (DeadEventIDParameter != null)
            {
                // update case
                if (currentDescisionNo != DecisionControl1.DecisionNumber)
                {
                    if (objHealthOffice.IsDecisionNumberExisit(DecisionControl1.DecisionNumber, MHOCommon.CurrentOrgID.Value, false))
                    {
                        MHOCommon.ShowMessage("عفوا رقم القرار موجود من قبل", this.Page);
                        return false;
                    }
                }
            }
            else
            {
                if (objHealthOffice.IsDecisionNumberExisit(DecisionControl1.DecisionNumber, MHOCommon.CurrentOrgID.Value, false))
                {
                    MHOCommon.ShowMessage("عفوا رقم القرار موجود من قبل", this.Page);
                    return false;
                }
            }

            if (rdTypeList.SelectedValue != "1")
            {
                if (DateTime.Today.AddYears(-1).Date > DateTime.Parse(UcGeneralDeathInfo1.EventDeadDieDate))
                {
                    MHOCommon.ShowMessage("تاريخ تسجيل الوفاة غير صحيح", this.Page);
                    return false;
                }
                if (DecisionControl1.DecisionDate == null)
                {
                    MHOCommon.ShowMessage("تاريخ القرار غير صحيح", this.Page);
                    return false;
                }
                if (DecisionControl1.DecisionDate.Value.Date > DateTime.Today.Date)
                {
                    MHOCommon.ShowMessage("تاريخ القرار غير صحيح", this.Page);
                    return false;
                }

                if (DateTime.Parse(UcDeathInfo2.EventDeadBirthDate) > DateTime.Today)
                {
                    MHOCommon.ShowMessage("تاريخ ميلاد المتوفى غير صحيح", this.Page);
                    return false;
                }

                if (DateTime.Today.AddDays(-1).Date <= DateTime.Parse(UcGeneralDeathInfo1.EventDeadDieDate))
                {
                    MHOCommon.ShowMessage("تاريخ تسجيل الوفاة غير صحيح", this.Page);
                    return false;
                }

                //TimeSpan dateDiff = UcBornInfo1.EventBirthDate.Subtract(DecisionControl1.DecisionDate);
                //if (dateDiff.Days < 15)
                if (DecisionControl1.DecisionDate.Value.AddDays(-1).Date < DateTime.Parse(UcGeneralDeathInfo1.EventDeadDieDate) ||
                    DateTime.Parse(UcDeathInfo2.EventDeadBirthDate) > DateTime.Parse(UcGeneralDeathInfo1.EventDeadDieDate))
                {
                    MHOCommon.ShowMessage("تاريخ القرار غير صحيح", this.Page);
                    return false;
                }

            }
            else
            {
                if (DecisionControl1.DecisionDate == null)
                {
                    MHOCommon.ShowMessage("تاريخ القرار غير صحيح", this.Page);
                    return false;
                }
                // مجهول الهوية
                if (DateTime.Parse(UcDeathInfo2.EventDeadBirthDate).Date > DateTime.Today.Date)
                {
                    MHOCommon.ShowMessage("تاريخ ميلاد المتوفى غير صحيح", this.Page);
                    return false;
                }
                if (DateTime.Parse(UcGeneralDeathInfo1.EventDeadDieDate).Date > DateTime.Today.Date)
                {
                    MHOCommon.ShowMessage("تاريخ وفاة المتوفى غير صحيح", this.Page);
                    return false;
                }
                if (DecisionControl1.DecisionDate.Value.Date > DateTime.Today.Date)
                {
                    MHOCommon.ShowMessage("تاريخ القرار غير صحيح", this.Page);
                    return false;
                }

                TimeSpan dateDiff = DateTime.Parse(UcGeneralDeathInfo1.EventDeadDieDate).Subtract(DecisionControl1.DecisionDate.Value);
                if (dateDiff.Days > 0)
                {
                    MHOCommon.ShowMessage("تاريخ القرار غير صحيح", this.Page);
                    return false;
                }
            }
        }
        return true;
    }
    private bool logicValidation()
    {
        if (UcFatherInfo2.ParentNID == "0")
        {
            MHOCommon.ShowMessage("الرقم القومى للأب غير صحيح", this.Page);
            return false;
        }

        if (UcNotifierInfo1.NotifierNID == "0")
        {
            MHOCommon.ShowMessage("الرقم القومى للمبلغ غير صحيح", this.Page);
            return false;
        }
           if (!MHOCommon.ValidateNationalIDInput(UcFatherInfo2.ParentNID, false))
        {
            MHOCommon.ShowMessage(MHOCommon.NIDValidationMessage + "\\nبيانات الأب", this.Page);
            return false;
        }

        if (!MHOCommon.ValidateNationalIDInput(UcMotherInfo2.ParentNID, true))
        {
            MHOCommon.ShowMessage(MHOCommon.NIDValidationMessage + "\\nبيانات الأم", this.Page);
            return false;
        }

        if (UcMotherInfo2.ParentNID == "0")
        {
            MHOCommon.ShowMessage("الرقم القومى للأم غير صحيح", this.Page);
            return false;
        }

        if (UcBornInfo1.EventBirthDate == null)
        {
            MHOCommon.ShowMessage("خطأ فى تاريخ او وقت الميلاد", this.Page);
            return false;
        }

        if ((UcFatherInfo2.ParentNID == UcNotifierInfo1.NotifierNID) && UcNotifierInfo1.NotifierRelation != 1)
        {
            MHOCommon.ShowMessage("لقد ادخلت الرقم القومى للاب فى بيانات المبلغ فى حين ان المبلغ ليس الاب", this.Page);
            return false;
        }

        if ((UcMotherInfo2.ParentNID == UcNotifierInfo1.NotifierNID) && UcNotifierInfo1.NotifierRelation != 2)
        {
            MHOCommon.ShowMessage("لقد ادخلت الرقم القومى للأم فى بيانات المبلغ فى حين ان المبلغ ليس الأم", this.Page);
            return false;
        }

        if (UcMotherInfo2.ParentNID == UcFatherInfo2.ParentNID)
        {
            MHOCommon.ShowMessage("خطأ . الرقم القومى للأب والأم متطابقين", this.Page);
            return false;
        }

        #region Check For Repeated Birth cases.

        Born objBorn = new Born();

        if (BornEventIdParameter != null)
        {
            // Update case.
            if (UcBornInfo1.EventBirthDate.ToString() != currentBornData.BirthDateTime ||
                UcBornInfo1.EventChildName != currentBornData.BornName ||
                UcFatherInfo2.ParentNID != currentBornData.FatherNationalID ||
                UcMotherInfo2.ParentNID != currentBornData.MotherNationalID)
            {
                if (objBorn.IsBornCaseExist(UcFatherInfo2.ParentNID, UcMotherInfo2.ParentNID, UcBornInfo1.EventChildName, UcBornInfo1.EventBirthDate.Value.ToString("yyyy-MM-dd HH:mm"), Convert.ToDateTime(currentBornData.BornRegDate).ToString("yyyy-MM-dd")))
                {
                    MHOCommon.ShowMessage("بيانات المولود موجودة من قبل برجاء مراجعة البيانات و اعادة المحاولة", this.Page);
                    return false;
                }
            }

        }
        else
        {
            // Add Case
            if (objBorn.IsBornCaseExist(UcFatherInfo2.ParentNID, UcMotherInfo2.ParentNID, UcBornInfo1.EventChildName, UcBornInfo1.EventBirthDate.Value.ToString("yyyy-MM-dd HH:mm"), ""))
            {
                MHOCommon.ShowMessage("بيانات المولود موجودة من قبل برجاء مراجعة البيانات و اعادة المحاولة", this.Page);
                return false;
            }
        }

        #endregion

        if (!IsLostCase)
        {
            if (UcBornInfo1.EventBirthDate.Value.Date > DateTime.Today.Date)
            {
                MHOCommon.ShowMessage("تاريخ الميلاد يجب ان يكون اقل من او يساوى تاريخ اليوم", this.Page);
                return false;
            }

            if (DateTime.Today.AddDays(-15) >= UcBornInfo1.EventBirthDate)
            {
                MHOCommon.ShowMessage("تاريخ تسجيل الميلاد يجب ان لا يزيد عن 15 يوم من تاريخ الميلاد", this.Page);
                return false;
            }
        }
        if (IsLostCase)
        {
            if (DecisionControl1.DecisionDate == null)
            {
                MHOCommon.ShowMessage("تاريخ القرار غير صحيح", this.Page);
                return false;
            }

            health_office objHealthOffice = new health_office();

                if (BornEventIdParameter != null)
                {
                    // update case
                    if (currentDescisionNo != DecisionControl1.DecisionNumber)
                    {
                        if (objHealthOffice.IsDecisionNumberExisit(DecisionControl1.DecisionNumber,MHOCommon.CurrentOrgID.Value, true))
                        {
                            MHOCommon.ShowMessage("عفوا رقم القرار موجود من قبل", this.Page);
                            return false;
                        }
                    }
                }
                else
                {
                    if (objHealthOffice.IsDecisionNumberExisit(DecisionControl1.DecisionNumber, MHOCommon.CurrentOrgID.Value, true))
                   {
                    MHOCommon.ShowMessage("عفوا رقم القرار موجود من قبل", this.Page);
                    return false;
                    }
                }

            if (rdTypeList.SelectedValue != "1")
            {
                if (UcBornInfo1.EventBirthDate.Value.Date > DateTime.Today.Date)
                {
                    MHOCommon.ShowMessage("تاريخ الميلاد يجب ان يكون اقل من او يساوى تاريخ اليوم", this.Page);
                    return false;
                }
                if (DateTime.Today.AddYears(-1).Date > UcBornInfo1.EventBirthDate.Value.Date)
                {
                    MHOCommon.ShowMessage("تاريخ تسجيل الميلاد غير صحيح", this.Page);
                    return false;
                }

                if (DateTime.Today.AddDays(-15).Date <= UcBornInfo1.EventBirthDate.Value.Date)
                {
                    MHOCommon.ShowMessage("تاريخ تسجيل الميلاد غير صحيح", this.Page);
                    return false;
                }
                if (DecisionControl1.DecisionDate.Value.Date > DateTime.Today.Date)
                {
                    MHOCommon.ShowMessage("تاريخ القرار غير صحيح", this.Page);
                    return false;
                }
                //TimeSpan dateDiff = UcBornInfo1.EventBirthDate.Subtract(DecisionControl1.DecisionDate);
                //if (dateDiff.Days < 15)
                if (DecisionControl1.DecisionDate.Value.AddDays(-15).Date < UcBornInfo1.EventBirthDate.Value.Date)
                {
                    MHOCommon.ShowMessage("تاريخ القرار غير صحيح", this.Page);
                    return false;
                }

            }
            else
            {
                if (DecisionControl1.DecisionDate == null)
                {
                    MHOCommon.ShowMessage("تاريخ القرار غير صحيح", this.Page);
                    return false;
                }
                if (UcBornInfo1.EventBirthDate.Value.Date > DateTime.Today.Date)
                {
                    MHOCommon.ShowMessage("تاريخ الميلاد يجب ان يكون اقل من او يساوى تاريخ اليوم", this.Page);
                    return false;
                }
                TimeSpan dateDiff = UcBornInfo1.EventBirthDate.Value.Subtract(DecisionControl1.DecisionDate.Value);
                if (dateDiff.Days > 0)
                {
                    MHOCommon.ShowMessage("تاريخ القرار غير صحيح", this.Page);
                    return false;
                }
                if (DecisionControl1.DecisionDate.Value.Date > DateTime.Today.Date)
                {
                    MHOCommon.ShowMessage("تاريخ القرار غير صحيح", this.Page);
                    return false;
                }
            }
        }
        return true;
    }