async static Task LoadGroupPersons(FrameAnalyzer fa) { var packageFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; var sampleFile = await packageFolder.GetFileAsync("group.json"); var json = await Windows.Storage.FileIO.ReadTextAsync(sampleFile); JObject jsonObj = JObject.Parse(json); fa.groupId = (string)jsonObj["group_id"]; JArray personsObj = (JArray)jsonObj["persons"]; foreach (var personObj in personsObj) { var person = new Person(); person.name = (string)personObj["name"]; person.personId = (string)personObj["person_id"]; JArray faceIdsObj = (JArray)personObj["face_ids"]; string[] faceIds = faceIdsObj.Select(c => (string)c).ToArray(); person.faceIds.AddRange(faceIds); fa.groupPersons.Add(person); } }
public static async Task <FrameAnalyzer> CreateAsync() { var fa = new FrameAnalyzer(); await LoadKey(fa); await LoadGroupPersons(fa); fa.faceClient = new WesteuropeFaceServiceClient(fa.cognitiveServiceKey); // validate fa if (string.IsNullOrEmpty(fa.cognitiveServiceKey)) { throw new Exception("cognitive service key unavailable or invalid"); } if (string.IsNullOrEmpty(fa.groupId)) { throw new Exception("face group id unavailable or invalid"); } if (fa.groupPersons == null || fa.groupPersons.Count == 0) { throw new Exception("no persons loaded"); } return(fa); }
async static Task LoadKey(FrameAnalyzer fa) { var packageFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; var sampleFile = await packageFolder.GetFileAsync("cognitive_service.key"); var key = await Windows.Storage.FileIO.ReadTextAsync(sampleFile); fa.cognitiveServiceKey = key; }