ASP.NET Core - CRUD cho User module

ASP.NET Core - CRUD cho User module

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);
        }
Nguyễn Minh Tuấn

Nguyễn Minh Tuấn

Bài viết liên quan

Trả lời tới ASP.NET Core - CRUD cho User module

Đăng nhập

Cảm ơn bạn đã phản hồi!