ASP.NET Core - CRUD cho User module

 9/5/2019 |  Admin   5243 lượt xem

(netcore.vn) - 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);
        }

liên quan

Tìm hiểu tất tần tật về Model Validation trong ASP.NET Core  4523

 2/23/2020

HTTP 400 Responses có gì mới trong web APIs của ASP.NET Core

Xem chi tiết 

HTTP 400 Responses có gì mới trong web APIs của ASP.NET Core  2962

 2/23/2020

HTTP 400 Responses có gì mới trong web APIs của ASP.NET Core

Xem chi tiết 

ASP.NET Core - Đăng nhập và đăng xuất  22428

 9/5/2019

Sau đây, NET Core VN xin giới thiệu 2 chức năng đăng nhập và đăng xuất trong ASP.NET Core.

Xem chi tiết 

Identity Migrations trong ASP.NET Core  3277

 9/5/2019

Sau đây, .NET Core VN xin giới thiệu về chạy migration cho Identity trong ASP.NET Core.

Xem chi tiết 

Cấu hình Identity trong ASP.NET Core  4806

 9/5/2019

Cấu hình Identity trong ASP.NET Core

Xem chi tiết 

Thuộc tính Authorize trong ASP.NET Core  5737

 9/5/2019

Thuộc tính Authorize trong ASP.NET Core

Xem chi tiết 

Tổng quan về Identity trong ASP.NET Core  5895

 9/5/2019

Tổng quan về Identity trong ASP.NET Core

Xem chi tiết 

ASP.NET Core - Razor Edit Form là gì?  2667

 9/5/2019

ASP.NET Core - Razor Edit Form là gì?

Xem chi tiết 

ASP.NET Core - Razor Tag Helpers là gì?  2825

 9/5/2019

ASP.NET Core - Razor Tag Helpers là gì?

Xem chi tiết 

ASP.NET Core - Razor View Import là gì?  3330

 9/5/2019

ASP.NET Core - Razor View Import là gì?

Xem chi tiết 
Like Fanpage Để Ủng Hộ Chúng Tôi Duy Trì Website