/// <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> /// 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; } }