private void LoadRows([NotNull] ResultDataTable dataTable, [NotNull] XElement element) { Debug.ArgumentNotNull(dataTable, nameof(dataTable)); Debug.ArgumentNotNull(element, nameof(element)); var itemsElement = element.Element(@"rows"); if (itemsElement == null) { return; } if (!itemsElement.Elements().Any()) { var dataRow = (ResultDataRow)dataTable.NewRow(); dataTable.Rows.Add(dataRow); return; } foreach (var item in itemsElement.Elements()) { var fieldArray = new List <FieldUri>(); var columnArray = new List <string>(); var languageName = item.GetAttributeValue("language", LanguageManager.CurrentLanguage.Name) ?? "en"; var itemUri = new ItemUri(DatabaseUri, new ItemId(new Guid(item.GetAttributeValue("id")))); var itemVersionUri = new ItemVersionUri(itemUri, new Language(languageName), Data.Version.Latest); foreach (var field in item.Elements()) { FieldUri fieldUri = null; var id = field.GetAttributeValue("id"); if (!string.IsNullOrEmpty(id)) { fieldUri = new FieldUri(itemVersionUri, new FieldId(new Guid(id))); } fieldArray.Add(fieldUri); columnArray.Add(field.Value); } var dataRow = (ResultDataRow)dataTable.NewRow(); dataRow.Name = item.GetAttributeValue("name"); dataRow.Icon = new Icon(DatabaseUri.Site, item.GetAttributeValue("icon")); dataRow.ItemUri = itemUri; dataRow.FieldArray = fieldArray.ToArray(); dataRow.ItemArray = columnArray.ToArray(); dataTable.Rows.Add(dataRow); } }