/// <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); }