public JsonResult CheckId(string username, string password, string role)
        {
            EntityAdmin user = new EntityAdmin();
            user.Username = "******";
            try
            {
                dbFirstStepDataContext db = new dbFirstStepDataContext();

                Security ser = new Security();
                string passHex = ser.GetHashPassword(password);

                var admin = db.EntityAdmins.Where(t => t.Username == username && t.Pass == passHex).First();

                if (admin != null)
                {
                    Response.Cookies["Admin"].Value = admin.Username;
                    Response.Cookies["Admin"].Expires = DateTime.Now.AddDays(1);
                    user.Username = "******";
                    return Json(user);
                }
                else
                {
                    return Json(user);
                }

            }
            catch
            {
                return Json(user);
            }
        }
        public string checkusername(string username, string role)
        {
            EntityAdmin user = new EntityAdmin();
            try
            {
                dbFirstStepDataContext db = new dbFirstStepDataContext();

                Security ser = new Security();
                var adminquery = db.EntityAdmins.FirstOrDefault(o => o.Username == username);

                return "true";

            }
            catch
            {
                return "false";
            }
        }
 public string delete_account(string pass)
 {
     int idlogin = 0;
     if (Request.Cookies["ftid"] != null)
         idlogin = Convert.ToInt16(Request.Cookies["ftid"].Value);
     EntityUser user = db.EntityUsers.Where(g => g.Id == idlogin).FirstOrDefault();
     Security ser = new Security();
     string Passhex = ser.GetHashPassword(pass);
     if (user.Pass == Passhex && pass.Length > 5)
     {
         user.TrangThai = 3; //tài khoản bị hủy
         db.SubmitChanges();
         return "Xóa tài khoản thành công";
     }
     else
     {
         return "Xin vui lòng kiểm tra lại mật khẩu";
     }
 }
 public string disconnect_facebook(string pass)
 {
     int idlogin = 0;
     if (Request.Cookies["ftid"] != null)
         idlogin = Convert.ToInt16(Request.Cookies["ftid"].Value);
     EntityUser user = db.EntityUsers.Where(g => g.Id == idlogin).FirstOrDefault();
     Security ser = new Security();
     string Passhex = ser.GetHashPassword(pass);
     if (user.Pass == Passhex && pass.Length > 5)
     {
         user.IdFacebook = null;
         db.SubmitChanges();
         return "Hủy kết nối với facebook thành công";
     }
     else
     {
         return "Mật khẩu không đúng xin vui lòng nhập lại";
     }
 }
        public static void DangKy(AccountModel dangky)
        {
            dbFirstStepDataContext db = new dbFirstStepDataContext();
            Security ser = new Security();
            string passHex = ser.GetHashPassword(dangky.Pass);
            string mailHex = ser.GetHashPassword(dangky.Email);
            EntityUser ban = new EntityUser();
            ban.TrangThai = 0;
            ban.HasCode = mailHex;
            ban.HoTen = dangky.HoTen;
            ban.Email = dangky.Email;
            ban.Pass = passHex;
            string[] mang = HttpContext.Current.Request.Url.AbsoluteUri.ToString().Split('/');
            string url = mang[0] + "//" + mang[2];
            ban.Avatar = url+"/Content/Images/Avatar/ava0.jpg";
            ban.VanityURL = mailHex;//

            db.EntityUsers.InsertOnSubmit(ban);
            db.SubmitChanges();
        }
        public JsonResult changeAccount(string username, string password)
        {
            try
            {

                dbFirstStepDataContext db = new dbFirstStepDataContext();

                var adminquery = (from p in db.EntityAdmins
                                  where p.Username == Request.Cookies["Admin"].Value
                                  select p).Single();
                Security ser = new Security();
                string hex = ser.GetHashPassword(password);
                adminquery.Pass = hex;
                db.SubmitChanges();
                return Json(adminquery);
            }
            catch
            {
                EntityAdmin admin = new EntityAdmin();
                admin.Pass = "******"; // error
                return Json(admin);
            }
        }
        public string _Team_ThemThanhVien_DuAn(int IdDuAn,string Email)
        {
            try
            {
                EntityUser user = db.EntityUsers.Where(g => g.Email == Email).FirstOrDefault();
                if (user == null)
                {
                    return "error";
                }
                if (db.EntityNhomChienDiches.Any(g => g.IdUser == user.Id) == true)
                    return "error";

                EntityNhomChienDich nhom = new EntityNhomChienDich();
                Security ser = new Security();
                string HasCode = ser.GetHashPassword(user.Email);
                nhom.IdDuAn = IdDuAn; nhom.IdUser = user.Id;
                nhom.TrangThai = false;
                nhom.IdUser = user.Id;
                user.HasCode = HasCode;
                db.SubmitChanges();
                db.EntityNhomChienDiches.InsertOnSubmit(nhom); db.SubmitChanges();
                GuiMailXacNhan_ThemThanhVien(user,nhom.EntityUser,nhom.EntityDuAn, HasCode);

                return nhom.Id.ToString();
            }
            catch { return "error"; }
        }
        public JsonResult CheckId(string username, string password, string remember)
        {
            EntityUser user = new EntityUser();
            user.Email = " ";
            user.TrangThai = 0;
            try
            {
                dbFirstStepDataContext db = new dbFirstStepDataContext();

                Security ser = new Security();
                string passHex = ser.GetHashPassword(password);

                var admin = db.EntityUsers.Where(t => t.Email == username);
                if (admin.Count() == 0)
                {
                    user.Email = "Khong ton tai";
                    return Json(user);
                }
                else if (admin.First().Pass != passHex)
                {
                    user.Email = "Khong dung pass";
                    return Json(user);
                }
                else if (admin.First().TrangThai != 1)
                {
                    user.Email = "Chua kich hoat";
                    return Json(user);
                }
                else if (admin.First().TrangThai == 1)
                {
                    createnew_LoginHistory("Đã đăng nhập ", admin.First().Id);
                    Response.Cookies["ftid"].Value = admin.First().Id.ToString();
                    Response.Cookies["ftusername"].Value = admin.First().Email;
                    Response.Cookies["fthoten"].Value = HttpUtility.UrlEncode(admin.First().HoTen); //admin.HoTen;
                    Response.Cookies["ftavatar"].Value = admin.First().Avatar;
                    Response.Cookies["ftidFacebook"].Value = admin.First().IdFacebook;
                    if (remember == "false")
                    {
                        Response.Cookies["ftid"].Expires = DateTime.Now.AddDays(1);
                        Response.Cookies["ftavatar"].Expires = DateTime.Now.AddDays(1);
                        Response.Cookies["ftusername"].Expires = DateTime.Now.AddDays(1);
                        Response.Cookies["fthoten"].Expires = DateTime.Now.AddDays(1);
                        Response.Cookies["ftidFacebook"].Expires = DateTime.Now.AddDays(1);
                    }
                    else
                    {
                        Response.Cookies["ftid"].Expires = DateTime.Now.AddDays(30);
                        Response.Cookies["ftavatar"].Expires = DateTime.Now.AddDays(30);
                        Response.Cookies["ftusername"].Expires = DateTime.Now.AddDays(30);
                        Response.Cookies["fthoten"].Expires = DateTime.Now.AddDays(30);
                        Response.Cookies["ftidFacebook"].Expires = DateTime.Now.AddDays(1);
                    }

                    user.Email = "ok";
                    Session["fsduytrihoatdong"] = "1";
                    return Json(user);
                }
                else
                {
                    return Json(user);
                }

            }
            catch
            {
                return Json(user);
            }
        }
        public ActionResult QuenMatKhau(AccountModel Mtnew)
        {
            try
             {
                 if (ModelState.IsValid)
                 {
                     dbFirstStepDataContext db = new dbFirstStepDataContext();
                     var query = from p in db.EntityUsers
                                 where p.Email == Mtnew.Email
                                 select p;
                     if (query.Count() == 0)
                     {
                         return RedirectToAction("DaGuiEmailQuenMK", "Account");
                     }
                     else
                     {
                         //string Pass = GenerateRandomText();
                         string Pass = GeneratePassword(4, 1, 3);
                         Security ser = new Security();
                         string Passhex = ser.GetHashPassword(Pass);
                         query.First().Pass = Passhex;
                         db.SubmitChanges();
                         string HoTen = query.First().HoTen;
                         string Email = Mtnew.Email;
                         string HasCode = Pass;
                         MailHelper.SendMail_Laylaimatkhau(HoTen, Email, HasCode);
                         return RedirectToAction("DaGuiEmailQuenMK", "Account");
                     }
                 }
             }
             catch
             {

                 return RedirectToAction("Index", "Error", new { errorMsg = "Lỗi SQL hosting / server" });
             }
             return View(Mtnew);
        }
        public ActionResult FacebookCallback(string code)
        {
            var fb = new FacebookClient();
            dynamic result = fb.Post("oauth/access_token", new

            {

                client_id = "570964363013096",

                client_secret = "d6edfe3df4e121a296e8e542a8932154",

                redirect_uri = RedirectUri.AbsoluteUri,

                code = code

            });
            var accessToken = result.access_token;

            //Luu access token ma fb tra ve vao session
            Session["AccessToken"] = accessToken;

            fb.AccessToken = accessToken;

            var urlreturn = result.AbsoluteUri;

            //var friendListData = fb.Get("/me/friends?fields=first_name,id");
            //JObject friendListJson = JObject.Parse(friendListData.ToString());

            ////List<FbUser> fbUsers = new List<FbUser>();
            //foreach (var friend in friendListJson["data"].Children())
            //{
            //    string kkk = friend["id"].ToString().Replace("\"", "");

            //}
            dynamic info = fb.Get("me?fields=first_name,last_name,id,email,picture");
            string email = info.email;
            string HoTen = info.first_name + " " + info.last_name;
            string IdFacebook = info.id;
            //{"data":{"url":"https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash2/1119295_100000887034532_1079608060_q.jpg","is_silhouette":false}}
            //"{\"data\":{\"is_silhouette\":false,\"url\":\"https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xaf1/t1.0-1/c34.34.422.422/s50x50/425336_196174787203821_1477323958_n.jpg\"}}"
            string picture = info.picture.ToString();
            string[] arr1 = picture.Split('"');
            foreach (var item in arr1)
            {
                if (item.ToString().IndexOf("http") != -1)
                {
                    picture = item.ToString();
                    break;
                }
            }
             //   string[] arr2 = arr1[3].Split('"');
               // picture = "https:" + arr2[0];
            if (email != null)
            {
                FormsAuthentication.SetAuthCookie(email, false);
                // luu vao CSDL 111
                dbFirstStepDataContext db = new dbFirstStepDataContext();
                Security ser = new Security();
                EntityUser user = new EntityUser();
                var query = from p in db.EntityUsers
                            where p.Email == email
                            select p;
                if (query.Count() > 0)
                {
                    if (query.First().TrangThai == 0)
                    {

                    }
                    if (query.First().TrangThai == 1)
                    {
                       // query.First().HoTen = HoTen;
                       // user.Email = email;
                       // query.First().Avatar = picture;
                        // user.HasCode = ser.GetHashPassword(email);
                        // user.Loai = 1;
                        //user.TrangThai = 1;
                        // user.Date = DateTime.Now;
                        query.First().IdFacebook = IdFacebook;
                        db.SubmitChanges();
                        DangNhapFB(email);
                       // return RedirectToAction("Index", "Home");
                        if (ViewBag.UrlReferrer != null)
                        {
                            string url = ViewBag.UrlReferrer;
                            if(url.IndexOf("Dang-Nhap") != -1)
                                return RedirectToAction("Index", "Home");
                            else return Redirect(url);
                        }
                        else
                        {
                            if (Request.UrlReferrer != null && Request.UrlReferrer.ToString().Contains("facebook") == false)
                            {
                                if (Request.UrlReferrer.ToString().IndexOf("Dang-Nhap") != -1)
                                    return RedirectToAction("Index", "Home");
                                else return Redirect(Request.UrlReferrer.ToString());
                                //else return Redirect(result.AbsoluteUri);
                            }
                            else
                            {
                                return RedirectToAction("Index", "Home");
                            }
                        }
                    }
                    else
                    {
                        return RedirectToAction("BanFacebook", "LoginAccount");
                    }
                }
                else
                {
                    user.HoTen = HoTen;
                    user.Email = email;
                    user.Avatar = picture;
                    user.IdFacebook = IdFacebook;
                    user.TrangThai = 1;

                    string HasCode = ser.GetHashPassword(user.Email);
                    user.VanityURL = HasCode;

                    db.EntityUsers.InsertOnSubmit(user);
                    user.Date = DateTime.Now;
                    db.SubmitChanges();
                    DangNhapFB(email);
                    if (ViewBag.UrlReferrer != null)
                    {
                        return Redirect(ViewBag.UrlReferrer);
                    }
                    else
                        return RedirectToAction("Index", "Home");

                }
            }
            else
            {
                ViewBag.Message = "Không thể lấy được email từ facebook của bạn";
                return Content("<script language='javascript' type='text/javascript'>alert('Không thể lấy được email từ facebook của bạn.'); window.location = '/Tai-Khoan/Dang-Nhap';</script>");
            }
        }
        public ActionResult DoiMatKhau(AccountModel Mtnew)
        {
            try
            {
                dbFirstStepDataContext db = new dbFirstStepDataContext();

                var query = from p in db.EntityUsers
                                where p.Email == Mtnew.Email
                                select p;

                if (query.Count() == 0)
                {
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    ViewBag.history = getAccount(query.First());
                    ViewBag.User = query.First();
                    if (ModelState.IsValid)
                    {
                        Security ser = new Security();
                        string Passhex = ser.GetHashPassword(Mtnew.Pass);
                        query.First().Pass = Passhex;
                        db.SubmitChanges();
                        createnew_LoginHistory("Đã đổi mật khẩu", query.First().Id);
                        //Logout();
                        //return RedirectToAction("Login", "Account");
                    }
                }

                //if (ModelState.IsValid)
                //{
                //    var query = from p in db.EntityUsers
                //                where p.Email == Mtnew.Email
                //                select p;
                //    if (query.Count() == 0)
                //    {
                //        return RedirectToAction("Index", "Home");
                //    }
                //    else
                //    {
                //        Security ser = new Security();
                //        string Passhex = ser.GetHashPassword(Mtnew.Pass);
                //        query.First().Pass = Passhex;
                //        db.SubmitChanges();
                //        createnew_LoginHistory("Đã đổi mật khẩu", query.First().Id);
                //        Logout();
                //        return RedirectToAction("Login", "Account");
                //    }
                //}
            }
            catch
            {

                return RedirectToAction("Index", "Error", new { errorMsg = "Lỗi SQL hosting / server" });
            }
            return View(Mtnew);
        }
        public ActionResult DangKy(AccountModel Mtnew)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    dbFirstStepDataContext db = new dbFirstStepDataContext();
                    var query = from p in db.EntityUsers
                                where p.Email == Mtnew.Email
                                select p;
                    if (query.Count() > 0)
                    {
                        return RedirectToAction("TrungEmail", "Account");
                    }
                    else
                    {
                        #region "Add new user"
                        Security ser = new Security();
                        string passHex = ser.GetHashPassword(Mtnew.Pass);
                        string mailHex = ser.GetHashPassword(Mtnew.Email);
                        EntityUser ban = new EntityUser();
                        ban.TrangThai = 0;
                        ban.HasCode = mailHex;
                        ban.HoTen = Mtnew.HoTen;
                        ban.Email = Mtnew.Email;
                        ban.Pass = passHex;
                        string[] mang = Request.Url.AbsoluteUri.ToString().Split('/');
                        string url = mang[0] + "//" + mang[2];
                        ban.Avatar = url + "/Content/Images/Avatar/ava0.jpg";
                        ban.VanityURL = mailHex;//
                        #endregion

                        string HoTen = Mtnew.HoTen;
                        string Email = Mtnew.Email;
                        //GuiMailDangKy(HoTen,Email,HasCode);
                        MailHelper.SendMail_DangKy(HoTen, Email, url + "/account/kichhoat?HasCode=" + ban.HasCode);
                        db.EntityUsers.InsertOnSubmit(ban);
                        db.SubmitChanges();
                        return RedirectToAction("DangKyThanhCong", "Account");
                    }
                }
            }
            catch
            {
            }
            return View(Mtnew);
        }
 public string CheckPassLife(string password)
 {
     using (dbFirstStepDataContext db1 = new dbFirstStepDataContext())
     {
         int idlogin = Convert.ToInt16(Request.Cookies["ftid"].Value);
         EntityUser user = db1.EntityUsers.Where(g => g.Id == idlogin).FirstOrDefault();
         if (user == null)
         {
             return "f";
         }
         else
         {
             Security ser = new Security();
             string passHex = ser.GetHashPassword(password);
             if (user.Pass == null || user.Pass == "")
             {
                 user.Pass = passHex;
                 db.SubmitChanges();
                 Session["fsduytrihoatdong"] = "1";
                 return "t";
             }
             if (user.Pass == passHex)
             {
                 Session["fsduytrihoatdong"] = "1";
                 return "t";
             }
             else
                 return "f";
         }
     }
 }