public ResponseInfo TaoAccount(NewAccount newAccount) { DbContextTransaction transaction = context.Database.BeginTransaction(); try { ResponseInfo result = new ResponseInfo(); TblUser user = new TblUser { Ho = newAccount.Ho, Ten = newAccount.Ten, Avatar = "http://2.bp.blogspot.com/-Fl8NZJZFq6w/U02LSHQ7iII/AAAAAAAAAHg/zpzikQfynpM/s1600/WAPHAYVL.MOBI-CONDAU+(11).gif", GioiTinh = newAccount.GioiTinh, NgaySinh = newAccount.NgaySinh, SoDienThoai = "0167229145", CMND = "192095142", DiaChi = "Hue" }; TblAccount account = new TblAccount { Username = newAccount.Username, Password = Common.GetMD5(newAccount.Password), Email = newAccount.Email, TokenActive = Common.GetToken(0), IsActived = false, SoLanDangNhapSai = 0, KhoaTaiKhoanDen = DateTime.Now }; account.GroupOfAccount.Add(new TblGroupOfAccount { IdGroup = 3 }); user.Account.Add(account); context.User.Add(user); context.SaveChanges(); transaction.Commit(); SendEmailRegister(account); return(result); } catch (Exception e) { transaction.Rollback(); 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 : QuyPN - 30/05/2018 - create /// </summary> /// <param name="socialAccount">Thông tin cá nhân lấy được từ FB hoặc GG</param> /// <param name="type">type = 1: thông tin từ FB; type = 2: thông tin từ GG</param> /// <returns>Đối tượng chứ token login của tài khoản trong hệ thống</returns> public TblTokenLogin CheckSocialAccount(SocialAccount socialAccount, int type = (int)OtherEnum.TaiKhoanFB) { DbContextTransaction transaction = context.Database.BeginTransaction(); try { if (socialAccount.Id != "") { TblAccount account = context.Account.FirstOrDefault(x => x.Email == socialAccount.Email && !x.DelFlag); if (account == null) { account = context.Account.FirstOrDefault(x => ( (type == (int)OtherEnum.TaiKhoanFB && x.IdFacebook == socialAccount.Id) || (type != (int)OtherEnum.TaiKhoanFB && x.IdGoogle == socialAccount.Id)) && !x.DelFlag); if (account != null && socialAccount.Email != "") { account.Email = socialAccount.Email; } } else { if (type == (int)OtherEnum.TaiKhoanFB) { account.IdFacebook = socialAccount.Id; } else { account.IdGoogle = socialAccount.Id; } } if (account == null) { TblUser user = new TblUser { Ho = socialAccount.FirstName, Ten = socialAccount.LastName, Avatar = "http://2.bp.blogspot.com/-Fl8NZJZFq6w/U02LSHQ7iII/AAAAAAAAAHg/zpzikQfynpM/s1600/WAPHAYVL.MOBI-CONDAU+(11).gif", GioiTinh = socialAccount.Gender, NgaySinh = socialAccount.Birthday, SoDienThoai = socialAccount.PhoneNumber, CMND = "", DiaChi = "" }; account = new TblAccount { Username = "", Password = "", Email = socialAccount.Email, TokenActive = "", IsActived = true, IsActiveEmail = true, SoLanDangNhapSai = 0, KhoaTaiKhoanDen = DateTime.Now }; if (type == (int)OtherEnum.TaiKhoanFB) { account.IdFacebook = socialAccount.Id; } else { account.IdGoogle = socialAccount.Id; } account.GroupOfAccount.Add(new TblGroupOfAccount { IdGroup = (int)GroupAccount.User }); user.Account.Add(account); context.User.Add(user); } account.SoLanDangNhapSai = 0; account.IsActived = true; TblCauHinh cauHinh = context.CauHinh.FirstOrDefault(x => x.Id == (int)OtherEnum.IdCauHinh); TblTokenLogin tokenLogin = new TblTokenLogin { Token = Common.GetToken(account.Id), ThoiGianTonTai = DateTime.Now.AddHours(cauHinh.ThoiGianTonTaiToken) }; account.TokenLogin.Add(tokenLogin); context.SaveChanges(); transaction.Commit(); return(tokenLogin); } else { return(null); } } catch (Exception e) { transaction.Rollback(); throw e; } }
/// <summary> /// Tạo tài khoản cho người dùng dựa vào thông tin đã cung cấp, sau đó gửi mail kích hoạt tài khoản. /// Author : QuyPN - 20/05/2018 - 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(); TblCauHinh cauHinh = Common.LayCauHinh(); // Kiểm tra xem username đã tồn tại hay chưa TblAccount account = context.Account.FirstOrDefault(x => x.Username == newAccount.Username && !x.DelFlag); if (account == null) { // Kiểm tra xem email đã tồn tại hay chưa account = context.Account.FirstOrDefault(x => x.Email == newAccount.Email && !x.DelFlag); if (account == null) { // Tạo user mới TblUser user = new TblUser { Ho = newAccount.Ho, Ten = newAccount.Ten, Avatar = Common.defaultAvata, GioiTinh = newAccount.GioiTinh, NgaySinh = newAccount.NgaySinh, SoDienThoai = "", CMND = "", DiaChi = "" }; // Tạo tài khoản đăng nhập cho user account = new TblAccount { Username = newAccount.Username, Password = BaoMat.GetMD5(newAccount.Password), Email = newAccount.Email, TokenActive = Common.GetToken(newAccount.Username), IsActived = false, IsActiveEmail = false, TimeOfToken = DateTime.Now.AddHours(cauHinh.ThoiGianTonTaiToken), SoLanDangNhapSai = 0, KhoaTaiKhoanDen = DateTime.Now }; // Cho tài khoản thuộc vào 1 group account.GroupOfAccount.Add(new TblGroupOfAccount { IdGroup = (int)GroupAccount.User }); user.Account.Add(account); context.User.Add(user); // Lưu vào CSDL context.SaveChanges(); // Tiến hành gửi mail SendEmail(account); result.ThongTinBoSung1 = BaoMat.Base64Encode(account.TokenActive); } else { result.Code = 202; result.MsgNo = 37; } } else { result.Code = 202; result.MsgNo = 36; } transaction.Commit(); return(result); } catch (Exception e) { transaction.Rollback(); throw e; } }