/// <summary> /// Xóa các tài khoản trong DB. /// Author : HoangNM - 18/03/2019 - create /// </summary> /// <param name="ids">Danh sách id của các tài khoản sẽ xóa</param> /// <returns>True nếu xóa thành công, False nếu không còn tài khoản được hiển thị trên trang chủ, Excetion nếu có lỗi</returns> public bool DeleteTaiKhoan(int id) { DbContextTransaction transaction = context.Database.BeginTransaction(); try { var kt = Convert.ToInt64(new GetPermission().GetQuyen("ACCOUNT_MAN")) & Convert.ToInt64(Common.Common.GetTongQuyen()); bool result = true; if (kt != 0) { if (context.TaiKhoans.FirstOrDefault(x => x.Id == id && !x.DelFlag) != null) { TblTaiKhoan taiKhoan = context.TaiKhoans.FirstOrDefault(x => x.Id == id && !x.DelFlag); taiKhoan.DelFlag = true; context.SaveChanges(); } else { result = false; } } else { int id_nhomDich = Common.Common.GetAccount().IdNhom; if (context.TaiKhoans.FirstOrDefault(x => x.Id == id && x.Id_NhomDich == id_nhomDich && !x.DelFlag) != null) { TblTaiKhoan taiKhoan = context.TaiKhoans.FirstOrDefault(x => x.Id == id && x.Id_NhomDich == id_nhomDich && !x.DelFlag); taiKhoan.DelFlag = true; context.SaveChanges(); } else { result = false; } } transaction.Commit(); return(result); } catch (Exception e) { transaction.Rollback(); throw e; } }
/// <summary> /// Lấy thông tin 1 thanh vien /// Author : HoangNM - 07/05/2019 - create /// </summary> /// <returns>lấy ra nhóm dịch theo id. Exception nếu có lỗi</returns> public ThanhVien LoadThanhVien(int id) { try { ThanhVien ThanhVien = new ThanhVien(); TblTaiKhoan tblTaiKhoan = context.TaiKhoans.FirstOrDefault(x => x.Id == id && !x.DelFlag); if (tblTaiKhoan != null) { ThanhVien.Id_TaiKhoanThanhVien = tblTaiKhoan.Id; ThanhVien.Username = tblTaiKhoan.Username; ThanhVien.Id_Role = tblTaiKhoan.Id_PhanQuyen; } return(ThanhVien); } catch (Exception e) { throw e; } }
/// <summary> /// Kiểm tra email hoặc username đã tồn tại hay chưa. /// Author : HoangNM - 28/02/2019 - create /// </summary> /// <param name="value">giá trị của email hoặc username cần kiểm tra</param> /// <param name="type">type = 1: kiểm tra usernme; type = 2: kiểm tra email</param> /// <returns>Nếu có tồn tại trả về true, ngược lại trả về false</returns> public bool CheckExistAccount(string value) { try { TblTaiKhoan acount = context.TaiKhoans.FirstOrDefault(x => x.Email == value || x.Username == value && !x.DelFlag); if (acount != null) { return(true); } else { return(false); } } catch (Exception e) { throw e; } }
/// <summary> /// Lấy thông tin 1 tài khoản theo id /// Author : HoangNM - 18/03/2019 - create /// </summary> /// <returns>lấy ra tài khoản theo id. Exception nếu có lỗi</returns> public QL_TaiKhoan LoadTaiKhoan(int id) { try { QL_TaiKhoan taiKhoan = new QL_TaiKhoan(); var kt = Convert.ToInt64(new GetPermission().GetQuyen("ACCOUNT_MAN")) & Convert.ToInt64(Common.Common.GetTongQuyen()); if (kt != 0) { TblTaiKhoan tblTaiKhoan = context.TaiKhoans.FirstOrDefault(x => x.Id == id && !x.DelFlag); if (tblTaiKhoan != null) { taiKhoan.Id = tblTaiKhoan.Id; taiKhoan.Username = tblTaiKhoan.Username; taiKhoan.Email = tblTaiKhoan.Email; taiKhoan.IdTrangThai = tblTaiKhoan.Id_TrangThai; taiKhoan.IdNhom = tblTaiKhoan.Id_NhomDich; } } else { TblTaiKhoan tblTaiKhoan = context.TaiKhoans.FirstOrDefault(x => x.Id == id && x.Id_NhomDich == Common.Common.GetAccount().IdNhom&& !x.DelFlag); if (tblTaiKhoan != null) { taiKhoan.Id = tblTaiKhoan.Id; taiKhoan.Username = tblTaiKhoan.Username; taiKhoan.Email = tblTaiKhoan.Email; taiKhoan.IdTrangThai = tblTaiKhoan.Id_TrangThai; taiKhoan.IdNhom = tblTaiKhoan.Id_NhomDich; } } return(taiKhoan); } catch (Exception e) { throw e; } }
/// <summary> /// Tạo tài khoản cho người dùng dựa vào thông tin đã cung cấp. /// Author : HoangNM - 28/02/2019 - create /// </summary> /// <param name="newAccount">Thông tin tạo tài khoản của người dùng</param> /// <returns>Thông tin về việc tạo tài khoản thành công hay thất bại</returns> public ResponseInfo TaoAccount(NewAccount newAccount) { //DbContextTransaction transaction = context.Database.BeginTransaction(); try { ResponseInfo result = new ResponseInfo(); // Kiểm tra xem username đã tồn tại hay chưa TblTaiKhoan taiKhoan = context.TaiKhoans.FirstOrDefault(x => x.Username == newAccount.Username && !x.DelFlag); if (taiKhoan == null) { // Kiểm tra xem email đã tồn tại hay chưa taiKhoan = context.TaiKhoans.FirstOrDefault(x => x.Email == newAccount.Email && !x.DelFlag); if (taiKhoan == null) { // Tạo user mới TblThongTinNguoiDung user = new TblThongTinNguoiDung { Ten = newAccount.Ten, GioiTinh = newAccount.GioiTinh, NgaySinh = newAccount.NgaySinh, }; context.ThongTinNguoiDungs.Add(user); context.SaveChanges(); string salt = BaoMat.GetSalt(); //// Tạo tài khoản đăng nhập cho user taiKhoan = new TblTaiKhoan { Id_User = user.Id, Username = newAccount.Username, salt_Pass = salt, hash_Pass = BaoMat.GetMD5(BaoMat.GetSimpleMD5(newAccount.Password), salt), Email = newAccount.Email, Id_TrangThai = 1, Id_NhomDich = 1, Id_Face = "", Id_Google = "", Id_PhanQuyen = 5 }; context.TaiKhoans.Add(taiKhoan); // Lưu vào CSDL context.SaveChanges(); result.Code = 200; result.IsSuccess = true; result.IsValid = true; var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.TaoTaiKhoanThanhCong); result.TypeMsgError = errorMsg.Type; result.MsgError = errorMsg.Msg; } else { result.Code = 400; var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.EmailDaTonTai); result.TypeMsgError = errorMsg.Type; result.MsgError = errorMsg.Msg; } } else { result.Code = 400; var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.UserNameDaDung); result.TypeMsgError = errorMsg.Type; result.MsgError = errorMsg.Msg; } //transaction.Commit(); return(result); } catch (Exception e) { throw e; } }
/// <summary> /// Kiểm tra thông tin tài khoản người dùng nhập vào có đúng hay không /// Author : HoangNM - 28/02/2019 - create /// </summary> /// <param name="account">Đối tượng chưa thông tin tài khoản</param> /// <returns>Đối tượng ResponseInfo chứa thông tin của việc kiểm tra</returns> public ResponseInfo CheckAccount(TaiKhoan account) { try { ResponseInfo result = new ResponseInfo(); TblTaiKhoan taiKhoan = context.TaiKhoans.FirstOrDefault(x => x.Username == account.Username); if (taiKhoan == null) { var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.KhongCoTaiKhoan); result.Code = 400; result.TypeMsgError = errorMsg.Type; result.MsgError = errorMsg.Msg; } else if ((taiKhoan.hash_Pass) != BaoMat.GetMD5(BaoMat.GetSimpleMD5(account.Password), taiKhoan.salt_Pass)) { result.Code = 400; var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.MatKhauSai); result.TypeMsgError = errorMsg.Type; result.MsgError = errorMsg.Msg; } else { //Chứa thông tin chuỗi token string token = Common.Common.GetToken(taiKhoan.Id); TblToken tokenLG = new TblToken { Id_TaiKhoan = taiKhoan.Id, TokenTaiKhoan = token, ThoiGianHetHan = DateTime.Now.AddHours(24) }; context.Tokens.Add(tokenLG); context.SaveChanges(); result.IsSuccess = true; result.Data = new { Profile = new Profile() { Id_TrangThai = taiKhoan.Id_TrangThai, TenTrangThai = taiKhoan.TrangThaiTaiKhoan.TenTrangThai, Id_NhomDich = taiKhoan.Id_NhomDich, TenNhomDich = taiKhoan.NhomDich.TenNhomDich, Username = taiKhoan.Username, Email = taiKhoan.Email, Id_Face = taiKhoan.Id_Face, Id_Google = taiKhoan.Id_Google, GioiTinh = taiKhoan.ThongTinNguoiDung.GioiTinh, Ten = taiKhoan.ThongTinNguoiDung.Ten, NgaySinh = (DateTime)taiKhoan.ThongTinNguoiDung.NgaySinh, NgayHetHan = tokenLG.ThoiGianHetHan, Permissions = new QuyenProFile { TenvaiTro = taiKhoan.PhanQuyen.TenVaiTro, Id_VaiTro = taiKhoan.PhanQuyen.Id } }, Token = BaoMat.Base64Encode(token) }; result.ThongTinBoSung1 = BaoMat.Base64Encode(token); var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.DangNhapThanhCong); result.TypeMsgError = errorMsg.Type; result.MsgError = errorMsg.Msg; } return(result); } catch (Exception e) { throw e; } }
/// <summary> /// So khớp thông tin đăng nhập có thừ FB hoặc GG với thông tin tài khoản của hệ thống. /// Author : Hoang - 30/04/2019 - create /// </summary> /// <param name="socialAccount">Thông tin cá nhân lấy được từ FB </param> /// <returns>Đối tượng chứ token login của tài khoản trong hệ thống</returns> public TblToken CheckSocialAccount(SocialAccount socialAccount) { DbContextTransaction transaction = context.Database.BeginTransaction(); try { if (socialAccount.Id != "") { TblTaiKhoan account = context.TaiKhoans.FirstOrDefault(x => x.Email == socialAccount.Email && !x.DelFlag); if (account == null) { account = context.TaiKhoans.FirstOrDefault(x => ( x.Id_Face == socialAccount.Id) && !x.DelFlag); if (account != null && socialAccount.Email != "") { account.Email = socialAccount.Email; } } else { account.Id_Face = socialAccount.Id; } if (account == null) { TblUser user = new TblUser { Ten = socialAccount.FirstName + " " + socialAccount.LastName, GioiTinh = socialAccount.Gender, NgaySinh = socialAccount.Birthday, }; context.ThongTinNguoiDungs.Add(user); context.SaveChanges(); account = new TblTaiKhoan { Username = "", hash_Pass = "", salt_Pass = "", Email = socialAccount.Email, Id_Face = socialAccount.Id }; context.TaiKhoans.Add(account); } TblToken tokenLogin = new TblToken { TokenTaiKhoan = Common.Common.GetToken(account.Id), ThoiGianHetHan = DateTime.Now.AddHours(12) }; account.Tokens.Add(tokenLogin); context.SaveChanges(); transaction.Commit(); return(tokenLogin); } else { return(null); } } catch (Exception e) { transaction.Rollback(); throw e; } }
/// <summary> /// Cập nhật thông tin tài khoản /// Author : HoangNM - 18/03/2019 - create /// </summary> /// <param name="taiKhoan">thông tin về tài khoản muốn thay đổi</param> /// <returns>Trả về các thông tin khi cập nhật tài khoản, Excetion nếu có lỗi</returns> public ResponseInfo UpadateTaiKhoan(NewTaiKhoan taiKhoan, int id) { DbContextTransaction transaction = context.Database.BeginTransaction(); ResponseInfo response = new ResponseInfo(); try { TblTaiKhoan TK = context.TaiKhoans.FirstOrDefault(x => x.Username == taiKhoan.Username && x.Id != id && !x.DelFlag); if (TK == null) { TK = context.TaiKhoans.FirstOrDefault(x => x.Email == taiKhoan.Email && x.Id != id && !x.DelFlag); if (TK == null) { var kt = Convert.ToInt64(new GetPermission().GetQuyen("ACCOUNT_MAN")) & Convert.ToInt64(Common.Common.GetTongQuyen()); if (kt != 0) { TblTaiKhoan updateTaiKhoan = context.TaiKhoans.Where(x => x.Id == id && !x.DelFlag).FirstOrDefault(); updateTaiKhoan.Username = taiKhoan.Username; updateTaiKhoan.Email = taiKhoan.Email; updateTaiKhoan.Id_TrangThai = taiKhoan.IdTrangThai; updateTaiKhoan.Id_NhomDich = taiKhoan.IdNhom; updateTaiKhoan.Id_PhanQuyen = taiKhoan.IdQuyen; //updateTaiKhoan.ThongTinNguoiDung.Ten = taiKhoan.HoTen; //updateTaiKhoan.ThongTinNguoiDung.NgaySinh = taiKhoan.NgaySinh; //updateTaiKhoan.ThongTinNguoiDung.GioiTinh = taiKhoan.GioiTinh; //updateTaiKhoan.hash_Pass = BaoMat.GetMD5(BaoMat.GetSimpleMD5(taiKhoan.pass), updateTaiKhoan.salt_Pass); } else { int id_nhomDich = Common.Common.GetAccount().IdNhom; TblTaiKhoan updateTaiKhoan = context.TaiKhoans.Where(x => x.Id == id && x.Id_NhomDich == id_nhomDich && !x.DelFlag).FirstOrDefault(); updateTaiKhoan.Username = taiKhoan.Username; updateTaiKhoan.Email = taiKhoan.Email; updateTaiKhoan.Id_TrangThai = taiKhoan.IdTrangThai; updateTaiKhoan.Id_NhomDich = taiKhoan.IdNhom; updateTaiKhoan.Id_PhanQuyen = taiKhoan.IdQuyen; //updateTaiKhoan.ThongTinNguoiDung.Ten = taiKhoan.HoTen; //updateTaiKhoan.ThongTinNguoiDung.NgaySinh = taiKhoan.NgaySinh; //updateTaiKhoan.ThongTinNguoiDung.GioiTinh = taiKhoan.GioiTinh; //updateTaiKhoan.hash_Pass = BaoMat.GetMD5(BaoMat.GetSimpleMD5(taiKhoan.pass), updateTaiKhoan.salt_Pass); } context.SaveChanges(); response.IsSuccess = true; transaction.Commit(); var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.CapNhatDuLieuThanhCong); response.TypeMsgError = errorMsg.Type; response.MsgError = errorMsg.Msg; } else { var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.EmailDaTonTai); response.TypeMsgError = errorMsg.Type; response.MsgError = errorMsg.Msg; } } else { var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.UserNameDaDung); response.TypeMsgError = errorMsg.Type; response.MsgError = errorMsg.Msg; } return(response); } catch (Exception e) { response.IsSuccess = false; transaction.Rollback(); throw e; } }