private Circle ToModel(CircleDataModel from)
 {
     return(new Circle(
                new CircleId(from.Id),
                new CircleName(from.Name),
                from.OwnerId != null ? new UserId(from.OwnerId) : null,
                from.CircleMembers.Select(x => new UserId(x.UserId)).ToList()
                ));
 }
        private CircleDataModel Transfer(Circle from, CircleDataModel model)
        {
            model.Name    = from.Name.Value;
            model.OwnerId = from.Owner.Value;
            var currentMemberIds = model.CircleMembers.Select(cm => cm.UserId);
            var addMembers       = from.Members
                                   .Where(x => !currentMemberIds.Contains(x.Value))
                                   .Select(x => context.Users.Find(x.Value));

            foreach (var member in addMembers)
            {
                model.CircleMembers.Add(new UserCircle
                {
                    CircleId = model.Id,
                    UserId   = member.Id
                });
            }

            return(model);
        }