Beispiel #1
0
        private void getLst()
        {
            List <Spellduty> listUser = new List <Spellduty>(Models.DataProvider.Ins.DB.Spellduties);

            List = new ObservableCollection <SpelldutyCustom>();
            for (int i = 0; i < listUser.Count(); i++)
            {
                SpelldutyCustom u = new SpelldutyCustom();
                u = SpelldutyCustom.MapSpellCus(listUser[i]);
                List.Add(u);
            }
            List = new ObservableCollection <SpelldutyCustom>(List.OrderByDescending(x => x.startTime.Value.Date));

            SelectedItem = null;
        }
Beispiel #2
0
        public SpellDuty_ViewModel()
        {
            Load_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                getLst();
                IsAdd      = false;
                IsDelete   = false;
                IsUserOpen = false;

                TimeStart = String.Empty;
                TimeEnd   = String.Empty;
                Date      = String.Empty;
                ListUser  = new ObservableCollection <User>(Models.DataProvider.Ins.DB.Users);
            });

            CloseAlert_Command = new RelayCommand <object>(x =>
            {
                return(true);
            }, x =>
            {
                IsActive = false;
            });

            CloseDlg_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                IsAdd      = false;
                IsDelete   = false;
                IsUserOpen = false;
            });

            #region add

            OpenformAdd_Command = new RelayCommand <object>(p =>
            {
                if (IsAdd == true || IsDelete == true || IsUserOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                SelectedItem = new SpelldutyCustom();
                IsAdd        = true;
            });

            Add_Command = new RelayCommand <object>(p =>
            {
                if (SelectedItem == null)
                {
                    return(false);
                }

                if (String.IsNullOrEmpty(SelectedItem.TimeSt) || String.IsNullOrEmpty(SelectedItem.TimeEn))
                {
                    return(false);
                }

                if (MyStaticMethods.ConvertTimeSpell(SelectedItem.TimeSt) >= MyStaticMethods.ConvertTimeSpell(SelectedItem.TimeEn))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                if (checkValid(MyStaticMethods.ConvertTimeSpell(SelectedItem.TimeSt), MyStaticMethods.ConvertTimeSpell(SelectedItem.TimeEn)))
                {
                    Spellduty sp = new Spellduty();
                    sp           = SpelldutyCustom.MapSpell(SelectedItem);

                    Models.DataProvider.Ins.DB.Spellduties.Add(sp);
                    Models.DataProvider.Ins.DB.SaveChanges();
                    IsAdd = false;
                    getLst();
                    successAlert();
                }
                else
                {
                    IsAdd    = false;
                    IsActive = true;
                    Message  = "Ca trực bị trùng lặp";
                }
            });

            #endregion

            #region delete

            OpenformDelete_Command = new RelayCommand <Button>(p =>
            {
                if (IsAdd == true || IsDelete == true || IsUserOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                SelectedItem    = new SpelldutyCustom();
                SelectedItem.id = List.Where(x => x.id == Convert.ToInt32(p.Uid)).SingleOrDefault().id;
                IsDelete        = true;
            });

            Delete_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                Spellduty item = Models.DataProvider.Ins.DB.Spellduties.Where(x => x.id == SelectedItem.id).SingleOrDefault();
                Models.DataProvider.Ins.DB.Spellduties.Remove(item);
                Models.DataProvider.Ins.DB.SaveChanges();

                IsDelete = false;
                getLst();

                successAlert();
            });

            #endregion

            #region search

            Search_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                getLst();
                List = new ObservableCollection <SpelldutyCustom>(List.Where(x => x.startTime.Value.Date == DateTime.Today));
                if (!String.IsNullOrEmpty(Date))
                {
                    getLst();
                    List = new ObservableCollection <SpelldutyCustom>(List.Where(x => x.startTime.Value.Date.ToShortDateString() == Date));
                }
                if (!String.IsNullOrEmpty(TimeStart))
                {
                    List = new ObservableCollection <SpelldutyCustom>(List.Where(x =>
                    {
                        if (!String.IsNullOrEmpty(Date))
                        {
                            DateTime dt    = Convert.ToDateTime(Date);
                            DateTime conDt = MyStaticMethods.ConvertTime(TimeStart, dt);
                            return(x.startTime.Value >= conDt);
                        }
                        return(x.startTime.Value >= MyStaticMethods.ConvertTime(TimeStart));
                    }));
                }
                if (!String.IsNullOrEmpty(TimeEnd))
                {
                    List = new ObservableCollection <SpelldutyCustom>(List.Where(x =>
                    {
                        if (!String.IsNullOrEmpty(Date))
                        {
                            DateTime dt    = Convert.ToDateTime(Date);
                            DateTime conDt = MyStaticMethods.ConvertTime(TimeEnd, dt);
                            return(x.endTime.Value <= conDt);
                        }
                        return(x.endTime.Value <= MyStaticMethods.ConvertTime(TimeEnd));
                    }));
                }
            });

            #endregion

            #region users

            OpenUser_Command = new RelayCommand <Button>(p =>
            {
                if (IsAdd == true || IsDelete == true || IsUserOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                int id          = Convert.ToInt32(p.Uid);
                SelectedItem    = new SpelldutyCustom();
                SelectedItem.id = id;
                SelectedUser    = null;
                ListSpellUser   = new ObservableCollection <Spellduty_User>(Models.DataProvider.Ins.DB.Spellduty_User.Where(x => x.spelldutyId == id));
                IsUserOpen      = true;
            });

            UpdateUser_Command = new RelayCommand <object>(p =>
            {
                if (SelectedUser == null)
                {
                    return(false);
                }

                var chk = new ObservableCollection <Spellduty_User>(ListSpellUser.Where(x => x.User == SelectedUser));
                if (chk.Count != 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Models.Spellduty sp = Models.DataProvider.Ins.DB.Spellduties.Where(x => x.id == SelectedItem.id).SingleOrDefault();
                if (sp.startTime.Value.Date < DateTime.Today.Date)
                {
                    IsUserOpen = false;
                    IsActive   = true;
                    Message    = "Không cập nhật các bản ghi quá hạn";
                    return;
                }

                Spellduty_User item = new Spellduty_User()
                {
                    spelldutyId = SelectedItem.id,
                    User        = SelectedUser
                };
                Models.DataProvider.Ins.DB.Spellduty_User.Add(item);
                Models.DataProvider.Ins.DB.SaveChanges();
                ListSpellUser.Add(item);
            });

            RemoveUser_Command = new RelayCommand <Button>(p =>
            {
                return(true);
            }, p =>
            {
                Models.Spellduty sp = Models.DataProvider.Ins.DB.Spellduties.Where(x => x.id == SelectedItem.id).SingleOrDefault();
                if (sp.startTime.Value.Date < DateTime.Today.Date)
                {
                    IsUserOpen = false;
                    IsActive   = true;
                    Message    = "Không cập nhật các bản ghi quá hạn";
                    return;
                }

                int userId          = Convert.ToInt32(p.Uid);
                int spellId         = SelectedItem.id;
                Spellduty_User item = Models.DataProvider.Ins.DB.Spellduty_User.Where(x => x.Spellduty.id == spellId && x.User.users_id == userId).SingleOrDefault();
                Models.DataProvider.Ins.DB.Spellduty_User.Remove(item);
                Models.DataProvider.Ins.DB.SaveChanges();
                ListSpellUser.Remove(item);
            });

            #endregion

            #region sort

            SortbyDate_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <SpelldutyCustom> chkList = new ObservableCollection <SpelldutyCustom>(List.OrderByDescending(x => x.startTime.Value.Date));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <SpelldutyCustom>(List.OrderBy(x => x.startTime.Value.Date));
                }
                else
                {
                    List = chkList;
                }
            });

            SortbyTimeSt_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <SpelldutyCustom> chkList = new ObservableCollection <SpelldutyCustom>(List.OrderByDescending(x => x.startTime.Value.TimeOfDay));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <SpelldutyCustom>(List.OrderBy(x => x.startTime.Value.TimeOfDay));
                }
                else
                {
                    List = chkList;
                }
            });

            SortbyTimeEn_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <SpelldutyCustom> chkList = new ObservableCollection <SpelldutyCustom>(List.OrderByDescending(x => x.endTime.Value.TimeOfDay));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <SpelldutyCustom>(List.OrderBy(x => x.endTime.Value.TimeOfDay));
                }
                else
                {
                    List = chkList;
                }
            });

            #endregion
        }