public string CreatePersonGroup(Item item, string groupName, string groupUserData) { var validGroupId = GetGroupOrListId(groupName); try { FaceService.CreatePersonGroup(validGroupId, groupName, groupUserData); DataWrapper.UpdateFields(item, new Dictionary <ID, string> { { Settings.FaceEntityIdFieldId, validGroupId } }); if (!item.HasChildren) { return(validGroupId); } Item[] people = item.GetChildren().ToArray(); foreach (var p in people) { var personId = CreatePerson(p, validGroupId, p[Settings.FaceEntityNameFieldId], p[Settings.FaceEntityUserDataFieldId]); if (!p.HasChildren || personId == Guid.Empty) { continue; } Item[] faces = p.GetChildren().ToArray(); foreach (var f in faces) { MediaItem m = ((ImageField)f.Fields[Settings.FaceImageFieldId]).MediaItem; this.CreatePersonFace(f, validGroupId, personId, m.GetMediaStream()); } } return(validGroupId); } catch { } return(string.Empty); }