/// <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;
            }
        }
Beispiel #2
0
 /// <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;
     }
 }
Beispiel #3
0
 /// <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;
            }
        }
Beispiel #5
0
        /// <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;
            }
        }
Beispiel #6
0
        /// <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;
            }
        }
Beispiel #7
0
        /// <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;
            }
        }