Sau đây, NET Core VN xin giới thiệu CRUD thông tin User trong ASP.NET Core.
1. Lấy thông tin User
[HttpGet] public async Task<IActionResult> GetUsers() { var users = await _userManager.Users.ToListAsync(); var userDtos = new List<UserDto>(); foreach (var user in users) { var userDto = _mapper.Map<UserDto>(user); //set isLocked userDto.IsLocked = await _userManager.IsLockedOutAsync(user); var roleNames = _userManager.GetRolesAsync(user).Result; userDto.Role = new List<RoleDto>(); foreach (var roleName in roleNames) { var role = _roleManager.FindByNameAsync(roleName).Result; var roleDto = _mapper.Map<RoleDto>(role); userDto.Role.Add(roleDto); } userDtos.Add(userDto); } return Ok(userDtos); }
2. Thêm thông tin User
[HttpPost] public async Task<IActionResult> PostUser([FromBody] UserDto userDto) { var jsonResult = new JsonResult(""); if (userDto == null) { _logger.LogError(nameof(PostUser), userDto); return BadRequest(); } var user = new User(); user.Name = userDto.Name; user.NickName = userDto.NickName; user.Teaser = userDto.Teaser; user.Email = userDto.Email; user.PhoneNumber = userDto.PhoneNumber; user.Birthday = userDto.Birthday; user.UserName = userDto.Email; user.UserPassword = userDto.UserPassword; var result = await _userManager.CreateAsync(user, user.UserPassword); if (!result.Succeeded) { jsonResult.StatusCode = 0; foreach (var error in result.Errors) { jsonResult.ContentType += error.Description; } _logger.LogError(nameof(PostUser), result.Errors.ToString()); if (!Helper.IsLocalRequest(HttpContext)) { Helper.SendMail("nguyenminhtuanitc@gmail.com", "nguyenminhtuanitc@gmail.com", "From " + HttpContext.Request.Host + ": " + nameof(PostUser), jsonResult.ContentType); } return Ok(jsonResult); } jsonResult.StatusCode = 1; jsonResult.ContentType = "Added User Successfully!"; return Ok(jsonResult); }
3. Sửa thông tin User
[HttpPut] [Route("{id}")] public async Task<IActionResult> PutUser(string id, [FromBody] UserDto userDto) { var jsonResult = new JsonResult(""); if (id == null) { _logger.LogError(nameof(PutUser), userDto); return BadRequest(); } var user = await _userManager.FindByIdAsync(id.ToString()); if (user == null) { _logger.LogError(nameof(PutUser), userDto); return NotFound(); } user.Name = userDto.Name; user.NickName = userDto.NickName; user.Teaser = userDto.Teaser; user.Email = userDto.Email; user.PhoneNumber = userDto.PhoneNumber; user.Birthday = userDto.Birthday; user.UserName = userDto.UserName; var result = await _userManager.UpdateAsync(user); if (!result.Succeeded) { jsonResult.StatusCode = 0; foreach (var error in result.Errors) { jsonResult.ContentType += error.Description; } _logger.LogError(nameof(PutUser), result.Errors.ToString()); if (!Helper.IsLocalRequest(HttpContext)) { Helper.SendMail("nguyenminhtuanitc@gmail.com", "nguyenminhtuanitc@gmail.com", "From " + HttpContext.Request.Host + ": " + nameof(PutUser), jsonResult.ContentType); } return Ok(jsonResult); } jsonResult.StatusCode = 1; jsonResult.ContentType = "Edited User Successfully!"; return Ok(jsonResult); }
4. Xóa thông tin User
[HttpDelete] [Route("{id}")] public async Task<IActionResult> DeleteUser(string id) { if (id == null) { _logger.LogError(nameof(DeleteUser), id); return BadRequest(); } var _user = await _userManager.FindByIdAsync(id.ToString()); var result = await _userManager.DeleteAsync(_user); return CreatedAtAction("GetUsers", new { id = _user.Id }, _user); }