//private string FormatId(string userName) //{ // if (string.IsNullOrEmpty(userName)) // { // throw new ArgumentNullException("userName"); // } // return "SrirachaUser_" + userName.Replace('\\', '_'); //} public SrirachaUser CreateUser(SrirachaUser user) { if(user == null) { throw new ArgumentNullException("user"); } if(string.IsNullOrEmpty(user.UserName)) { throw new ArgumentNullException("user.UserName"); } if(UserNameExists(user.UserName)) { throw new ArgumentException("UserName already exists: " + user.UserName); } var dbItem = SqlSrirachaUser.FromDto(user); dbItem.Id = Guid.NewGuid().ToString(); if(user.UserGuid == Guid.Empty) { dbItem.UserGuid = Guid.NewGuid(); } dbItem.SetCreatedFields(this._userIdentity.UserName); //dbItem.Id = FormatId(user.UserName); using(var db = _sqlConnectionInfo.GetDB()) { db.Insert("SrirachaUser", "ID", false, dbItem); } return this.GetUser(dbItem.Id); }
public static SqlSrirachaUser FromDto(SrirachaUser user) { var dbItem = AutoMapper.Mapper.Map(user, new SqlSrirachaUser()); if (user.ProjectNotificationItemList != null) { dbItem.ProjectNotificationItemListJson = user.ProjectNotificationItemList.ToJson(); } return dbItem; }
public SrirachaUser CreateUser(string userName, string emailAddress, string password) { var user = new SrirachaUser { UserName = userName, EmailAddress = emailAddress, LastActivityDateTimeUtc = DateTime.UtcNow }; if(!string.IsNullOrEmpty(password)) { user.EncryptedPassword = this.GetEncryptedPassword(userName, password); } return _membershipRepository.CreateUser(user); }
private MembershipUser CreateMembershipUser(SrirachaUser user) { return new MembershipUser(providerName: SrirachaMembershipProvider.ProviderName, name: user.UserName, providerUserKey: user.UserGuid, email: user.EmailAddress, passwordQuestion: user.PasswordQuestion, creationDate: user.CreatedDateTimeUtc, isLockedOut: user.LockedIndicator, comment: null, isApproved: true, lastActivityDate: user.LastLoginDateDateTimeUtc.GetValueOrDefault(), lastLockoutDate: user.LastLockoutDateTimeUtc.GetValueOrDefault(), lastLoginDate: user.LastLoginDateDateTimeUtc.GetValueOrDefault(), lastPasswordChangedDate: user.LastPasswordChangedDateTimeUtc.GetValueOrDefault()); }
public SrirachaUser UpdateUser(SrirachaUser user) { if(user == null) { throw new ArgumentNullException("user"); } if(string.IsNullOrEmpty(user.UserName)) { throw new ArgumentNullException("user.UserName"); } var sourceUser = _documentSession.LoadEnsureNoCache<SrirachaUser>(FormatId(user.UserName)); var targetUser = AutoMapper.Mapper.Map(user, sourceUser); targetUser.CreatedDateTimeUtc = sourceUser.CreatedDateTimeUtc; targetUser.CreatedByUserName = sourceUser.CreatedByUserName; targetUser.UpdatedByUserName = _userIdentity.UserName; targetUser.UpdatedDateTimeUtc = DateTime.UtcNow; return _documentSession.StoreSaveEvict(targetUser); }
public SrirachaUser CreateUser(SrirachaUser user) { if(user == null) { throw new ArgumentNullException("user"); } if(string.IsNullOrEmpty(user.UserName)) { throw new ArgumentNullException("user.UserName"); } var dbUser = AutoMapper.Mapper.Map(user, new SrirachaUser()); if(dbUser.UserGuid == Guid.Empty) { dbUser.UserGuid = Guid.NewGuid(); } var existingItem = TryGetUserByUserName(user.UserName); if(existingItem != null) { throw new ArgumentException(string.Format("User with username {0} already exists", user.UserName)); } dbUser.SetCreatedFields(_userIdentity.UserName); dbUser.Id = FormatId(dbUser.UserName); return _documentSession.StoreSaveEvict(dbUser); }
public override MembershipUser CreateUser(string userName, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { var repository = this.GetRepository(); MembershipUser returnValue = null; if(string.IsNullOrWhiteSpace(userName)) { status = MembershipCreateStatus.InvalidUserName; } else if (string.IsNullOrWhiteSpace(password)) { status = MembershipCreateStatus.InvalidPassword; } else if (string.IsNullOrWhiteSpace(email)) { status = MembershipCreateStatus.InvalidEmail; } else if (repository.UserNameExists(userName)) { status = MembershipCreateStatus.DuplicateUserName; } else if (repository.EmailAddressExists(email)) { status = MembershipCreateStatus.DuplicateEmail; } else { var user = new SrirachaUser { UserName = userName, EmailAddress = email, PasswordQuestion = passwordQuestion, PasswordAnswer = passwordAnswer, UserGuid = (Guid)(providerUserKey ?? Guid.NewGuid()), LastLockoutDateTimeUtc = null, LastLoginDateDateTimeUtc = null, LastPasswordChangedDateTimeUtc = DateTime.UtcNow, LockedIndicator = false, MustChangePasswordIndicator = true, EncryptedPassword = GetEncryptedPassword(userName, password) }; user = repository.CreateUser(user); returnValue = CreateMembershipUser(user); status = MembershipCreateStatus.Success; this.LogInfo("Created user {0}", userName); } return returnValue; }
public SrirachaUser UpdateUser(SrirachaUser user) { if(user == null) { throw new ArgumentNullException("user"); } if(string.IsNullOrEmpty(user.UserName)) { throw new ArgumentNullException("user.UserName"); } var existingUser = GetUser(user.Id); var dbItem = SqlSrirachaUser.FromDto(user); dbItem.CreatedByUserName = existingUser.CreatedByUserName; dbItem.CreatedDateTimeUtc = existingUser.CreatedDateTimeUtc; dbItem.SetUpdatedFields(this._userIdentity.UserName); using(var db = _sqlConnectionInfo.GetDB()) { db.Update("SrirachaUser", "ID", dbItem, dbItem.Id); } return this.GetUser(dbItem.Id); }
public AccountSettings UpdateCurrentUserSettings(string emailAddress, List<ProjectNotificationItem> projectNotificationItemList) { UpdateNotificationList(_userIdentity.UserName, projectNotificationItemList); var user = _membershipRepository.TryGetUserByUserName(_userIdentity.UserName); if(user == null) { user = new SrirachaUser { UserGuid = Guid.NewGuid(), UserName = _userIdentity.UserName, EmailAddress = emailAddress, ProjectNotificationItemList = projectNotificationItemList }; user = _membershipRepository.CreateUser(user); } else { user.EmailAddress = emailAddress; user.ProjectNotificationItemList = projectNotificationItemList; user = _membershipRepository.UpdateUser(user); } return new AccountSettings { UserName = user.UserName, EmailAddress = user.EmailAddress, ProjectNotificationItemList = projectNotificationItemList }; }
public void EnsureUserAccount(string userName) { var user = _membershipRepository.TryGetUserByUserName(userName); if(user == null) { user = new SrirachaUser { UserName = userName }; _membershipRepository.CreateUser(user); } }
public void ShouldReturnUserList() { var testData = UserTestData.Setup(false); var userList = new SrirachaUser[] { new SrirachaUser { UserName="******", EmailAddress = "*****@*****.**" }, new SrirachaUser { UserName="******", EmailAddress = "*****@*****.**" }, new SrirachaUser { UserName="******", EmailAddress = "*****@*****.**" }, new SrirachaUser { UserName="******", EmailAddress = "*****@*****.**" }, new SrirachaUser { UserName="******", EmailAddress = "*****@*****.**" }, }; var pagedList = new PagedSortedList<SrirachaUser>(new PagedList.StaticPagedList<SrirachaUser>(userList, 1, int.MaxValue, userList.Count()), string.Empty, true); testData.Repository.Setup(i => i.GetUserList(It.Is<ListOptions>(j => j.PageNumber == 1 && j.PageSize == 10), null, null)).Returns(pagedList); var provider = new SrirachaMembershipProvider(testData.Repository.Object); int totalRecords; var collection = provider.GetAllUsers(0, 10, out totalRecords); Assert.AreEqual(5, totalRecords); Assert.IsNotNull(collection); Assert.AreEqual(5, collection.Count); Assert.IsNotNull(collection["test1"]); Assert.IsNotNull(collection["test2"]); Assert.IsNotNull(collection["test3"]); Assert.IsNotNull(collection["test4"]); Assert.IsNotNull(collection["test5"]); }
public void ShouldReturnUsersByUserNameMatch() { var testData = UserTestData.Setup(false); var userList = new SrirachaUser[] { new SrirachaUser { UserName="******", EmailAddress = "*****@*****.**" }, new SrirachaUser { UserName="******", EmailAddress = "*****@*****.**" }, new SrirachaUser { UserName="******", EmailAddress = "*****@*****.**" }, new SrirachaUser { UserName="******", EmailAddress = "*****@*****.**" }, new SrirachaUser { UserName="******", EmailAddress = "*****@*****.**" }, }; string userNameToMatch = "test1"; var matchedList = userList.Where(i=>i.EmailAddress.Contains(userNameToMatch)); var pagedList = new PagedSortedList<SrirachaUser>(new PagedList.StaticPagedList<SrirachaUser>(matchedList, 1, int.MaxValue, matchedList.Count()), string.Empty, true); testData.Repository.Setup(i => i.GetUserList(It.IsAny<ListOptions>(), It.IsAny<List<string>>(), null)).Returns(pagedList); var provider = new SrirachaMembershipProvider(testData.Repository.Object); int totalRecords; var collection = provider.FindUsersByName(userNameToMatch, 0, 10, out totalRecords); Assert.AreEqual(1, totalRecords); Assert.IsNotNull(collection); Assert.AreEqual(1, collection.Count); Assert.IsNotNull(collection["test1"]); }