Пример #1
0
        /// <summary>
        /// Determina si el objeto especificado es igual al objeto actual.
        /// </summary>
        /// <param name="obj">Objeto que se va a comparar con el objeto actual.</param>
        /// <returns>Es true si el objeto especificado es igual al objeto actual;
        /// en caso contrario, es false.</returns>
        public override bool Equals(object obj)
        {
            PdfTagPattern input = (obj as PdfTagPattern);

            if (input == null)
            {
                throw new ArgumentException("Parámetro de tipo incorrecto.");
            }

            bool equalsTextString = false;
            bool equalsRectangle  = false;

            if (input.SourceTypeName.Equals("TextStringInfos")) // Comprobamos si las propiedades de los textString coinciden
            {
                if (FontSize != null && input.FontSize != null &&
                    ColorFill != null && input.ColorFill != null &&
                    ColorStroke != null && input.ColorStroke != null &&
                    FontType != null && input.FontType != null &&
                    TsType != null && input.TsType != null)
                {
                    if (ColorFill.Equals(input.ColorFill) &&
                        ColorStroke.Equals(input.ColorStroke) &&
                        FontSize.Equals(input.FontSize) &&
                        FontType.Equals(input.FontType) &&
                        TsType.Equals(input.TsType))
                    {
                        if ((TsType.Equals("X") || TsType.Equals("Y")) &&
                            TsCoordinate.Equals(input.TsCoordinate))
                        {
                            equalsTextString = true;
                        }
                        else if (TsType.Equals("NA"))
                        {
                            equalsTextString = true;
                        }
                    }
                }
            }
            else
            {
                equalsTextString = true;
            }

            if (PdfRectangle != null && input.PdfRectangle != null) // Comprobamos si el rectángulo coincide   && FontType==null
            {
                equalsRectangle = PdfRectangle.Equals(input.PdfRectangle);
            }
            else
            {
                equalsRectangle = true;
            }


            return((MetadataItemName == input.MetadataItemName &&
                    PdfPageN == input.PdfPageN &&
                    IsLastPage == input.IsLastPage &&
                    equalsRectangle &&
                    RegexPattern == input.RegexPattern &&
                    Position == input.Position &&
                    SourceTypeName == input.SourceTypeName) &&
                   equalsTextString);
        }