private string GetPrimitiveValueForKey(InfData data, Key key) { if (key.KeyValues.Any()) { var first = key.KeyValues.First(); //dynamic if (first.IsDynamic) { return(data.FindKeyById(first.DynamicKeyId) //find dynamic key .First(x => x.KeyValues.All(v => !v.IsDynamic)) // that has not a dynamic value .KeyValues.First().Value); //return the first text value } //static return(key.PrimitiveValue); } return(""); }