/// <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); } }
/// <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()); }