public ActionResult _StudentGroupAndSubjects(GroupSubjectViewModel GSVM) { checkLogin(); bool result = true; for (int i = 0; i < GSVM.GSs.Count; i++) { if (result) { if (GSVM.GSs[i].Contain && GSVM.GSs[i].MapID < 1) // constains a map ID means its an existing record { STUDENT_GROUP_SUBJECT_LIST newMap = new STUDENT_GROUP_SUBJECT_LIST(0, GSVM.GSs[i].GroupID, GSVM.GSs[i].SubjectID, CP.userID, DateTime.Now, 0, Constant.DEF_DATETIME, true); result = false; result = DBS.addRecord(newMap); } else if (!GSVM.GSs[i].Contain && GSVM.GSs[i].MapID > 0) //not contain but have existing id means need to remove { result = false; result = DBS.InactiveRecord("STUDENT_GROUP_SUBJECT_LIST", GSVM.GSs[i].MapID, CP.userID); } } } ModelState.Clear(); if (result) { TempData[Constant.msg_success] = Constant.ChangeSucceed; } else { TempData[Constant.msg_error] = Constant.ChangeFailed; } return(RedirectToAction("StudentGroupAndSubjects", "Student", new { term_id = GSVM.SelectedTerm, group_id = GSVM.GSs.FirstOrDefault().GroupID })); }
public ActionResult StudentGroupAndSubjects(int?term_id, int?group_id) { checkLogin(); GroupSubjectViewModel GSVM = new GroupSubjectViewModel(); GSVM.TermList = CP.termSelectList; GSVM.Teachers = CP.AllUser; TERM displayingTerm = term_id != null ? CP.termlist[(int)term_id] : CP.currentTerm; if (displayingTerm != CP.currentTerm) { GSVM.Groups = DBS.findActiveRecordsBySingleParm <STUDENT_GROUP>("TERM", displayingTerm.ID); GSVM.SelectedTerm = displayingTerm.ID; } else { GSVM.Groups = Session["currentStudentGroups"] != null? (List <STUDENT_GROUP>)Session["currentStudentGroups"]: DBS.findActiveCurrentRecords <STUDENT_GROUP>(); GSVM.SelectedTerm = CP.currentTerm.ID; } List <GroupAndSubject> GnSs = new List <GroupAndSubject>(); //subject with bool list List <SUBJECT> subject = DBS.findActiveRecordsBySingleParm <SUBJECT>("TERM", displayingTerm.ID); // get subject per term List <STUDENT_GROUP_SUBJECT_LIST> Map = group_id != null && group_id > 0? DBS.findActiveRecordsBySingleParm <STUDENT_GROUP_SUBJECT_LIST>("STUDENT_GROUP", (int)group_id) : new List <STUDENT_GROUP_SUBJECT_LIST>(); //get group subject map if (subject != null && subject.Any()) { for (int s = 0; s < subject.Count; s++) //check each subject if they mapped to chosen group { GroupAndSubject GS = new GroupAndSubject(); GS.SubjectID = subject[s].ID; GS.EBD_CODE = subject[s].EDB_CODE; GS.Subject_Name = subject[s].NAME; GS.GroupID = group_id != null? (int)group_id: 0; if (Map != null && Map.Any() && Map.Exists(m => (m.SUBJECT == subject[s].ID) && (m.STUDENT_GROUP == (int)group_id))) // check if any map record matches chosen group { GS.Contain = true; GS.MapID = Map.Where(m => (m.SUBJECT == subject[s].ID) && (m.STUDENT_GROUP == (int)group_id)).FirstOrDefault().ID; } GnSs.Add(GS); } } GSVM.GSs = GnSs; ModelState.Clear(); ViewData["SelectedTerm"] = GSVM.SelectedTerm; return(View(GSVM)); }