/// <summary>
        /// Determines whether the specified Object is equal to the current Object.
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }
            if (Object.ReferenceEquals(this, obj))
            {
                return(true);
            }
            if (this.GetType() != obj.GetType())
            {
                return(false);
            }


            var other = (VLQuestionOption)obj;

            //reference types
            if (!Object.Equals(OptionText, other.OptionText))
            {
                return(false);
            }
            if (!Object.Equals(CustomId, other.CustomId))
            {
                return(false);
            }
            if (!Object.Equals(SkipToWebUrl, other.SkipToWebUrl))
            {
                return(false);
            }
            //value types
            if (!Survey.Equals(other.Survey))
            {
                return(false);
            }
            if (!Question.Equals(other.Question))
            {
                return(false);
            }
            if (!OptionId.Equals(other.OptionId))
            {
                return(false);
            }
            if (!OptionType.Equals(other.OptionType))
            {
                return(false);
            }
            if (!DisplayOrder.Equals(other.DisplayOrder))
            {
                return(false);
            }
            if (!OptionValue.Equals(other.OptionValue))
            {
                return(false);
            }
            if (!AttributeFlags.Equals(other.AttributeFlags))
            {
                return(false);
            }
            if (!SkipTo.Equals(other.SkipTo))
            {
                return(false);
            }
            if (!SkipToPage.Equals(other.SkipToPage))
            {
                return(false);
            }
            if (!SkipToQuestion.Equals(other.SkipToQuestion))
            {
                return(false);
            }

            return(true);
        }
        /// <summary>
        /// Determines whether the specified Object is equal to the current Object.
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }
            if (Object.ReferenceEquals(this, obj))
            {
                return(true);
            }
            if (this.GetType() != obj.GetType())
            {
                return(false);
            }


            var other = (VLSurveyPage)obj;

            //reference types
            if (!Object.Equals(CustomId, other.CustomId))
            {
                return(false);
            }
            if (!Object.Equals(SkipToWebUrl, other.SkipToWebUrl))
            {
                return(false);
            }
            if (!Object.Equals(ShowTitle, other.ShowTitle))
            {
                return(false);
            }
            if (!Object.Equals(Description, other.Description))
            {
                return(false);
            }
            //value types
            if (!Survey.Equals(other.Survey))
            {
                return(false);
            }
            if (!PageId.Equals(other.PageId))
            {
                return(false);
            }
            if (!DisplayOrder.Equals(other.DisplayOrder))
            {
                return(false);
            }
            if (!PreviousPage.Equals(other.PreviousPage))
            {
                return(false);
            }
            if (!NextPage.Equals(other.NextPage))
            {
                return(false);
            }
            if (!AttributeFlags.Equals(other.AttributeFlags))
            {
                return(false);
            }
            if (!SkipTo.Equals(other.SkipTo))
            {
                return(false);
            }
            if (!SkipToPage.Equals(other.SkipToPage))
            {
                return(false);
            }

            return(true);
        }