예제 #1
0
        public async Task <ActionResult> Register(RegisterModel registerModel)
        {
            var registerInfo = await _securityProvider.Register(
                registerModel.Name,
                registerModel.Email,
                registerModel.Password);

            if (!registerInfo.Result.Succeeded)
            {
                return(BadRequest(registerInfo.Result.Errors.Where(d => !d.Code.Equals("DuplicateUserName"))));
            }

            await _repositories.Accounts.NewAsync(registerInfo.User.Id);

            await _repositories.CommitChangesAsync();

            return(Created(
                       Url.Action(nameof(Me)),
                       new AuthResultModel
            {
                User = _mapper.Map <UserModel>(registerInfo.User),
                Token = registerInfo.Token
            }));
        }