public ActionResult NewSubjectsForTeacher(string ClassID1, string teachers) { int?classId = Convert.ToInt32(ClassID1); List <AspNetTeacherSubject> AllTeacherSubjectOfCurrentClass = db.AspNetTeacherSubjects.Where(x => x.AspNetSubject.ClassID == classId).ToList(); int?teacherId = Convert.ToInt32(teachers); var SubjectsToRemoveOfCurrentTeacher = AllTeacherSubjectOfCurrentClass.Where(x => x.TeacherID == teacherId); db.AspNetTeacherSubjects.RemoveRange(SubjectsToRemoveOfCurrentTeacher); db.SaveChanges(); var TeacherGenericSubjectsToRemove = db.Teacher_GenericSubjects.Where(x => x.TeacherId == teacherId).ToList();; db.Teacher_GenericSubjects.RemoveRange(TeacherGenericSubjectsToRemove); db.SaveChanges(); List <string> selectedsubjects = new List <string>(); if (Request.Form["MandatorySubjects"] != null) { selectedsubjects.AddRange(Request.Form["MandatorySubjects"].Split(',').ToList()); } if (Request.Form["OptionalSubjects"] != null) { selectedsubjects.AddRange(Request.Form["OptionalSubjects"].Split(',').ToList()); } List <string> listofIDs = selectedsubjects.ToList(); List <int> myIntegersSubjectsList = listofIDs.Select(s => int.Parse(s)).ToList(); if (selectedsubjects != null) { foreach (var item in selectedsubjects) { AspNetTeacherSubject teacherSubject = new AspNetTeacherSubject(); teacherSubject.TeacherID = teacherId; teacherSubject.SubjectID = Convert.ToInt32(item); db.AspNetTeacherSubjects.Add(teacherSubject); db.SaveChanges(); } } SEA_DatabaseEntities db1 = new SEA_DatabaseEntities(); if (selectedsubjects != null) { var AllSubjectsOfTeacher = from subject in db.AspNetSubjects where myIntegersSubjectsList.Contains(subject.Id) select subject; foreach (var sub in AllSubjectsOfTeacher) { foreach (var sub1 in db.GenericSubjects.ToList()) { if (sub.SubjectName == sub1.SubjectName && sub.CourseType == sub1.SubjectType) { Teacher_GenericSubjects genericSubject = new Teacher_GenericSubjects(); genericSubject.SubjectId = sub1.Id; genericSubject.TeacherId = teacherId; db1.Teacher_GenericSubjects.Add(genericSubject); db1.SaveChanges(); } } } } int?SessionId = db.AspNetClasses.Where(x => x.Id == classId).FirstOrDefault().SessionID; var EmployeeExist = db.Aspnet_Employee_Session.Where(x => x.Emp_Id == teacherId && x.Session_Id == SessionId).FirstOrDefault(); if (EmployeeExist == null) { Aspnet_Employee_Session ES = new Aspnet_Employee_Session(); ES.Emp_Id = teacherId; ES.Session_Id = SessionId; db.Aspnet_Employee_Session.Add(ES); db.SaveChanges(); } var UserId = db.AspNetEmployees.Where(x => x.Id == teacherId).FirstOrDefault().UserId; var EmployeeExist1 = db.AspNetUsers_Session.Where(x => x.UserID == UserId && x.SessionID == SessionId).FirstOrDefault(); if (EmployeeExist1 == null) { AspNetUsers_Session US = new AspNetUsers_Session(); US.UserID = UserId; US.SessionID = SessionId; db.AspNetUsers_Session.Add(US); db.SaveChanges(); } return(RedirectToAction("ClassIndex")); }
public ActionResult Create([Bind(Include = "Id,SessionName,SessionStartDate,SessionEndDate,Status,Total_Fee")] AspNetSession aspNetSession) { var TransactionObj = db.Database.BeginTransaction(); if (ModelState.IsValid) { aspNetSession.SessionEndDate = Convert.ToDateTime(Request.Form["SessionEndDate"]); aspNetSession.SessionStartDate = Convert.ToDateTime(Request.Form["SessionStartDate"]); aspNetSession.Total_Fee = aspNetSession.Total_Fee; db.AspNetSessions.Add(aspNetSession); db.SaveChanges(); } TransactionObj.Commit(); ////////////////////////////////////////////////////////Term Add///////////////////////////////////////////////////////////////// //int length = 3; //for (int i = 0; i < length; i++) //{ // AspNetTerm aspnetTerm = new AspNetTerm(); // aspnetTerm.SessionID = aspNetSession.Id; // aspnetTerm.TermName = "Term " + (i + 1); // aspnetTerm.TermStartDate = DateTime.Now; // aspnetTerm.TermEndDate = DateTime.Now; // aspnetTerm.Status = "InActive"; // db.AspNetTerms.Add(aspnetTerm); // db.SaveChanges(); //} ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var UserNameLog = User.Identity.Name; AspNetUser a = db.AspNetUsers.First(x => x.UserName == UserNameLog); string UserIDLog = a.Id; var logMessage = "New Session Added, SessionName: " + aspNetSession.SessionName + ", SessionStartDate: " + aspNetSession.SessionStartDate + ", SessionEndDate: " + aspNetSession.SessionEndDate + ", Status: " + aspNetSession.Status; var LogControllerObj = new AspNetLogsController(); LogControllerObj.CreateLogSave(logMessage, UserIDLog); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// AspNetClass Class = new AspNetClass(); var CurrentSession = db.AspNetSessions.OrderByDescending(x => x.Id).FirstOrDefault(); Class.ClassName = CurrentSession.SessionName; Class.Class = CurrentSession.SessionName; Class.SessionID = CurrentSession.Id; db.AspNetClasses.Add(Class); db.SaveChanges(); //Create Subjects to New Session var AllSubjectsofTestSession = db.AspNetSubjects.Where(x => x.ClassID == 1).ToList(); List <subjects_mapping> list = new List <subjects_mapping>(); foreach (AspNetSubject Subject in AllSubjectsofTestSession) { subjects_mapping sub = new subjects_mapping(); sub.oldId = Subject.Id; sub.name = Subject.SubjectName; AspNetSubject NewSubjectForSession = new AspNetSubject(); NewSubjectForSession = Subject; NewSubjectForSession.ClassID = Class.Id; NewSubjectForSession.TeacherID = null; db.AspNetSubjects.Add(NewSubjectForSession); db.SaveChanges(); sub.newId = NewSubjectForSession.Id; list.Add(sub); } var AllTeacherSubjects = db.AspNetTeacherSubjects.Where(x => x.AspNetSubject.ClassID == 1).ToList(); foreach (var item in AllTeacherSubjects) { foreach (var item1 in list) { if (item1.oldId == item.SubjectID) { AspNetTeacherSubject TS = new AspNetTeacherSubject(); TS.SubjectID = item1.newId; TS.TeacherID = item.TeacherID; db.AspNetTeacherSubjects.Add(TS); break; } } } db.SaveChanges(); var UserIDs = (from teacher in db.AspNetUsers.Where(x => x.Status != "False") join t2 in db.AspNetUsers_Session on teacher.Id equals t2.UserID join t3 in db.AspNetEmployees on teacher.Id equals t3.UserId where teacher.AspNetRoles.Select(y => y.Name).Contains("Teacher") && t2.AspNetSession.AspNetClasses.Any(x => x.Id == 1) /*&& db.AspNetChapters.Any(x=>x.Id==id)*/ select new { TeacherId = teacher.Id, EmployeeId = t3.Id, }).ToList(); foreach (var Id in UserIDs) { string IdString = Id.TeacherId.ToString(); AspNetUsers_Session UserSession = new AspNetUsers_Session(); UserSession.SessionID = aspNetSession.Id; UserSession.UserID = IdString; db.AspNetUsers_Session.Add(UserSession); db.SaveChanges(); } foreach (var Id in UserIDs) { Aspnet_Employee_Session EmployeeSession = new Aspnet_Employee_Session(); EmployeeSession.Emp_Id = Id.EmployeeId; EmployeeSession.Session_Id = aspNetSession.Id; db.Aspnet_Employee_Session.Add(EmployeeSession); db.SaveChanges(); } return(RedirectToAction("Indexs")); }