public UserViewModel CreateUser(UserViewModel user) { var hasher = new PasswordHasher(); var newUser = new User { UserName = user.UserName, PasswordHash = hasher.HashPassword(user.PasswordHash), Email = user.Email, FirstName = user.FirstName, SecondName = user.SecondName, LastName = user.LastName, Gender = user.Gender, Age = user.Age, Town = user.Town, Country = user.Country, CreatedOn = DateTime.Now, EmailConfirmed = false, SecurityStamp = Guid.NewGuid().ToString(), LockoutEnabled = true, PhoneNumber = user.PhoneNumber, Website = user.Website }; ChangeRoleToUser(newUser, user.EnterprisePosition); this.Data.Users.Add(newUser); this.Data.SaveChanges(); user.Id = newUser.Id; user.CreatedOn = newUser.CreatedOn; return user; }
private void ChangeRoleToUser(User user, EnterprisePosition position) { var roleName = ""; switch (position) { case EnterprisePosition.Financial: user.EnterprisePosition = EnterprisePosition.Financial; roleName = "Financial"; break; case EnterprisePosition.Dealer: user.EnterprisePosition = EnterprisePosition.Dealer; roleName = "Dealer"; break; default: user.EnterprisePosition = EnterprisePosition.Admin; roleName = "Admin"; break; } // TODO: Remove db context and find way for manipulating data in other way var db = new CRMDbContext(); var role = db.Roles.FirstOrDefault(r => r.Name == roleName); user.Roles.Add(new IdentityUserRole() { RoleId = role.Id, UserId = user.Id }); }