예제 #1
0
        /// <summary>Сравнение значений</summary>
        public bool f_Equals(object a_Value)
        {
            if (a_Value == null || !(a_Value.GetType() == this.GetType()))
            {
                return(false);
            }

            Cl_RecordValue elm           = (Cl_RecordValue)a_Value;
            Cl_Element     baseElement   = this.p_Element;
            bool           m_isEqual     = true;
            bool           m_isEqualPart = true;

            if (baseElement.p_IsText)
            {
                if (baseElement.p_IsPartLocations)
                {
                    m_isEqualPart = Cl_EntityCompare.f_Array(p_PartLocations, elm.p_PartLocations);
                }

                if (baseElement.p_IsTextFromCatalog)
                {
                    m_isEqual = Cl_EntityCompare.f_Array(p_ValuesCatalog, elm.p_ValuesCatalog);
                    if (baseElement.p_Symmetrical && m_isEqual)
                    {
                        m_isEqual = Cl_EntityCompare.f_Array(p_ValuesDopCatalog, elm.p_ValuesDopCatalog);
                    }
                }
                else
                {
                    m_isEqual = Cl_EntityCompare.f_String(p_ValueUser, elm.p_ValueUser);
                    if (baseElement.p_Symmetrical && m_isEqual)
                    {
                        m_isEqual = Cl_EntityCompare.f_String(p_ValueDopUser, elm.p_ValueDopUser);
                    }
                }
            }
            else if (baseElement.p_IsImage)
            {
                return(Cl_EntityCompare.f_Array_Byte(p_ImageBytes, elm.p_ImageBytes));
            }
            else
            {
                throw new NotImplementedException("Не реализованный метод сравнения для объекта Cl_RecordValue");
            }

            return(m_isEqual && m_isEqualPart);
        }
예제 #2
0
 /// <summary>Проверка наличия элемента</summary>
 public bool f_HasElement(Cl_Element a_Element)
 {
     return(f_HasElement(p_TemplateElements, a_Element));
 }
예제 #3
0
 /// <summary>Проверка наличия элемента</summary>
 private bool f_HasElement(ICollection <Cl_TemplateElement> a_TemplateElements, Cl_Element a_Element)
 {
     if (a_TemplateElements != null)
     {
         foreach (var te in a_TemplateElements)
         {
             if (te.p_ChildElement == a_Element)
             {
                 return(true);
             }
             if (te.p_ChildTemplate != null)
             {
                 if (f_HasElement(te.p_ChildTemplate.p_TemplateElements, a_Element))
                 {
                     return(true);
                 }
             }
         }
     }
     return(false);
 }