public async Task <Community> Create(string name, bool showCurrentUser, string supportEmail)
        {
            var creator = _authService.GetCurrentUser();

            var communityId = _context.Communities.Document().Id;

            var community = new Community
            {
                Id              = communityId,
                Name            = name,
                ShowCurrentUser = showCurrentUser,
                SupportEmail    = supportEmail
            };

            var membership = new CommunityMembership
            {
                Name        = creator.Username,
                Role        = CommunityRole.CommunityAdmin,
                CommunityId = communityId,
                UserId      = creator.Id
            };

            await _context.RunTransactionAsync(transaction =>
            {
                _communityRepository.Add(community, transaction);
                _membershipRepository.Add(membership, transaction);
            });

            return(community);
        }
Пример #2
0
        public void Add_ShopOwnerInstance_CallsStoredProcedureExecutionForShopOwnerAccountAdd()
        {
            // prepare
            IMembershipRepository membershipRepository = _kernel.Get <IMembershipRepository>();

            var addressMock = _kernel.GetMock <IAddress>();

            addressMock.SetupProperty(x => x.AddressLine1, "Billing address line 1");
            addressMock.SetupProperty(x => x.City, "Dhaka");
            addressMock.SetupProperty(x => x.Country, "Bangladesh");
            addressMock.SetupProperty(x => x.ID, IdentityGenerator.NewSequentialGuid());
            addressMock.SetupProperty(x => x.Zipcode, "1213");

            var membershipMock = _kernel.GetMock <IMembershipPackage>();

            membershipMock.SetupProperty(x => x.Description, "Free membership for startups");
            membershipMock.SetupProperty(x => x.ID, IdentityGenerator.NewSequentialGuid());
            membershipMock.SetupProperty(x => x.MaxCategoryAllowed, 20);
            membershipMock.SetupProperty(x => x.MaxProductAllowed, 100);
            membershipMock.SetupProperty(x => x.MaxShopAllowed, 1);
            membershipMock.SetupProperty(x => x.Name, "Free");
            membershipMock.SetupProperty(x => x.Price, 0);
            membershipMock.SetupProperty(x => x.PriceDisplayText, "FREE!");

            var shopOwnerMock = _kernel.GetMock <IShopOwner>();

            shopOwnerMock.SetupProperty(x => x.ID, IdentityGenerator.NewSequentialGuid());
            shopOwnerMock.SetupProperty(x => x.AccountCreationDateTime, DateTime.Now);
            shopOwnerMock.SetupProperty(x => x.AccountStatus, AccountStatusOptions.Active);
            shopOwnerMock.SetupProperty(x => x.BillingAddress, addressMock.Object);
            shopOwnerMock.SetupProperty(x => x.EmailAddress, "*****@*****.**");
            shopOwnerMock.SetupProperty(x => x.FirstName, "Jalal");
            shopOwnerMock.SetupProperty(x => x.LastName, "Uddin");
            shopOwnerMock.SetupProperty(x => x.LastWrongPasswordAttemptDateTime, DateTime.Now.AddDays(-2));
            shopOwnerMock.SetupProperty(x => x.MembershipPlan, membershipMock.Object);
            shopOwnerMock.SetupProperty(x => x.MobileNumber, "8801737364773");
            shopOwnerMock.SetupProperty(x => x.EncryptedPassword, "testpass123");
            shopOwnerMock.SetupProperty(x => x.WrongPasswordAttempt, 0);

            _kernel.GetMock <IDbCommandFactory>().Setup(x => x.CreateParameter(It.IsAny <string>(), It.IsAny <object>()))
            .Returns(new SqlParameter("parameter", "parameter value"));

            _kernel.GetMock <IDbCommandFactory>().Setup(x => x.CreateCommand("ShopOwnerAccount_Add", It.IsAny <object[]>()))
            .Returns(new SqlCommand("ShopOwnerAccount_Add")
            {
                CommandType = System.Data.CommandType.StoredProcedure
            });

            _kernel.GetMock <IDbCommandExecutionService>().Setup(x => x.ExecuteCommand(
                                                                     It.Is <DbCommand>(y => y.CommandType == System.Data.CommandType.StoredProcedure &&
                                                                                       y.CommandText == "ShopOwnerAccount_Add"))).Verifiable();

            // act
            membershipRepository.Add(shopOwnerMock.Object);

            // assert
            _kernel.GetMock <IDbCommandExecutionService>().VerifyAll();
        }
Пример #3
0
        public IUser CreateUser(CreateUserParams createUserParams)
        {
            UserEntity model = new UserEntity();

            model.NormalizedUserName = createUserParams.NormalizedUserName;
            model.UserName           = createUserParams.Username;
            model.Email         = createUserParams.Email;
            model.HashAlgorithm = "SHA1";
            SetPassword(model, createUserParams.Password);
            return(_userRep.Add(model));
        }
Пример #4
0
        public void Add(MembershipModel obj)
        {
            if (obj == null)
            {
                return;
            }
            var model = Mapper.Map <MembershipModel, Membership>(obj);

            _membershipRepository.Add(model);
            _membershipRepository.Save();
        }
        public Task <CommunityMembership> Add(User user, string community)
        {
            var membership = new CommunityMembership
            {
                Name        = user.Username,
                UserId      = user.Id,
                CommunityId = community,
                Role        = CommunityRole.User
            };

            return(_membershipRepository.Add(membership));
        }
Пример #6
0
        public async Task <Membership> CreateOrUpdate(Guid?membershipId, MembershipDto createdMembershipData)
        {
            if (membershipId == null)
            {
                var membership = _membershipRepository.Add(createdMembershipData);
                await _domainContext.SaveChangesAsync();

                return(await _membershipRepository.GetAsync(membership.Id));
            }

            await _membershipRepository.UpdateAsync(membershipId.Value, createdMembershipData);

            await _domainContext.SaveChangesAsync();

            return(await _membershipRepository.GetAsync(membershipId.Value));
        }
        public async Task<IActionResult> PostMembership([FromRoute]int id, [FromBody] SaveMembershipDto membershipDto)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }
            if (!mRepository.MemberExists(id))
            {
                return NotFound();
            }
            else
            {
                var membership = mapper.Map<Membership>(membershipDto);
                msRepository.Add(/*id,*/ membership);
                await unitOfWork.Complete();

                //return CreatedAtAction("GetMembership", new { id = membership.Id });
                return Ok(membership);
            }
        }
Пример #8
0
        public void Add_AdminInstance_CallsStoredProcedureExecutionForAdminAccountAdd()
        {
            // prepare
            IMembershipRepository membershipRepository = _kernel.Get <IMembershipRepository>();

            var adminMock = _kernel.GetMock <IUserAccount>();

            adminMock.SetupProperty(x => x.ID, IdentityGenerator.NewSequentialGuid());
            adminMock.SetupProperty(x => x.AccountCreationDateTime, DateTime.Now);
            adminMock.SetupProperty(x => x.AccountStatus, AccountStatusOptions.Active);
            adminMock.SetupProperty(x => x.EmailAddress, "*****@*****.**");
            adminMock.SetupProperty(x => x.FirstName, "Jalal");
            adminMock.SetupProperty(x => x.LastName, "Uddin");
            adminMock.SetupProperty(x => x.LastWrongPasswordAttemptDateTime, DateTime.Now.AddDays(-2));
            adminMock.SetupProperty(x => x.MobileNumber, "8801737364773");
            adminMock.SetupProperty(x => x.EncryptedPassword, "testpass123");
            adminMock.SetupProperty(x => x.WrongPasswordAttempt, 0);


            _kernel.GetMock <IDbCommandFactory>().Setup(x => x.CreateParameter(It.IsAny <string>(), It.IsAny <object>()))
            .Returns(new SqlParameter("parameter", "parameter value"));

            _kernel.GetMock <IDbCommandFactory>().Setup(x => x.CreateCommand("AdminAccount_Add", It.IsAny <object[]>()))
            .Returns(new SqlCommand("AdminAccount_Add")
            {
                CommandType = System.Data.CommandType.StoredProcedure
            });



            _kernel.GetMock <IDbCommandExecutionService>().Setup(x => x.ExecuteCommand(
                                                                     It.Is <DbCommand>(y => y.CommandType == System.Data.CommandType.StoredProcedure &&
                                                                                       y.CommandText == "AdminAccount_Add"))).Verifiable();


            // act
            membershipRepository.Add(adminMock.Object);

            // assert
            _kernel.GetMock <IDbCommandExecutionService>().VerifyAll();
        }
Пример #9
0
        public ICommandResult Execute(RegisterUserCommand command)
        {
            try
            {
                if (command == null)
                {
                    throw new ArgumentNullException();
                }

                var user = new User();
                AddUser(command, user);
                _membershipRepository.Add(user);
                _unitOfWork.Commit();
                return(new SuccessResult(MembershipCommandMessage.UserCreatedSuccessfully));
            }
            catch (MembershipCommandException exception)
            {
                _logger.Error(exception.Message);
                return(new FailureResult(MembershipCommandMessage.UserCreationFailed));
            }
        }
Пример #10
0
        /// <summary>
        /// Create new user
        /// </summary>
        /// <param name="newUser"></param>
        /// <returns></returns>
        public MembershipCreateStatus CreateUser(MembershipUser newUser)
        {
            newUser = SanitizeUser(newUser);
            var settings = _settingsRepository.GetSettings(true);

            var status = MembershipCreateStatus.Success;

            var e = new RegisterUserEventArgs {
                User = newUser
            };

            EventManager.Instance.FireBeforeRegisterUser(this, e);

            if (e.Cancel)
            {
                status = e.CreateStatus;
            }
            else
            {
                if (string.IsNullOrEmpty(newUser.UserName))
                {
                    status = MembershipCreateStatus.InvalidUserName;
                }

                // get by username
                if (_membershipRepository.GetUser(newUser.UserName) != null)
                {
                    status = MembershipCreateStatus.DuplicateUserName;
                }

                // Add get by email address
                if (_membershipRepository.GetUserByEmail(newUser.Email) != null)
                {
                    status = MembershipCreateStatus.DuplicateEmail;
                }

                if (string.IsNullOrEmpty(newUser.Password))
                {
                    status = MembershipCreateStatus.InvalidPassword;
                }

                if (status == MembershipCreateStatus.Success)
                {
                    // Hash the password
                    var salt = StringUtils.CreateSalt(AppConstants.SaltSize);
                    var hash = StringUtils.GenerateSaltedHash(newUser.Password, salt);
                    newUser.Password     = hash;
                    newUser.PasswordSalt = salt;

                    newUser.Roles = new List <MembershipRole> {
                        settings.NewMemberStartingRole
                    };

                    // Set dates
                    newUser.CreateDate      = newUser.LastPasswordChangedDate = DateTime.UtcNow;
                    newUser.LastLockoutDate = (DateTime)SqlDateTime.MinValue;
                    newUser.LastLoginDate   = DateTime.UtcNow;

                    newUser.IsApproved  = !settings.ManuallyAuthoriseNewMembers;
                    newUser.IsLockedOut = false;

                    // url generator
                    newUser.Slug = ServiceHelpers.GenerateSlug(newUser.UserName, _membershipRepository.GetUserBySlugLike(ServiceHelpers.CreateUrl(newUser.UserName)), null);

                    try
                    {
                        _membershipRepository.Add(newUser);

                        if (settings.EmailAdminOnNewMemberSignUp)
                        {
                            var sb = new StringBuilder();
                            sb.AppendFormat("<p>{0}</p>", string.Format(_localizationService.GetResourceString("Members.NewMemberRegistered"), settings.ForumName, settings.ForumUrl));
                            sb.AppendFormat("<p>{0} - {1}</p>", newUser.UserName, newUser.Email);
                            var email = new Email
                            {
                                EmailTo = settings.AdminEmailAddress,
                                NameTo  = _localizationService.GetResourceString("Members.Admin"),
                                Subject = _localizationService.GetResourceString("Members.NewMemberSubject")
                            };
                            email.Body = _emailService.EmailTemplate(email.NameTo, sb.ToString());
                            _emailService.SendMail(email);
                        }

                        _activityService.MemberJoined(newUser);
                        EventManager.Instance.FireAfterRegisterUser(this,
                                                                    new RegisterUserEventArgs {
                            User = newUser
                        });
                    }
                    catch (Exception)
                    {
                        status = MembershipCreateStatus.UserRejected;
                    }
                }
            }

            return(status);
        }
Пример #11
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public int Add(User model)
 {
     return(_iMembershipRepository.Add(model));
 }
Пример #12
0
 public MembershipUser Create(MembershipUser member)
 {
     return(_membershipRepository.Add(member));
 }
Пример #13
0
 public void AddMembership(Membership membership)
 => _membershipRepository.Add(membership);