public ActionResult Merit(MeritViewModel MVM)
        {
            checkLogin();

            // fields checking
            if (!ModelState.IsValid)
            {
                return(View("Merit", MVM));
            }

            //edit or create
            bool result = true;

            for (int m = 0; m < MVM.merits.Count; m++)
            {
                if (result)
                {
                    if (MVM.merits[m].ID < 1) //create
                    {
                        MERIT nm = MVM.merits[m];
                        nm.ADD_BY   = CP.userID;
                        nm.ADD_DATE = DateTime.Now;
                        nm.ACTIVE   = true;

                        result = false;
                        result = DBS.addRecord(nm);
                    }
                    else if (MVM.merits[m].ID > 0 && MVM.removeList.Exists(r => r == MVM.merits[m].ID)) //edit
                    {
                        result = false;
                        result = DBS.InactiveRecord("MERIT", MVM.merits[m].ID, CP.userID);
                    }
                    else
                    {
                        MVM.merits[m].MODIFY_BY   = CP.userID;
                        MVM.merits[m].MODIFY_DATE = DateTime.Now;

                        result = false;
                        result = DBS.updateRecord(MVM.merits[m]);
                    }
                }
            }

            ModelState.Clear();
            if (result)
            {
                TempData[Constant.msg_success] = Constant.ChangeSucceed;
            }
            else
            {
                TempData[Constant.msg_error] = Constant.ChangeFailed;
            }
            return(Merit());
        }
        public ActionResult Merit()
        {
            checkLogin();

            MeritViewModel MVM = new MeritViewModel()
            {
                merits = DBS.findActiveRecords <MERIT>()
            };

            return(View(MVM));
        }
        public ActionResult addMerit(MeritViewModel MVM)
        {
            checkLogin();

            MVM.newMerit.ID = GS.getNewID();

            MVM.merits.Add(MVM.newMerit);
            MVM.newMerit = new MERIT();

            ModelState.Clear();
            TempData["showForm"] = true;
            return(View("Merit", MVM));
        }
        public ActionResult removeMerit(MeritViewModel MVM, int id)
        {
            checkLogin();

            MVM.merits.Remove(MVM.merits.Where(m => m.ID == id).First());

            if (id > 0)
            {
                MVM.removeList.Add(id);
            }

            ModelState.Clear();
            TempData["showForm"] = true;
            return(View("Merit", MVM));
        }