public void TheoDoiTruyen(AddBookMark data) { ResponseInfo response = new ResponseInfo(); try { string token = HttpContext.Current.Request.Cookies["ToKen"].Value.Replace("%3d", "="); string Token = BaoMat.Base64Decode(token); TblToken TblToken = context.Tokens.FirstOrDefault(x => x.TokenTaiKhoan == Token); int ID_TaiKhoan = TblToken.Id_TaiKhoan; TblTheoDoiTruyen tblTheoDoiTruyen = context.TheoDoiTruyens.FirstOrDefault(x => x.Id_NguoiDoc == ID_TaiKhoan && x.Id_Truyen == data.id_Truyen); if (tblTheoDoiTruyen == null) { context.TheoDoiTruyens.Add(new TblTheoDoiTruyen { Id_NguoiDoc = ID_TaiKhoan, Id_Truyen = data.id_Truyen }); context.SaveChanges(); } } catch (Exception e) { throw e; } }
/// <summary> /// Lấy thông tin tài khoản đang đăng nhập /// Author : HoangNM - 29/03/2019 - create /// </summary> /// <param name="token"> /// token của account đăng nhập. /// </param> /// <returns> /// Thông tin tài khoản /// </returns> public GetAccount GetAccount(string token) { string Token = BaoMat.Base64Decode(token); TblToken TblToken = context.Tokens.FirstOrDefault(x => x.TokenTaiKhoan == Token); GetAccount getAccount = context.TaiKhoans.Where(x => x.Id == TblToken.Id_TaiKhoan && !x.DelFlag).Select(x => new GetAccount { Email = x.Email, GioiTinh = x.ThongTinNguoiDung.GioiTinh, Id_Face = x.Id_Face, Id_google = x.Id_Google, Id_TrangThai = x.Id_TrangThai, TenTrangThai = x.TrangThaiTaiKhoan.TenTrangThai, Id_NhomDich = x.Id_NhomDich, TenNhom = x.NhomDich.TenNhomDich, Username = x.Username, Ten = x.ThongTinNguoiDung.Ten, NgaySinh = x.ThongTinNguoiDung.NgaySinh, NgayHetHan = TblToken.ThoiGianHetHan, Token = token }).FirstOrDefault(); long TongQuyen = (long)context.TaiKhoans.Where(x => x.Id == TblToken.Id_TaiKhoan && !x.DelFlag).FirstOrDefault().PhanQuyen.TongQuyen; getAccount.Permissions = context.Quyens.Where(x => !x.DelFlag && ((long)x.BitQuyen & TongQuyen) != 0).Select(x => new AllPermission { TenQuyen = x.TenQuyen, Id_Quyen = x.Id }).ToList(); return(getAccount); }
/// <summary> /// Lấy tổng quyền của tài khoản /// Author : HoangNM - 17/04/2019 - create /// </summary> /// <param name="token"> /// token của tài khoản đang đăng nhập /// </param> /// <returns> /// Trả về tài khoản đang đăng nhập /// </returns> public static decimal GetTongQuyen() { string token = HttpContext.Current.Request.Cookies["ToKen"].Value.Replace("%3d", "="); DataContext context = new DataContext(); string Token = BaoMat.Base64Decode(token); TblToken TblToken = context.Tokens.FirstOrDefault(x => x.TokenTaiKhoan == Token); return(context.TaiKhoans.Where(x => x.Id == TblToken.Id_TaiKhoan && !x.DelFlag).FirstOrDefault().PhanQuyen.TongQuyen); }
/// <summary> /// Lấy thông tin của tài khoản đang đăng nhập /// Author : HoangNM - 1/04/2019 - create /// </summary> /// <param name="token"> /// token của tài khoản đang đăng nhập /// </param> /// <returns> /// Trả về tài khoản đang đăng nhập /// </returns> public static GetAccount GetAccount() { string token = HttpContext.Current.Request.Cookies["ToKen"].Value.Replace("%3d", "="); DataContext context = new DataContext(); string Token = BaoMat.Base64Decode(token); TblToken TblToken = context.Tokens.FirstOrDefault(x => x.TokenTaiKhoan == Token); return(context.TaiKhoans.Where(x => x.Id == TblToken.Id_TaiKhoan && !x.DelFlag).Select(x => new GetAccount { Id = x.Id, IdNhom = x.Id_NhomDich, IdQuyen = x.Id_PhanQuyen, TongQuyen = x.PhanQuyen.TongQuyen }).FirstOrDefault()); }
/// <summary> /// Update thông tin cá nhân /// Author : HoangNM - 29/03/2019 - create /// </summary> /// <param name="account"> /// thông tin mà người dùng muốn thay đổi /// </param> /// <returns> /// Thông báo /// </returns> public ResponseInfo UpdateAccount(UpdateAccount account) { DbContextTransaction transaction = context.Database.BeginTransaction(); ResponseInfo response = new ResponseInfo(); try { string token = HttpContext.Current.Request.Cookies["ToKen"].Value.Replace("%3d", "="); token = BaoMat.Base64Decode(token); TblToken TblToken = context.Tokens.FirstOrDefault(x => x.TokenTaiKhoan == token); if (account.New_Passord != "" && string.Compare(account.New_Passord, account.Confirm_Password) == 0) { string Hash_Pass = BaoMat.GetMD5(BaoMat.GetSimpleMD5(account.New_Passord), context.TaiKhoans.Where(x => x.Id == TblToken.TaiKhoan.Id && !x.DelFlag).FirstOrDefault().salt_Pass); //cập nhật mật khẩu context.TaiKhoans.Where(x => x.Id == TblToken.TaiKhoan.Id && !x.DelFlag).Update(y => new TblTaiKhoan { hash_Pass = Hash_Pass }); } context.ThongTinNguoiDungs.Where(x => x.Id == TblToken.TaiKhoan.ThongTinNguoiDung.Id && !x.DelFlag).Update(x => new TblUser { Ten = account.Ten, NgaySinh = account.NgaySinh, GioiTinh = account.GioiTinh }); context.SaveChanges(); response.IsSuccess = true; transaction.Commit(); var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.CapNhatThongTinThanhCong); response.TypeMsgError = errorMsg.Type; response.MsgError = errorMsg.Msg; } catch (Exception e) { response.IsSuccess = false; transaction.Rollback(); throw e; } return(response); }
/// <summary> /// Tìm kiếm các tài khoản theo phân trang và tìm kiếm /// Author : HoangNM - 18/03/2019 - create /// </summary> /// <param name="condition">Đối tượng chứa điều kiện tìm kiếm</param> /// <param name="type">loại quyền của tài khoản</param> /// <returns>Danh sách các tác giả đã tìm kiếm được. Exception nếu có lỗi</returns> public DanhSachTaiKhoan GetListTaiKhoan(int page) { try { // Nếu không tồn tại điều kiện tìm kiếm thì khởi tạo giá trị tìm kiếm ban đầu //if (condition == null) //{ // condition = new TaiKhoanConditionSearch(); //} DanhSachTaiKhoan listTaiKhoan = new DanhSachTaiKhoan(); var kt = Convert.ToInt64(new GetPermission().GetQuyen("ACCOUNT_MAN")) & Convert.ToInt64(Common.Common.GetTongQuyen()); if (kt == 0) { string Token = Common.Common.GetTokenTaiKhoan(); TblToken TblToken = context.Tokens.FirstOrDefault(x => x.TokenTaiKhoan == Token); int IdNhom = context.TaiKhoans.FirstOrDefault(x => x.Id == TblToken.Id_TaiKhoan).Id_NhomDich; } // Lấy các thông tin dùng để phân trang listTaiKhoan.Paging = new Paging(context.TaiKhoans.Count(x => !x.DelFlag), page); // Tìm kiếm và lấy dữ liệu theo trang listTaiKhoan.listTaiKhoan = context.TaiKhoans.Where(x => !x.DelFlag).OrderBy(x => x.Id) .Skip((listTaiKhoan.Paging.CurrentPage - 1) * listTaiKhoan.Paging.NumberOfRecord) .Take(listTaiKhoan.Paging.NumberOfRecord).Select(x => new QL_TaiKhoan { Id = x.Id, Username = x.Username, Email = x.Email, IdNhom = x.Id_NhomDich, IdTrangThai = x.Id_TrangThai, TenNhom = x.NhomDich.TenNhomDich, IdQuyen = x.Id_PhanQuyen, TenQuyen = x.PhanQuyen.TenVaiTro }).ToList(); listTaiKhoan.CurrentPage = page; return(listTaiKhoan); } 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; } }