示例#1
0
        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);
        }
示例#2
0
        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));
        }