public UserModel(int userId, string email, string userName, AccountStatus status , DateTime dateCreatedUtc, DateTime lastLoginDateUtc, DateTime lastPasswordChangeDateUtc , DateTime lastLockoutDateUtc, DateTime lastActivityDateUtc, int failedPasswordAttemptCount , XElement extraInfo, string timeZoneInfoId, int profileImageId, Guid uniqueId, UserNameDisplayMode userNameDisplayMode , string firstName, string lastName, Gender gender) : base(userId, email, profileImageId, firstName, lastName) { this.UserName = userName; this.Status = status; this.DateCreatedUtc = dateCreatedUtc; this.LastLoginDateUtc = lastLoginDateUtc; this.LastPasswordChangeDateUtc = lastPasswordChangeDateUtc; this.LastLockoutDateUtc = lastLockoutDateUtc; this.LastActivityDateUtc = lastActivityDateUtc; this.FailedPasswordAttemptCount = failedPasswordAttemptCount; this.ExtraInfo = extraInfo; this.TimeZoneInfoId = timeZoneInfoId; this.UniqueId = uniqueId; this.UserNameDisplayMode = userNameDisplayMode; this.Gender = gender; this.UserRoles = new HashSet <string>(); }
public BusinessObjectActionReport <UserCreateStatus> CreateUser(ref IUserBasic user, string password, List <UserRole> roles , UserNameDisplayMode userNameDisplayMode, string firstName, string lastName, Workmate.Components.Contracts.Membership.Gender gender, out Guid uniqueId, int applicationId) { uniqueId = Guid.NewGuid(); UserCreateStatus userCreateStatus = UserCreateStatus.UnknownError; BusinessObjectActionReport <UserCreateStatus> businessObjectActionReport = new BusinessObjectActionReport <UserCreateStatus>(UserCreateStatus.UnknownError); businessObjectActionReport.ValidationResult = BusinessObjectManager.Validate(user); if (!businessObjectActionReport.ValidationResult.IsValid) { return(businessObjectActionReport); } string text = this.GenerateSalt(); ValidatePasswordStatus status = ValidatePasswordStatus.Valid; if (!this.IsPasswordValid(password, text, out status)) { businessObjectActionReport.Status = (UserCreateStatus)status; return(businessObjectActionReport); } int userId; int returnValue; DateTime dateCreatedUtc; try { using (IDataStoreContext dataStoreContext = this.DataStore.CreateContext()) { returnValue = dataStoreContext.wm_Users_Insert(applicationId, user.UserName, user.Email, this.EncodePassword(password, text, this.PasswordFormat) , text, (int)this.PasswordFormat, user.AccountStatus, roles.Select(c => c.ToString()).ToList(), user.ProfileImageId, uniqueId, userNameDisplayMode , user.TimeZoneInfoId, firstName, lastName, gender, out userId, out dateCreatedUtc); } } catch (Exception ex) { _Log.Error("Error at Users_Insert", ex); businessObjectActionReport.Status = UserCreateStatus.SqlError; return(businessObjectActionReport); } if (returnValue == 0) { user.UserId = userId; user.LastActivityDateUtc = dateCreatedUtc; user.DateCreatedUtc = dateCreatedUtc; userCreateStatus = UserCreateStatus.Success; } else { switch (returnValue) { case -1: userCreateStatus = UserCreateStatus.UsernameAlreadyExists; break; case -2: userCreateStatus = UserCreateStatus.EmailAlreadyExists; break; default: _Log.Error("Error at Users_Insert, ErrorCode: " + returnValue); userCreateStatus = UserCreateStatus.SqlError; break; } } businessObjectActionReport.Status = userCreateStatus; if (businessObjectActionReport.Status == UserCreateStatus.Success) { _Log.InfoFormat("Successfully created user {0}.", user.UserId); } return(businessObjectActionReport); }