public async Task <IActionResult> RemoveFace(string listId, string faceId) { await _faceRecognition.RemoveFace(listId, faceId, new Dictionary <string, object> { { "largeFaceListId", listId }, { "faceId", faceId } }); await _storage.RemoveFaceFromContainer(listId, faceId); return(Ok()); }
/// <inheritdoc /> public async Task RemoveUser(string userId) { var document = await LoadUserData(); if (document == null) { throw new NotSupportedException("XML user file is missing."); } using (var xmlStream = new MemoryStream()) { using (XmlWriter writer = XmlWriter.Create(xmlStream)) { var node = document.SelectSingleNode($"/users/user[@id='{userId}']"); if (node != null) { List <string> faceIds = node.SelectNodes("faces/face") .Cast <XmlNode>() .Select(f => f.InnerText) .ToList(); foreach (var faceId in faceIds) { await _storage.RemoveFaceFromContainer(_group.ToLower().Replace(' ', '-'), faceId); await _faceRecognition.RemoveFace(_group, faceId, new Dictionary <string, object> { { "largePersonGroupId", _group.ToLower().Replace(' ', '-') }, { "personId", userId }, { "deletePerson", true } }); } node.ParentNode.RemoveChild(node); document.WriteTo(writer); } } await _storage.WriteUserData(_group, USER_DATA, xmlStream); } }