コード例 #1
0
ファイル: User_ViewModel.cs プロジェクト: minhhoangg2809/QLBX
        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
        }