protected void ButtonAddCriteriaEvent_OnClick(Object sender, EventArgs eventArgs)
        {
            Boolean existingCriteriaFound = false;

            Client.Core.Condition.ConditionCriteria.ConditionCriteriaEvent criteria = null;

            Mercury.Server.Application.BooleanResponse validationResponse;


            if (MercuryApplication == null)
            {
                return;
            }


            criteria = new Mercury.Client.Core.Condition.ConditionCriteria.ConditionCriteriaEvent(MercuryApplication);

            criteria.ConditionId = condition.Id;

            if (CriteriaEventMedicalServiceSelection.SelectedItem == null)
            {
                return;
            }

            criteria.EventType = (Mercury.Server.Application.ConditionCriteriaEventType)(Int32.Parse(CriteriaEventType.SelectedItem.Value));

            criteria.ServiceId = Int64.Parse(CriteriaEventMedicalServiceSelection.SelectedItem.Value);


            // TODO: Validation Response

            validationResponse = new Mercury.Server.Application.BooleanResponse();

            validationResponse.Result = true;


            SaveResponseLabel.Text = String.Empty;

            if (validationResponse.Result)
            {
                existingCriteriaFound = false;

                foreach (Client.Core.Condition.ConditionCriteria.ConditionCriteriaEvent currentCriteria in condition.EventCriteria)
                {
                    if (currentCriteria.IsEqual(criteria))
                    {
                        existingCriteriaFound = true;

                        SaveResponseLabel.Text = "Duplicate Criteria Found.";

                        break;
                    }
                }

                if (!existingCriteriaFound)
                {
                    condition.EventCriteria.Add(criteria);
                }
            }

            else
            {
                if (validationResponse.HasException)
                {
                    SaveResponseLabel.Text = validationResponse.Exception.Message;
                }

                else
                {
                    SaveResponseLabel.Text = "Unable to validate the Criteria.";
                }
            }

            InitializeCriteriaEvent();

            return;
        }
        protected void ButtonAddCriteriaDemographic_OnClick(Object sender, EventArgs eventArgs)
        {
            Boolean existingCriteriaFound = false;

            Client.Core.Condition.ConditionCriteria.ConditionCriteriaDemographic criteria = null;

            Mercury.Server.Application.BooleanResponse validationResponse;

            Int32 ageValue;


            if (MercuryApplication == null)
            {
                return;
            }


            criteria = new Mercury.Client.Core.Condition.ConditionCriteria.ConditionCriteriaDemographic(MercuryApplication);

            criteria.ConditionId = condition.Id;

            criteria.Gender = (Mercury.Server.Application.Gender)(Int32.Parse(CriteriaDemographicGender.SelectedItem.Value));

            if ((Int32.TryParse(CriteriaDemographicAgeMinimum.Text, out ageValue)) || (Int32.TryParse(CriteriaDemographicAgeMaximum.Text, out ageValue)))
            {
                criteria.UseAgeCriteria = true;

                if (Int32.TryParse(CriteriaDemographicAgeMinimum.Text, out ageValue))
                {
                    criteria.AgeMinimum = ageValue;
                }

                if (Int32.TryParse(CriteriaDemographicAgeMaximum.Text, out ageValue))
                {
                    criteria.AgeMaximum = ageValue;
                }
            }

            else
            {
                criteria.UseAgeCriteria = false;
            }

            if (CriteriaDemographicEthnicitySelection.SelectedItem != null)
            {
                criteria.EthnicityId = Int64.Parse(CriteriaDemographicEthnicitySelection.SelectedItem.Value);
            }

            // TODO: Validation Response

            validationResponse = new Mercury.Server.Application.BooleanResponse();

            validationResponse.Result = true;


            SaveResponseLabel.Text = String.Empty;

            if (validationResponse.Result)
            {
                existingCriteriaFound = false;

                foreach (Client.Core.Condition.ConditionCriteria.ConditionCriteriaDemographic currentCriteria in condition.DemographicCriteria)
                {
                    if (currentCriteria.IsEqual(criteria))
                    {
                        existingCriteriaFound = true;

                        SaveResponseLabel.Text = "Duplicate Criteria Found.";

                        break;
                    }
                }

                if (!existingCriteriaFound)
                {
                    if ((criteria.UseAgeCriteria) && (criteria.AgeMinimum <= criteria.AgeMaximum))
                    {
                        condition.DemographicCriteria.Add(criteria);
                    }

                    else
                    {
                        SaveResponseLabel.Text = "Invalid Age Range.";
                    }
                }
            }

            else
            {
                if (validationResponse.HasException)
                {
                    SaveResponseLabel.Text = validationResponse.Exception.Message;
                }

                else
                {
                    SaveResponseLabel.Text = "Unable to validate the Criteria.";
                }
            }

            InitializeCriteriaDemographic();

            return;
        }