Esempio n. 1
0
        public async Task <IActionResult> Register(AccountRegisterDTO accountRegisterDTO)
        {
            accountRegisterDTO.Username = accountRegisterDTO.Username.ToLower();
            if (await _repo.Exists(accountRegisterDTO.Username))
            {
                return(BadRequest("Username already used"));
            }
            // var account = new Account()
            // {
            //     Username = accountRegisterDTO.Username,
            //     PhoneNumber = accountRegisterDTO.PhoneNumber,
            //     DateOfBirth = accountRegisterDTO.DateOfBirth,
            //     Created = DateTime.Now,
            //     Gender = accountRegisterDTO.Gender,
            //     LevelId = 1,
            //     Exp = 0
            // };
            var account = _mapper.Map <Account>(accountRegisterDTO);

            account.LevelId = 1;
            account.Exp     = 0;
            var createdAccount = await _repo.Register(account, accountRegisterDTO.Password);

            if (createdAccount == null)
            {
                return(null);
            }
            var accountReturn = _mapper.Map <AccountForDetailDTO>(account);

            return(CreatedAtRoute("GetUser", new { controller = "Account", id = account.Id }, accountReturn));
        }
Esempio n. 2
0
        public ExecuteResult RegisterBlogUser(AccountRegisterDTO dto)
        {
            ExecuteResult result = new ExecuteResult()
            {
                IsSuccess = true
            };

            if (this._userService.ExistUserName(dto.LoginName))
            {
                result.IsSuccess = false;
                result.Message   = "该用户名已经被注册";

                return(result);
            }

            var entity = Mapper.DynamicMap <UserInfoEntity>(dto);

            entity.PurviewID  = _userPurviewService.GetPurviewMap().Single(m => m.Value == "博客作者").Key;
            entity.LoginPWD   = EncryptHelper.Encrypt(dto.LoginPWD);
            entity.UserStatus = Enum.User.UserStatusEnum.Valid;
            entity.InsertTime = DateTime.Now;
            _userService.Add(entity, true);

            return(result);
        }
        public async Task <IActionResult> RegisterAsync([FromBody] AccountRegisterDTO model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            User user = UserMapper.Map(model);

            UserValidator    validator = new UserValidator();
            ValidationResult result    = await validator.ValidateAsync(user);

            string token = "";

            if (result.IsValid)
            {
                if (!await _context.Users.AnyAsync(x => x.Email == user.Email))
                {
                    _context.Users.Add(user);
                    await _context.SaveChangesAsync();

                    try
                    {
                        token = await _emailTokenService.SendEmailAsync(user.Id, user.Email);
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError("could not send email, {0}", ex);

                        _context.Users.Remove(user);
                        await _context.SaveChangesAsync();

                        return(StatusCode(500));
                    }
                }
                else
                {
                    ModelState.AddModelError("UserEmailExists", "A user with the email already exists");
                }
            }
            else
            {
                foreach (ValidationFailure error in result.Errors)
                {
                    ModelState.AddModelError(error.PropertyName, error.ErrorMessage);
                }
            }

            if (ModelState.ErrorCount != 0)
            {
                return(BadRequest(ModelState));
            }
            return(Ok(token));
        }
Esempio n. 4
0
        public void TestMap_AccountRegisterDTO()
        {
            AccountRegisterDTO dto = new AccountRegisterDTO()
            {
                Email     = _email,
                FirstName = _firstName,
                LastName  = _lastName
            };

            User user = UserMapper.Map(dto);

            Assert.AreEqual(_email, user.Email);
            Assert.AreEqual(_firstName, user.FirstName);
            Assert.AreEqual(_lastName, user.LastName);
        }
Esempio n. 5
0
        public ActionResult AjaxRegister(AccountRegisterDTO dto)
        {
            var result = _accountServcie.RegisterBlogUser(dto);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public async Task <IHttpActionResult> PostAccount(Account account)
        {
            AccountRegisterDTO accountToRegister = new AccountRegisterDTO(account);

            accountToRegister.ValidateInputAccount();

            //Invalid account parameters
            if (accountToRegister.IsInputValid == false)
            {
                return(Ok(accountToRegister));
                //return CreatedAtRoute("DefaultApi", new { id = accountToRegister.Id }, accountToRegister);
            }

            //Valid account parameters
            AccountRegisterDTO accountToSearch = await db.Accounts.Select(b =>
                                                                          new AccountRegisterDTO()
            {
                //Id = b.Id,
                Username = b.Username,
                Iban     = b.Iban,
                Email    = b.Email,
            }).FirstOrDefaultAsync(b => (b.Username.Equals(accountToRegister.Username) || b.Email.Equals(accountToRegister.Email) || b.Iban.Equals(accountToRegister.Iban)));

            //Account already registered
            if (accountToSearch != null)
            {
                //accountToRegister = accountToSearch;
                //accountToRegister.Id = 0;
                accountToRegister.Clear();

                accountToRegister.IsInputValid             = true;
                accountToRegister.DoesAccountExist         = true;
                accountToRegister.IsRegistrationSuccessful = false;
                accountToRegister.ErrorMessages.Add("Account already exists !");
                accountToRegister.ErrorMessages.Add("Username, Email and IBAN have to be unique.");


                return(Ok(accountToRegister));
            }
            else
            {
                accountToRegister.DoesAccountExist = false;
                accountToRegister.IsInputValid     = true;
                //account.Id = 0;

                try
                {
                    db.Accounts.Add(account);
                    await db.SaveChangesAsync();


                    accountToRegister.IsRegistrationSuccessful = true;

                    //  return CreatedAtRoute("DefaultApi", new { id = accountToRegister.Id }, accountToRegister);
                    return(CreatedAtRoute("DefaultApi", null, accountToRegister));
                }
                catch (Exception)
                {
                    accountToRegister.IsRegistrationSuccessful = false;
                }
            }

            // return CreatedAtRoute("DefaultApi", new { id = accountToRegister.Id }, accountToRegister);

            return(Ok(accountToRegister));



            // New code:

            //var dto = new AccountRegisterDTO()
            //{
            //    Email = account.Email,
            //    Iban = account.Iban,
            //    Id = account.Id,
            //    Username = account.Username
            //};


            //return CreatedAtRoute("DefaultApi", new { id = account.Id }, dto);
        }
Esempio n. 7
0
 public static User Map(AccountRegisterDTO dto) => new User
 {
     Email     = dto.Email,
     FirstName = dto.FirstName,
     LastName  = dto.LastName
 };