public async Task <IActionResult> ChangeUser([FromBody] UserForDto model) { if (ModelState.IsValid) { var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; var result = await _userService.ChangeUser(model, userId); if (result.IsSuccess) { return(Ok(result)); } return(BadRequest(result)); } return(BadRequest("Some properties are not valid.")); }
public async Task <IActionResult> Register(UserForDto userForDto) { userForDto.Username = userForDto.Username.ToLower(); if (await _repo.UserExist(userForDto.Username)) { return(BadRequest("User already exist")); } var usertocreate = new User { Username = userForDto.Username }; var createdUser = await _repo.Register(usertocreate, userForDto.Password); return(StatusCode(201)); }
public async Task <UserManagerResponse> ChangeUser(UserForDto model, string userId) { var user = await _userManager.FindByIdAsync(userId); if (user == null) { return new UserManagerResponse { IsSuccess = false, Message = "Kullanıcı bulunamadı." } } ; var userName = _context.Users.SingleOrDefaultAsync(x => x.UserName == model.UserName).Result; if (userName != null && userName.UserName != model.UserName) { return(new UserManagerResponse { IsSuccess = false, Message = "Kullanıcı adı kullanılıyor." }); } if (model.FirstName != null && user.FirstName != model.FirstName) { user.FirstName = model.FirstName; } if (model.LastName != null && user.LastName != model.LastName) { user.LastName = model.LastName; } if (model.UserName != null && user.UserName != model.UserName) { user.UserName = model.UserName; } var result = await _userManager.UpdateAsync(user); if (result.Succeeded) { IdentityOptions _options = new IdentityOptions(); var claims = new List <Claim>() { new Claim(ClaimTypes.Email, user.Email), new Claim(ClaimTypes.NameIdentifier, user.Id), }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["AuthSettings:Key"])); var token = new JwtSecurityToken( issuer: _configuration["AuthSettings:Issuer"], audience: _configuration["AuthSettings:Audience"], claims: claims, expires: DateTime.Now.AddDays(30), signingCredentials: new SigningCredentials(key, SecurityAlgorithms.HmacSha256) ); string tokenAsString = new JwtSecurityTokenHandler().WriteToken(token); var currentUser = new { Id = user.Id, FirstName = user.FirstName, LastName = user.LastName, Email = user.Email, EmailConfirmed = user.EmailConfirmed, PhoneNumber = user.PhoneNumber, Remainder = user.Remainder, OverAllRating = user.OverAllRating, UserName = user.UserName }; return(new UserManagerResponse { IsSuccess = true, Message = tokenAsString, User = currentUser, ExpireDate = token.ValidTo }); } return(new UserManagerResponse { IsSuccess = false, Message = "Bir şeyler yanlış gitti.", Errors = result.Errors.Select(e => e.Description) }); } }