private string GetSha1HashStringForElement(XElement contentElement, WmlComparerSettings settings) { var text = contentElement.Value; if (settings.CaseInsensitive) { text = text.ToUpper(settings.CultureInfo); } if (settings.ConflateBreakingAndNonbreakingSpaces) { text = text.Replace(' ', '\x00a0'); } return(contentElement.Name.LocalName + text); }
public ComparisonUnitAtom(XElement contentElement, XElement[] ancestorElements, OpenXmlPart part, WmlComparerSettings settings) { ContentElement = contentElement; AncestorElements = ancestorElements; Part = part; RevTrackElement = GetRevisionTrackingElementFromAncestors(contentElement, AncestorElements); if (RevTrackElement == null) { CorrelationStatus = CorrelationStatus.Equal; } else { if (RevTrackElement.Name == W.del) { CorrelationStatus = CorrelationStatus.Deleted; } else if (RevTrackElement.Name == W.ins) { CorrelationStatus = CorrelationStatus.Inserted; } } var sha1Hash = (string)contentElement.Attribute(PtOpenXml.SHA1Hash); if (sha1Hash != null) { SHA1Hash = sha1Hash; } else { var shaHashString = GetSha1HashStringForElement(ContentElement, settings); SHA1Hash = PtUtils.SHA1HashStringForUTF8String(shaHashString); } }