private Fact GetMergedFact(List <Fact> facts) { var initialFields = facts.SelectMany(x => x.Fields).ToList(); var scientistFields = initialFields.Where(x => x.Name.StartsWith("Scientist")); var resultFields = initialFields.Except(scientistFields).ToList(); if (scientistFields.Any()) { var newFieldsValue = string.Join(" ", scientistFields.Where(x => x.Name != "Scientist_SurnameIsDictionary" && x.Name != "Scientist_SurnameIsLemma") .Select(x => x.Value)); var newScientistField = new FactField { Name = "Scientist", Value = newFieldsValue, }; resultFields.Add(newScientistField); } var resultFact = new Fact { Name = "Fact", Fields = resultFields, }; return(resultFact); }
private Fact GetFactFromRowFactXml(XElement rowFact) { var factName = rowFact.Name.LocalName; var factFields = new List <FactField>(); foreach (var subNode in rowFact.Elements()) { var fieldField = new FactField { Name = subNode.Name.LocalName, Value = subNode.Attribute("val").Value, }; factFields.Add(fieldField); } return(new Fact { Name = factName, Fields = factFields, }); }