//Lấy lại mật khẩu public ResponseInfo ChangePassword(ChangePass data) { ResponseInfo result = new ResponseInfo(); try { string Token = BaoMat.Base64Decode(data.tokenReset); TblTokenResset resetPassWord = context.ResetPassWords.FirstOrDefault(x => x.TokenReset == Token && !x.DelFlag); if (resetPassWord == null) { result.Code = 400; var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.ThayDoiMatKhauThatBai); result.TypeMsgError = errorMsg.Type; result.MsgError = errorMsg.Msg; } else if (resetPassWord.ThoiGianHetHan < DateTime.Now) { result.Code = 400; var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.TokenResetHetHan); result.TypeMsgError = errorMsg.Type; result.MsgError = errorMsg.Msg; } else { string Hash_Pass = BaoMat.GetMD5(BaoMat.GetSimpleMD5(data.NewPass), context.TaiKhoans.Where(x => x.Id == resetPassWord.Id_TaiKhoan && !x.DelFlag).FirstOrDefault().salt_Pass); //cập nhật mật khẩu context.TaiKhoans.Where(x => x.Id == resetPassWord.Id_TaiKhoan && !x.DelFlag).Update(y => new TblTaiKhoan { hash_Pass = Hash_Pass }); context.ResetPassWords.Where(x => x.TokenReset == Token).Delete(); context.ResetPassWords.Where(x => x.ThoiGianHetHan < DateTime.Now).Delete(); context.SaveChanges(); var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.ThayDoiMatKhauThanhCong); result.TypeMsgError = errorMsg.Type; result.MsgError = errorMsg.Msg; return(result); } return(result); } catch (Exception e) { throw e; } }
/// <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ạ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; } }