in ApplicationUnderTests/AppUIBasics/DataModel/ControlInfoDataSource.cs [144:202]
private async Task GetControlInfoDataAsync()
{
lock (_lock)
{
if (this._groups.Count != 0)
return;
}
Uri dataUri = new Uri("ms-appx:///DataModel/ControlInfoData.json");
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(dataUri);
string jsonText = await FileIO.ReadTextAsync(file);
JsonObject jsonObject = JsonObject.Parse(jsonText);
JsonArray jsonArray = jsonObject["Groups"].GetArray();
lock (_lock)
{
foreach (JsonValue groupValue in jsonArray)
{
JsonObject groupObject = groupValue.GetObject();
ControlInfoDataGroup group = new ControlInfoDataGroup(groupObject["UniqueId"].GetString(),
groupObject["Title"].GetString(),
groupObject["Subtitle"].GetString(),
groupObject["ImagePath"].GetString(),
groupObject["Description"].GetString());
foreach (JsonValue itemValue in groupObject["Items"].GetArray())
{
JsonObject itemObject = itemValue.GetObject();
var item = new ControlInfoDataItem(itemObject["UniqueId"].GetString(),
itemObject["Title"].GetString(),
itemObject["Subtitle"].GetString(),
itemObject["ImagePath"].GetString(),
itemObject["Description"].GetString(),
itemObject["Content"].GetString());
if (itemObject.ContainsKey("Docs"))
{
foreach (JsonValue docValue in itemObject["Docs"].GetArray())
{
JsonObject docObject = docValue.GetObject();
item.Docs.Add(new ControlInfoDocLink(docObject["Title"].GetString(), docObject["Uri"].GetString()));
}
}
if (itemObject.ContainsKey("RelatedControls"))
{
foreach (JsonValue relatedControlValue in itemObject["RelatedControls"].GetArray())
{
item.RelatedControls.Add(relatedControlValue.GetString());
}
}
group.Items.Add(item);
}
if (!this.Groups.Any(g => g.Title == group.Title))
this.Groups.Add(group);
}
}
}