public User_ViewModel() { Load_Command = new RelayCommand <object>(p => { return(true); }, p => { getLst(); UserName = String.Empty; Account = String.Empty; Phone = String.Empty; SelectedItem = null; IsActive = false; IsAdd = false; IsUpdate = false; IsDelete = false; ListRole = new ObservableCollection <string>(); ListRole.Add("Quản trị"); ListRole.Add("Nhân viên"); SelectedRole = String.Empty; }); CloseAlert_Command = new RelayCommand <object>(x => { return(true); }, x => { IsActive = false; }); CloseDlg_Command = new RelayCommand <object>(p => { return(true); }, p => { IsAdd = false; IsUpdate = false; IsDelete = false; }); Search_Command = new RelayCommand <object>(p => { return(true); }, p => { getLst(); if (!String.IsNullOrEmpty(UserName)) { List = new ObservableCollection <UserCustom>(List.Where(x => x.name.ToUpper().Contains(UserName.ToUpper()))); } if (!String.IsNullOrEmpty(Account)) { List = new ObservableCollection <UserCustom>(List.Where(x => x.acc.ToUpper().Contains(Account.ToUpper()))); } if (!String.IsNullOrEmpty(Phone)) { List = new ObservableCollection <UserCustom>(List.Where(x => x.phone.ToUpper().Contains(Phone.ToUpper()))); } }); PassChanged_Command = new RelayCommand <PasswordBox>(p => { if (String.IsNullOrEmpty(p.Password)) { return(false); } return(true); }, p => { SelectedItem.pass = MyStaticMethods.MD5Hash(p.Password); }); #region sort SortbyName_Command = new RelayCommand <object>(p => { return(true); }, p => { ObservableCollection <UserCustom> chkList = new ObservableCollection <UserCustom>(List.OrderByDescending(x => x.name)); if (List[0] == chkList[0]) { List = new ObservableCollection <UserCustom>(List.OrderBy(x => x.name)); } else { List = chkList; } }); SortbyBorn_Command = new RelayCommand <object>(p => { return(true); }, p => { ObservableCollection <UserCustom> chkList = new ObservableCollection <UserCustom>(List.OrderByDescending(x => x.born)); if (List[0] == chkList[0]) { List = new ObservableCollection <UserCustom>(List.OrderBy(x => x.born)); } else { List = chkList; } }); SortbyAddress_Command = new RelayCommand <object>(p => { return(true); }, p => { ObservableCollection <UserCustom> chkList = new ObservableCollection <UserCustom>(List.OrderByDescending(x => x.user_address)); if (List[0] == chkList[0]) { List = new ObservableCollection <UserCustom>(List.OrderBy(x => x.user_address)); } else { List = chkList; } }); SortbyPhone_Command = new RelayCommand <object>(p => { return(true); }, p => { ObservableCollection <UserCustom> chkList = new ObservableCollection <UserCustom>(List.OrderByDescending(x => x.phone)); if (List[0] == chkList[0]) { List = new ObservableCollection <UserCustom>(List.OrderBy(x => x.phone)); } else { List = chkList; } }); SortbyAcc_Command = new RelayCommand <object>(p => { return(true); }, p => { ObservableCollection <UserCustom> chkList = new ObservableCollection <UserCustom>(List.OrderByDescending(x => x.acc)); if (List[0] == chkList[0]) { List = new ObservableCollection <UserCustom>(List.OrderBy(x => x.acc)); } else { List = chkList; } }); SortbyRole_Command = new RelayCommand <object>(p => { return(true); }, p => { ObservableCollection <UserCustom> chkList = new ObservableCollection <UserCustom>(List.OrderByDescending(x => x.user_role)); if (List[0] == chkList[0]) { List = new ObservableCollection <UserCustom>(List.OrderBy(x => x.user_role)); } else { List = chkList; } }); #endregion #region add OpenformAdd_Command = new RelayCommand <object>(p => { if (IsUpdate == true || IsAdd == true || IsDelete == true) { return(false); } return(true); }, p => { SelectedItem = new UserCustom(); SelectedRole = "Nhân viên"; IsAdd = true; }); Add_Command = new RelayCommand <object>(p => { if (SelectedItem == null) { return(false); } if (String.IsNullOrEmpty(SelectedItem.name)) { return(false); } if (String.IsNullOrEmpty(SelectedItem.user_address)) { return(false); } if (String.IsNullOrEmpty(SelectedItem.phone)) { return(false); } if (String.IsNullOrEmpty(SelectedItem.Born)) { return(false); } if (String.IsNullOrEmpty(SelectedItem.acc)) { return(false); } if (String.IsNullOrEmpty(SelectedRole)) { return(false); } if (String.IsNullOrEmpty(SelectedItem.pass)) { return(false); } return(true); }, p => { var countAcc = List.Where(x => x.acc == SelectedItem.acc).Count(); if (countAcc == 0) { User user = new User(); user = UserCustom.MapUser(SelectedItem); user.user_role = SelectedRole == "Quản trị" ? 1 : 0; Models.DataProvider.Ins.DB.Users.Add(user); Models.DataProvider.Ins.DB.SaveChanges(); IsAdd = false; getLst(); successAlert(); } else { IsAdd = false; getLst(); IsActive = true; Message = "Tên đăng nhập bị trùng"; } }); #endregion #region update OpenformUpdate_Command = new RelayCommand <Button>(p => { if (IsUpdate == true || IsAdd == true || IsDelete == true) { return(false); } return(true); }, p => { SelectedItem = new UserCustom(); SelectedItem = List.Where(x => x.users_id == Convert.ToInt32(p.Uid)).SingleOrDefault(); SelectedRole = SelectedItem.user_role == 1 ? "Quản trị" : "Nhân viên"; IsUpdate = true; }); Update_Command = new RelayCommand <object>(p => { if (SelectedItem == null) { return(false); } if (String.IsNullOrEmpty(SelectedItem.name)) { return(false); } if (String.IsNullOrEmpty(SelectedItem.user_address)) { return(false); } if (String.IsNullOrEmpty(SelectedItem.phone)) { return(false); } if (String.IsNullOrEmpty(SelectedItem.Born)) { return(false); } if (String.IsNullOrEmpty(SelectedItem.Role)) { return(false); } return(true); }, p => { User user = Models.DataProvider.Ins.DB.Users.Where(x => x.users_id == SelectedItem.users_id).SingleOrDefault(); user.name = SelectedItem.name; user.user_address = SelectedItem.user_address; user.born = Convert.ToDateTime(SelectedItem.Born); user.phone = SelectedItem.phone; user.user_role = SelectedRole == "Quản trị" ? 1 : 0; Models.DataProvider.Ins.DB.SaveChanges(); IsUpdate = false; getLst(); successAlert(); }); #endregion #region delete OpenformDelete_Command = new RelayCommand <Button>(p => { if (IsUpdate == true || IsAdd == true || IsDelete == true) { return(false); } return(true); }, p => { SelectedItem = new UserCustom(); SelectedItem = List.Where(x => x.users_id == Convert.ToInt32(p.Uid)).SingleOrDefault(); IsDelete = true; }); Delete_Command = new RelayCommand <object>(p => { return(true); }, p => { User user = Models.DataProvider.Ins.DB.Users.Where(x => x.users_id == SelectedItem.users_id).SingleOrDefault(); Models.DataProvider.Ins.DB.Users.Remove(user); Models.DataProvider.Ins.DB.SaveChanges(); IsDelete = false; getLst(); successAlert(); }); #endregion }