public ActionResult Login(FormCollection collection)
 {
     var username = collection[Core.Constants.ID.USERNAME].ToString();
     var password = collection[Core.Constants.ID.PASSWORD].ToString();
     var isRemember = collection[Core.Constants.ID.REMEBER_LOGIN];
     var nd = new NguoiDung();
     nd.TenNguoiDung = username;
     nd.MatKhau = password;
     var result = nd.login();
     List<string> errors = new List<string>();
     switch (result)
     {
         case NguoiDung.LoginStatus.Success:
             Session.Add(Core.Constants.SESSION.USERNAME, NguoiDungManager.findByName(username));
             return RedirectToAction("Index", "Home", null);
         case NguoiDung.LoginStatus.Error:
             errors.Add("Đặng nhập không thành công!");
             break;
         case NguoiDung.LoginStatus.WrongPass:
             errors.Add("Mật khẩu không đúng");
             break;
         case NguoiDung.LoginStatus.NotExisted:
             errors.Add("Người dùng không tồn tại");
             break;
     }
     ViewBag.Errors = errors;
     return View();
 }
 public ActionResult Create(NguoiDung model, FormCollection collection)
 {
     try
     {
         // TODO: Add update logic here
         if (ModelState.IsValid)
         {
             var confirmPass = collection[Core.Constants.ID.CONFIRM_PASSWORD].ToString();
             if (!confirmPass.Equals(model.MatKhau))
             {
                 putErrorMessage("Mật khẩu không khớp, vui lòng nhập lại");
                 setAlertMessage();
                 return View(model);
             }
             var isAdmin = (collection[Core.Constants.ID.IS_ADMIN] != null);
             if (isAdmin)
             {
                 model.PhanQuyen = nameof(NguoiDungManager.Roles.admin);
             }
             else
             {
                 model.PhanQuyen = nameof(NguoiDungManager.Roles.daily);
             }
             var result = model.signUp();
             switch (result)
             {
                 case NguoiDung.SignUpStatus.Success:
                     putSuccessMessage("Đã tạo thành công");
                     return RedirectToAction("Details", "NguoiDung", new { id = model.MaSoNguoiDung });
                 case NguoiDung.SignUpStatus.UserIStExisted:
                     putErrorMessage("Tên đăng nhập đã tồn tại");
                     break;
                 case NguoiDung.SignUpStatus.EmailIsExisted:
                     putErrorMessage("Email đã tồn tại");
                     break;
                 case NguoiDung.SignUpStatus.Error:
                     putErrorMessage("Tạo không thành công");
                     break;
             }
         }
         else
         {
             putModelStateFailErrors(ModelState);
         }
         setAlertMessage();
         return View(model);
     }
     catch (Exception ex)
     {
         putErrorMessage(ex.Message);
         return RedirectToAction("Create");
     }
 }
 public static bool edit(NguoiDung nguoidung)
 {
     using (EntitiesDataContext db = new EntitiesDataContext())
     {
         var s = (from b in db.NGUOIDUNGs
                  where b.masonguoidung == nguoidung.MaSoNguoiDung
                  select b).SingleOrDefault();
         if (s == null) return false;
         s.matkhau = nguoidung.MatKhau;
         s.tendaydu = nguoidung.TenDayDu;
         s.email = nguoidung.Email;
         s.phanquyen = nguoidung.PhanQuyen;
         s.trangthai = nguoidung.TrangThai;
         db.SubmitChanges();
         return true;
     }
 }
 public static int add(NguoiDung nguoidung)
 {
     try
     {
         using (EntitiesDataContext db = new EntitiesDataContext())
         {
             var s = new NGUOIDUNG();
             s.tennguoidung = nguoidung.TenNguoiDung;
             s.matkhau = nguoidung.MatKhau;
             s.tendaydu = nguoidung.TenDayDu;
             s.email = nguoidung.Email;
             s.phanquyen = nguoidung.PhanQuyen;
             s.trangthai = nguoidung.TrangThai;
             db.NGUOIDUNGs.InsertOnSubmit(s);
             db.SubmitChanges();
             return s.masonguoidung;
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         return 0;
     }
 }
        public ActionResult UpdateUser(NguoiDung model, FormCollection collection)
        {
            var errors = new List<string>();
            if (ModelState.IsValid)
            {
                var currentUser = Session[Core.Constants.SESSION.USERNAME] as NguoiDung;
                var tempEmail = currentUser.Email;
                currentUser.TenDayDu = model.TenDayDu;
                currentUser.Email = model.Email;
                var result = currentUser.update();
                switch (result)
                {
                    case NguoiDung.UpdateStatus.Success:
                        Session[Core.Constants.SESSION.USERNAME] = currentUser;
                        TempData[Core.Constants.TEMPDATA.SUCCESS] = new List<string> { "Cập nhật thành công" };
                        break;
                    case NguoiDung.UpdateStatus.EmailIsExisted:
                        errors.Add("Email đã tồn tại");
                        currentUser.Email = tempEmail;
                        break;
                    case NguoiDung.UpdateStatus.Error:
                        errors.Add("Cập nhật không thành công");
                        break;
                }
                if(errors.Count > 0)
                {
                    TempData[Core.Constants.TEMPDATA.ERRORS] = errors;
                }
                return RedirectToAction("Index");

            }
            else
            {
                foreach (var value in ModelState.Values)
                {
                    if (value.Errors.Count > 0)
                    {
                        foreach(var error in value.Errors)
                        {
                            errors.Add(error.ErrorMessage);
                        }
                    }
                }
                TempData[Core.Constants.TEMPDATA.ERRORS] = errors;
                return RedirectToAction("Index");
            }
        }
        public ActionResult Register(NguoiDung model, FormCollection collection)
        {
            var errors = new List<string>();
            if (ModelState.IsValid)
            {
                var confirmPass = collection[Core.Constants.ID.CONFIRM_PASSWORD].ToString();
                model.PhanQuyen = "daily";
                if (!confirmPass.Equals(model.MatKhau))
                {
                    errors.Add("Mật khẩu không khớp, vui lòng nhập lại");
                    ViewBag.Errors = errors;
                    return View(model);
                }
                var result = model.signUp();
                switch (result)
                {
                    case NguoiDung.SignUpStatus.Success:
                        Session.Add(Core.Constants.SESSION.USERNAME, NguoiDungManager.find(model.MaSoNguoiDung));
                        return RedirectToAction("Index", "Home", null);
                    case NguoiDung.SignUpStatus.UserIStExisted:
                        errors.Add("Tên đăng nhập đã tồn tại");
                        break;
                    case NguoiDung.SignUpStatus.EmailIsExisted:
                        errors.Add("Email đã tồn tại");
                        break;
                    case NguoiDung.SignUpStatus.Error:
                        errors.Add("Đăng ký không thành công");
                        break;
                }
                ViewBag.Errors = errors;
                return View(model);

            }
            else
            {
                foreach(var value in ModelState.Values)
                {
                    if(value.Errors.Count > 0)
                    {
                        errors.Add(value.Errors.ToString());
                    }
                }
                ViewBag.Errors = errors;
                return View(model);
            }
        }
 public ActionResult Register()
 {
     if (isUserSessionExisted())
     {
         return RedirectToAction("Index", "Home", null);
     }
     else
     {
         var model = new NguoiDung();
         model.PhanQuyen = "dayly";
         if (TempData[Core.Constants.TEMPDATA.ERRORS] != null)
         {
             ViewBag.Errors = TempData[Core.Constants.TEMPDATA.ERRORS];
             TempData[Core.Constants.TEMPDATA.ERRORS] = null;
         }
         return View(model);
     }
 }
 // GET: Sach/Create
 public ActionResult Create()
 {
     var model = new NguoiDung();
     setAlertMessage();
     return View(model);
 }
 public ActionResult Edit(NguoiDung model, FormCollection collection)
 {
     try
     {
         // TODO: Add update logic here
         if (ModelState.IsValid)
         {
             var isAdmin = (collection[Core.Constants.ID.IS_ADMIN] != null) ;
             if (isAdmin)
             {
                 model.PhanQuyen = nameof(NguoiDungManager.Roles.admin);
             }
             else
             {
                 model.PhanQuyen = nameof(NguoiDungManager.Roles.daily);
             }
             var result = model.update();
             switch (result)
             {
                 case NguoiDung.UpdateStatus.Success:
                     putSuccessMessage("Cập nhật thành công");
                     return RedirectToAction("Details", new { id = model.MaSoNguoiDung });
                 case NguoiDung.UpdateStatus.EmailIsExisted:
                     putErrorMessage("Email đã tồn tại");
                     return RedirectToAction("Edit", new { id = model.MaSoNguoiDung });
                 case NguoiDung.UpdateStatus.Error:
                     putErrorMessage("Cập nhật không thành công");
                     return RedirectToAction("Edit", new { id = model.MaSoNguoiDung });
             }
         }
         else
         {
             putModelStateFailErrors(ModelState);
         }
         return RedirectToAction("Edit", new { id = model.MaSoNguoiDung });
     }
     catch (Exception ex)
     {
         putErrorMessage(ex.Message);
         return RedirectToAction("Edit", new { id = model.MaSoNguoiDung });
     }
 }