Ejemplo n.º 1
0
        public async Task <ResponseEntity> ChangePasswordAsync(DoiMatKhauViewModel modelVm)
        {
            try
            {
                NguoiDung entity = await _nguoiDungRepository.GetByEmailAsync(modelVm.Email);

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

                entity.MatKhau = BCrypt.Net.BCrypt.HashPassword(modelVm.MatKhau);

                entity = await _nguoiDungRepository.UpdateAsync(entity.Id, entity);

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

                return(new ResponseEntity(StatusCodeConstants.OK, modelVm, MessageConstants.UPDATE_SUCCESS));
            }
            catch
            {
                return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER));
            }
        }
Ejemplo n.º 2
0
        public async Task <ResponseEntity> SignInAsync(DangNhapViewModel modelVm)
        {
            try
            {
                // Lấy ra thông tin người dùng từ database dựa vào email
                NguoiDung entity = await _nguoiDungRepository.GetByEmailAsync(modelVm.Email);

                if (entity == null)// Nếu email sai
                {
                    return(new ResponseEntity(StatusCodeConstants.NOT_FOUND, modelVm, MessageConstants.SIGNIN_WRONG));
                }
                // Kiểm tra mật khẩu có khớp không
                if (!BCrypt.Net.BCrypt.Verify(modelVm.MatKhau, entity.MatKhau))
                {
                    // Nếu password không khớp
                    return(new ResponseEntity(StatusCodeConstants.NOT_FOUND, modelVm, MessageConstants.SIGNIN_WRONG));
                }
                // Tạo token
                string token = await GenerateToken(entity);

                if (token == string.Empty)
                {
                    return(new ResponseEntity(StatusCodeConstants.BAD_REQUEST, modelVm, MessageConstants.TOKEN_GENERATE_ERROR));
                }

                entity.Token = token;

                NguoiDungViewModel model = _mapper.Map <NguoiDungViewModel>(entity);
                return(new ResponseEntity(StatusCodeConstants.OK, model, MessageConstants.SIGNIN_SUCCESS));
            }
            catch
            {
                return(new ResponseEntity(StatusCodeConstants.BAD_REQUEST, modelVm, MessageConstants.SIGNIN_ERROR));
            }
        }
        public override async Task <ResponseEntity> UpdateAsync(dynamic id, KhachHangViewModel modelVm)
        {
            try
            {
                KhachHang khachHang = await _khachHangRepository.GetSingleByIdAsync(id);

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

                KhachHangViewModel khachHangVm = _mapper.Map <KhachHangViewModel>(khachHang);
                khachHangVm.ThongTinKH = JsonConvert.DeserializeObject <ThongTinKHViewModel>(khachHang.ThongTinKH);

                // CẬP NHẬT THÔNG TIN KHÁCH HÀNG
                khachHangVm.TenKH                        = modelVm.TenKH;
                khachHangVm.BiDanh                       = modelVm.BiDanh;
                khachHangVm.ThongTinKH.Email             = modelVm.ThongTinKH.Email;
                khachHangVm.ThongTinKH.SoDienThoai       = modelVm.ThongTinKH.SoDienThoai;
                khachHangVm.ThongTinKH.NguonGioiThieu    = modelVm.ThongTinKH.NguonGioiThieu;
                khachHangVm.ThongTinKH.CongViecHienTai   = modelVm.ThongTinKH.CongViecHienTai;
                khachHangVm.ThongTinKH.TruongDaVaDangHoc = modelVm.ThongTinKH.TruongDaVaDangHoc;
                khachHangVm.ThongTinKH.MucTieu           = modelVm.ThongTinKH.MucTieu;
                khachHangVm.ThongTinKH.DiemTiemNang      = modelVm.ThongTinKH.DiemTiemNang;

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

                // CẬP NHẬT THÔNG TIN NGƯỜI DÙNG
                NguoiDung nguoiDung = await _nguoiDungRepository.GetByEmailAsync(khachHangVm.ThongTinKH.Email);

                nguoiDung.HoTen  = modelVm.TenKH;
                nguoiDung.BiDanh = modelVm.BiDanh;
                nguoiDung.SoDT   = modelVm.ThongTinKH.SoDienThoai;
                nguoiDung.Email  = modelVm.ThongTinKH.Email;
                await _nguoiDungRepository.UpdateAsync(nguoiDung.Id, nguoiDung);

                return(new ResponseEntity(StatusCodeConstants.OK, modelVm, MessageConstants.UPDATE_SUCCESS));
            }
            catch (Exception ex)
            {
                return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, ex.Message));
            }
        }
Ejemplo n.º 4
0
        public async Task <ResponseEntity> RegisterAsync(int id, KhachHangGhiDanhViewModel modelVm)
        {
            try
            {
                if (await _khachHangRepository.GetSingleByIdAsync(id) == null)
                {
                    return(new ResponseEntity(StatusCodeConstants.NOT_FOUND));
                }

                DangKyViewModel dangKyModel = new DangKyViewModel()
                {
                    Email   = modelVm.Email,
                    MatKhau = modelVm.MatKhau,
                    HoTen   = modelVm.HoTen,
                    BiDanh  = modelVm.BiDanh,
                    SoDT    = modelVm.SoDT,
                    Avatar  = "/static/user-icon.png"
                };

                NguoiDung entity = await _nguoiDungRepository.GetByEmailAsync(modelVm.Email);

                // Tạo tài khoản cho khách hàng nếu chưa có
                if (entity == null)
                {
                    entity    = _mapper.Map <NguoiDung>(dangKyModel);
                    entity.Id = Guid.NewGuid().ToString();
                    // Mã hóa mật khẩu
                    entity.MatKhau     = BCrypt.Net.BCrypt.HashPassword(modelVm.MatKhau);
                    entity.MaNhomQuyen = "HOCVIEN";

                    entity = await _nguoiDungRepository.InsertAsync(entity);
                }
                // Lấy ra lớp học có id trùng với mã lớp học truyền lên
                LopHoc lopHoc = await _lopHocRepository.GetSingleByIdAsync(modelVm.MaLopHoc);

                //LopHocViewModel lopHocVm = _mapper.Map<LopHocViewModel>(lopHoc);
                // Thêm vào danh sách
                HashSet <string> dsHocVien = JsonConvert.DeserializeObject <HashSet <string> >(lopHoc.DanhSachHocVien);
                dsHocVien.Add(entity.Id);

                lopHoc.DanhSachHocVien = JsonConvert.SerializeObject(dsHocVien);

                // Cập nhật lại thông tin lớp
                await _lopHocRepository.UpdateAsync(lopHoc.Id, lopHoc);

                return(new ResponseEntity(StatusCodeConstants.CREATED, lopHoc, MessageConstants.SIGNUP_SUCCESS));
            }
            catch (Exception ex)
            {
                return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, ex.Message));
            }
        }