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