Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        /// <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);
            }
        }