예제 #1
0
        public async Task <ResponseEntity> UpdateUserAsync(string id, SuaNguoiDungViewModel modelVm)
        {
            try
            {
                // CẬP NHẬT THÔNG TIN NGƯỜI DÙNG
                NguoiDung entity = await _nguoiDungRepository.GetSingleByIdAsync(id);

                if (entity == null)
                {
                    return(new ResponseEntity(StatusCodeConstants.NOT_FOUND, modelVm));
                }

                entity = _mapper.Map <NguoiDung>(modelVm);
                await _nguoiDungRepository.UpdateAsync(id, entity);

                // CẬP NHẬT THÔNG TIN KHÁCH HÀNG
                KhachHang khachHang = await _khachHangRepository.GetByEmailAsync(entity.Email);

                KhachHangViewModel khachHangVm = _mapper.Map <KhachHangViewModel>(khachHang);
                khachHangVm.TenKH                  = entity.HoTen;
                khachHangVm.ThongTinKH.Email       = entity.Email;
                khachHangVm.ThongTinKH.SoDienThoai = entity.SoDT;

                khachHang = _mapper.Map <KhachHang>(khachHangVm);
                await _khachHangRepository.UpdateAsync(khachHang.Id, khachHang);

                return(new ResponseEntity(StatusCodeConstants.OK, modelVm, MessageConstants.UPDATE_SUCCESS));
            }
            catch (Exception ex)
            {
                return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, ex.Message));
            }
        }
예제 #2
0
        public async Task <ResponseEntity> UpdateUserAsync(string id, SuaNguoiDungViewModel modelVm)
        {
            try
            {
                NguoiDung entity = await _nguoiDungRepository.GetSingleByIdAsync(id);

                if (entity == null)
                {
                    return(new ResponseEntity(StatusCodeConstants.NOT_FOUND, modelVm));
                }

                entity = _mapper.Map <NguoiDung>(modelVm);
                await _nguoiDungRepository.UpdateAsync(id, entity);

                return(new ResponseEntity(StatusCodeConstants.OK, modelVm, MessageConstants.UPDATE_SUCCESS));
            }
            catch (Exception ex)
            {
                return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, ex.Message));
            }
        }
예제 #3
0
        public async Task <IActionResult> SuaNguoiDung(string email)
        {
            if (string.IsNullOrWhiteSpace(email))
            {
                return(NotFound());
            }
            var getuser = await context.Users.Where(data => data.Email == email).FirstOrDefaultAsync();

            ViewBag.ChucVu = context.Roles;
            var model = new SuaNguoiDungViewModel
            {
                ChucVu      = (await usermanager.GetRolesAsync(getuser)).FirstOrDefault(),
                DiaChi      = getuser.DiaChi,
                HoTen       = getuser.HoTen,
                GioiTinh    = getuser.GioiTinh,
                Email       = getuser.Email,
                NgaySinh    = getuser.NgaySinh,
                PhoneNumber = getuser.PhoneNumber
            };

            return(View(model));
        }
예제 #4
0
        public async Task <IActionResult> SuaNguoiDung(SuaNguoiDungViewModel model)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.ChucVu = context.Roles;
                return(View(model));
            }
            var currentUser = await usermanager.FindByEmailAsync(model.Email);

            currentUser.HoTen       = model.HoTen;
            currentUser.NgaySinh    = model.NgaySinh;
            currentUser.DiaChi      = model.DiaChi;
            currentUser.PhoneNumber = model.PhoneNumber;
            //Email và giới tính không thay đổi
            await usermanager.UpdateAsync(currentUser);

            //update chức vụ bằng cách xóa đi chức vụ cũ và thêm vào chức vụ mới
            await usermanager.RemoveFromRoleAsync(currentUser, (await usermanager.GetRolesAsync(currentUser)).FirstOrDefault());

            await usermanager.AddToRoleAsync(currentUser, model.ChucVu);

            //nếu mật khẩu không rỗng thì đổi mật khẩu
            if (!string.IsNullOrEmpty(model.Password))
            {
                var token = await usermanager.GeneratePasswordResetTokenAsync(currentUser);

                var chngpsswrd = await usermanager.ResetPasswordAsync(currentUser, token, model.Password);

                if (!chngpsswrd.Succeeded)
                {
                    return(View(model));
                }
            }
            //update xong thì trả về danh sách
            return(Redirect(nameof(Index)));
        }
예제 #5
0
 public async Task <IActionResult> Put(string id, [FromBody] SuaNguoiDungViewModel model)
 {
     return(await _nguoiDungService.UpdateUserAsync(id, model));
 }