protected virtual IDOMElement SearchForNode(IEnumerable <XElement> searchCriterea, IDOMElement domElement, PostModel postModel, bool useFirstElSearch = true) { Func <IDOMElement, bool> searchCritereaFilter = el => searchCriterea.All(elem => el.ElementMatch(elem.Name.ToString(), elem.Value.Replace(EXPECTED_AUTHOR_ID_MACRO_NAME, postModel.AuthorId).Replace(EXPECTED_POST_ID_MACRO_NAME, postModel.PostId), elem.Attributes().Any(attr => attr.Name.ToString().ToLower() == USE_STRICT_EQUAL_CHECK_ATTRIBUTE_NAME.ToLower() && bool.Parse(attr.Value)))); return(useFirstElSearch ? domElement.GetFirstChildInSubThree(searchCritereaFilter) : domElement.GetLastChildInSubThree(searchCritereaFilter)); }