Exemple #1
0
        /// <inheritdoc />
        public async Task UpdateUser(FacialUser user)
        {
            var document = await LoadUserData();

            if (document == null)
            {
                throw new NotSupportedException("XML user file is missing.");
            }

            XmlNode node = document.SelectSingleNode($"/users/user[@id='{user.Id}']");

            node.Attributes["email"].Value      = user.Email;
            node.Attributes["givenName"].Value  = user.GivenName;
            node.Attributes["familyName"].Value = user.FamilyName;

            using (var xmlStream = new MemoryStream())
            {
                using (XmlWriter writer = XmlWriter.Create(xmlStream))
                {
                    document.WriteTo(writer);
                }

                await _storage.WriteUserData(_group, USER_DATA, xmlStream);
            }
        }
Exemple #2
0
        /// <inheritdoc />
        public async Task <List <FacialUser> > ListUsers()
        {
            var document = await LoadUserData();

            List <Task <FacialUser> > userTasks = document.SelectNodes("/users/user")
                                                  .Cast <XmlNode>()
                                                  .Select(async u =>
            {
                var user = new FacialUser
                {
                    Email = u.Attributes["email"].Value,
                    Faces = u.SelectNodes("faces/face")
                            .Cast <XmlNode>()
                            .Select(f => Guid.Parse(f.InnerText))
                            .ToList(),
                    FamilyName = u.Attributes["familyName"].Value,
                    GivenName  = u.Attributes["givenName"].Value,
                    Id         = u.Attributes["id"].Value
                };
                user.Face = Convert.ToBase64String(await _storage.GetFace(_group, user.Faces.First().ToString()));
                return(user);
            })
                                                  .ToList();

            return(new List <FacialUser> (await Task.WhenAll(userTasks)));
        }
        public async Task <IActionResult> UpdateUser([FromBody] FacialUser user)
        {
            await _identityService.UpdateUser(user);

            return(Ok());
        }