public UserOut Register(UserRegisterIn dtoUser) { var existedUser = ffContext.Users.FirstOrDefault(usr => usr.Email == dtoUser.Email); if (existedUser != null) { throw new ArgumentException("email"); } UserRole role; if (string.IsNullOrWhiteSpace(dtoUser.RoleId)) { role = ffContext.Roles.FirstOrDefault(r => r.Name == "Клиент"); } else { role = ffContext.Roles.FirstOrDefault(r => r.Id == dtoUser.RoleId); } if (role == null) { throw new ArgumentException("roleId"); } var config = new MapperConfiguration(cfg => cfg.CreateMap <UserRegisterIn, User>()); var mapper = config.CreateMapper(); var user = mapper.Map <User>(dtoUser); user.PasswordHash = PasswordCryptHelper.GetPasswordHash(dtoUser.Password); user.Role = role; ffContext.Users.Add(user); ffContext.SaveChanges(); user = ffContext.Users.FirstOrDefault(u => u.Id == user.Id); var userOut = mapper.Map <UserOut>(user); return(userOut); }
public IActionResult Create([FromBody] UserRegisterIn user) { UserOut userOut; try { userOut = userService.Register(user); } catch (ArgumentException ex) { Response.StatusCode = 403; var msg = new JsonMessage("Исключение на свойстве: " + ex.Message, ""); if (ex.Message == "email") { msg.Description = "Пользователь с таким email уже существует"; } return(Json(msg)); } return(Json(userOut)); }