/// <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); }
/// <summary>Проверка наличия элемента</summary> public bool f_HasElement(Cl_Element a_Element) { return(f_HasElement(p_TemplateElements, a_Element)); }
/// <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); }