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)); } }
public override async Task <ResponseEntity> InsertAsync(ChuyenLopViewModel modelVm) { try { List <KeyValuePair <string, dynamic> > columns = new List <KeyValuePair <string, dynamic> >(); columns.Add(new KeyValuePair <string, dynamic>("MaNguoiDung", modelVm.MaNguoiDung)); columns.Add(new KeyValuePair <string, dynamic>("MaLopChuyenDi", modelVm.MaLopChuyenDi)); columns.Add(new KeyValuePair <string, dynamic>("MaLopChuyenDen", modelVm.MaLopChuyenDen)); ChuyenLop entity = await _chuyenLopRepository.GetSingleByListConditionAsync(columns); if (entity != null) { if (entity.MaLopChuyenDen != modelVm.MaLopChuyenDen && entity.MaLopChuyenDi != modelVm.MaLopChuyenDi) { entity.MaLopChuyenDi = modelVm.MaLopChuyenDen; entity.MaLopChuyenDen = modelVm.MaLopChuyenDi; await _chuyenLopRepository.InsertAsync(entity); } return(new ResponseEntity(StatusCodeConstants.OK, modelVm, MessageConstants.UPDATE_SUCCESS)); } // XÓA MÃ LỚP HỌC CŨ, THÊM MÃ LỚP HỌC MỚI VÀO DANH SÁCH LỚP HỌC CỦA BẢNG USER NguoiDung nguoiDung = await _nguoiDungRepository.GetSingleByIdAsync(modelVm.MaNguoiDung); HashSet <int> dsMaLopHoc = JsonConvert.DeserializeObject <HashSet <int> >(nguoiDung.DanhSachLopHoc); dsMaLopHoc.RemoveWhere(x => x == modelVm.MaLopChuyenDi); dsMaLopHoc.Add(modelVm.MaLopChuyenDen); nguoiDung.DanhSachLopHoc = JsonConvert.SerializeObject(dsMaLopHoc); // XÓA MÃ NGƯỜI DÙNG CỦA KHỎI LỚP HỌC CHUYỂN ĐI LopHoc lopChuyenDi = await _lopHocRepository.GetSingleByIdAsync(modelVm.MaLopChuyenDi); HashSet <string> dsMaNguoiDung = JsonConvert.DeserializeObject <HashSet <string> >(lopChuyenDi.DanhSachHocVien); dsMaNguoiDung.RemoveWhere(x => x == modelVm.MaNguoiDung); lopChuyenDi.DanhSachHocVien = JsonConvert.SerializeObject(dsMaNguoiDung); // THÊM MÃ NGƯỜI DÙNG VÀO LỚP HỌC CHUYỂN ĐẾN LopHoc lopChuyenDen = await _lopHocRepository.GetSingleByIdAsync(modelVm.MaLopChuyenDen); dsMaNguoiDung = JsonConvert.DeserializeObject <HashSet <string> >(lopChuyenDen.DanhSachHocVien); dsMaNguoiDung.Add(modelVm.MaNguoiDung); lopChuyenDen.DanhSachHocVien = JsonConvert.SerializeObject(dsMaNguoiDung); await _nguoiDungRepository.UpdateAsync(nguoiDung.Id, nguoiDung); await _lopHocRepository.UpdateAsync(lopChuyenDi.Id, lopChuyenDi); await _lopHocRepository.UpdateAsync(lopChuyenDen.Id, lopChuyenDen); modelVm.TenLopChuyenDi = lopChuyenDi.TenLopHoc; modelVm.TenLopChuyenDen = lopChuyenDen.TenLopHoc; modelVm.NgayChuyen = DateTime.Now.ToString("dd/MM/yyyy"); entity = _mapper.Map <ChuyenLop>(modelVm); entity = await _chuyenLopRepository.InsertAsync(entity); return(new ResponseEntity(StatusCodeConstants.OK, modelVm, MessageConstants.UPDATE_SUCCESS)); } catch (Exception ex) { return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, ex.Message)); } }