public override void Save(UserPersona entity)
 {
     using (var scope = new TransactionScope(TransactionScopeOption.Suppress))
     {
         base.Save(entity);
         scope.Complete();
     }
 }
        public LiveoUserHandler(IRepository<LiveoUserRecord> repository, 
            ILiveoUserService liveoUserService,
            IOrchardServices orchardServices,
            ILiveoPersonaService personaService,
            ILiveoPersonaUserService liveoPersonaUserService) {
            Filters.Add(StorageFilter.For(repository));
            _liveoUserService = liveoUserService;
            _orchardServices = orchardServices;
            _personaService = personaService;
            _liveoPersonaUserService = liveoPersonaUserService;

            OnCreated<UserPart>((context, part) => {
                                    var liveoUser = part.As<LiveoUserPart>();
                if (liveoUser != null) {
                    // ensure created user...
                    var user = _liveoUserService.GetById(liveoUser.UserId);
                    if (user != null) {
                        liveoUser.User = user;
                    }
                    if (user == null && !string.IsNullOrEmpty(part.Email)) {
                        user = _liveoUserService.GetUserByEmail(part.Email);

                        if (user == null) {
                            user = new User();
                            user.UserName = part.Email;
                            user.CreateDate = DateTime.UtcNow;
                            user.LastUpdateDate = user.CreateDate;
                            user.Email = user.UserName;
                            user.Password = "******";
                            user.PasswordFormat = 0;
                            user.LoweredEmail = user.Email;

                            _liveoUserService.Add(user);
                        }

                        liveoUser.UserId = user.Id;
                        liveoUser.User = user;

                        var rootPersona = _personaService.GetPersonaByName("User");
                        var userPersona = new UserPersona();
                        userPersona.PersonaId = rootPersona.Id;
                        userPersona.UserId = user.Id;
                        _personaService.Save(rootPersona);

                        _orchardServices.ContentManager.Publish(part.ContentItem);

                        _orchardServices.ContentManager.Publish(liveoUser.ContentItem);
                    }
                }
                                });

            OnLoaded<UserPart>((context, part) => {
                                   var liveoUser = part.As<LiveoUserPart>();
                if (liveoUser != null) {
                    // ensure created user when module might have been disabled, etc...
                    // ensure created user...
                    var user = _liveoUserService.GetById(liveoUser.UserId);
                    if (user != null) {
                        liveoUser.User = user;
                    }
                    if (user == null && !string.IsNullOrEmpty(part.Email))
                    {
                        user = new User();
                        user.UserName = part.Email;
                        user.CreateDate = DateTime.UtcNow;
                        user.LastUpdateDate = user.CreateDate;
                        user.Email = user.UserName;
                        user.Password = "******";
                        user.PasswordFormat = 0;
                        user.LoweredEmail = user.Email;

                        _liveoUserService.Add(user);

                        liveoUser.UserId = user.Id;

                        var rootPersona = _personaService.GetPersonaByName("User");
                        var userPersona = new UserPersona();
                        userPersona.PersonaId = rootPersona.Id;
                        userPersona.UserId = user.Id;
                        _personaService.Save(rootPersona);

                        _orchardServices.ContentManager.Publish(liveoUser.ContentItem);
                    }
                }
                               });
        }