List <StudentCourseRegistration> GetStudentCourseRegistrations()
        {
            List <StudentCourseRegistration> registrationList = new List <StudentCourseRegistration>();

            List <Course> courses = Controller <StudentRegistrationEntities, Course>
                                    .GetEntitiesWithIncluded("Students", "Department").ToList();

            Debug.WriteLine("GetStudentCourseRegistration courses " + courses.Count);

            foreach (Course course in courses)
            {
                foreach (Student student in course.Students)
                {
                    StudentCourseRegistration registration = new StudentCourseRegistration()
                    {
                        StudentID       = student.StudentId,
                        StudentLastName = student.StudentLastName,
                        CourseNumber    = course.CourseNumber,
                        DepartmentCode  = course.Department.DepartmentCode,
                        CourseName      = course.CourseName,
                        student         = student,
                        course          = course
                    };

                    registrationList.Add(registration);
                }
            }

            return(registrationList.OrderBy(r => r.DepartmentCode).OrderBy(r => r.CourseNumber).ToList());
        }
        /// <summary>
        /// Remove selected Row
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ButtonDrop_Click(object sender, EventArgs e)
        {
            /* foreach (DataGridViewRow row in dataGridViewRegistration.SelectedRows)
             * {
             *   dataGridViewRegistration.Rows.RemoveAt(row.Index);
             * }*/

            StudentRegistrationEntities context = new StudentRegistrationEntities();

            context.Students.Load();
            context.Courses.Load();
            context.Database.Log = (s => Debug.Write(s));
            context.SaveChanges();

            // get the students and courses, and include nav properties
            var students = context.Students.Include("Courses").ToList();
            var courses  = context.Courses.Include("Students").ToList();

            foreach (DataGridViewRow row in dataGridViewRegistration.SelectedRows)
            {
                StudentCourseRegistration registration = row.DataBoundItem as StudentCourseRegistration;

                // find the student in the db
                Student student = students.Find(s => s.StudentId == registration.StudentID);

                // find the course in teh db
                Course course = courses.Find(c => c.CourseNumber == registration.CourseNumber && c.DepartmentId == registration.course.DepartmentId);

                student.Courses.Remove(course);
            }

            context.SaveChanges();
            context.Dispose();
            UpdateRegistration();
        }
Beispiel #3
0
        /// <summary>
        /// Displays the submission status.
        /// </summary>
        /// <param name="id">Assignment Identifier</param>
        /// <returns>The submission page view.</returns>
        public ActionResult Submit(int id)
        {
            User user;

            try
            {
                user = getCurrentUser();
            }
            catch (Exception e)
            {
                return(RedirectToAction("Login", "Account"));
            }

            if (user.UserRoleID != 2)
            {
                return(RedirectToAction("AccessDenied", "Home"));
            }

            MultiViewModel            MVM = new MultiViewModel();
            Course_Assignments        ca  = GetCourseAssignments().Where(c => c.Course_AssignmentsID == id).First();
            StudentCourseRegistration str = GetSCR().Where(s => s.CourseInstanceID == ca.CourseInstanceID && s.STUDENTID == user.UserId).First();

            MVM.assignment  = GetAssignmentById(ca.AssignmentID);
            MVM.Questions   = GetQuestionsByAssignmentId(MVM.assignment.AssignmentID);
            MVM.Submissions = GetSubmissions().Where(s => s.StudentCourseRegistrationID == str.StudentCourseRegistrationID);

            return(View(MVM));
        }
Beispiel #4
0
        public void DeleteStudent(int id)
        {
            using (var model = new graderEntities())
            {
                StudentCourseRegistration scr = model.StudentCourseRegistrations.Where(s => s.StudentCourseRegistrationID == id).First();

                if (scr == null)
                {
                    throw new HttpResponseException(HttpStatusCode.NotFound);
                }

                foreach (var sub in model.SUBMISSIONs.Where(sb => sb.StudentCourseRegistrationID == scr.StudentCourseRegistrationID))
                {
                    model.SUBMISSIONs.Remove(sub);
                }

                model.StudentCourseRegistrations.Remove(scr);
                model.SaveChanges();
            }
        }
        public ActionResult StudentCourseRegister(FormCollection formCollection)
        {
            try
            {
                StudentCourseRegistration studentCourseRegistration = new StudentCourseRegistration();
                studentCourseRegistration.CourseCode   = formCollection["CourseCode"];
                studentCourseRegistration.RollNumber   = Convert.ToInt32(formCollection["RollNumber"]);
                studentCourseRegistration.DegreeTitle  = formCollection["DegreeTitle"];
                studentCourseRegistration.Session      = formCollection["Session"];
                studentCourseRegistration.RegisterType = formCollection["RegisterType"];

                StudentCourseRegistrationDbLayer studentCourseregistrationDbLayer = new StudentCourseRegistrationDbLayer();
                studentCourseregistrationDbLayer.RegisterCourse(studentCourseRegistration.CourseCode, studentCourseRegistration.RollNumber, studentCourseRegistration.DegreeTitle, studentCourseRegistration.Session, studentCourseRegistration.RegisterType);
                ViewBag.SuccessMessage = "Student Registered with Course Successfully!!";
                return(View());
            }
            catch
            {
                ViewBag.ErrorMessage = "Failed..!!<br/> Course Code or Student Data is Incorrect..!!";
                return(View());
            }
        }
        public ActionResult Register(User user)
        {
            string email = user.Email;
            bool   check = false;

            foreach (User u in new graderEntities().Users)
            {
                if (email.ToLower().Equals(u.Email.ToLower()))
                {
                    check = true;
                    break;
                }
            }

            if (check == false)
            {
                using (var db = new graderEntities())
                {
                    user.UserRoleID = 2;
                    int max = db.Users.Select(u => u.UserId).DefaultIfEmpty().Max() + 1;
                    user.UserId = max;
                    try { db.Users.Add(user); }
                    catch (System.Data.SqlClient.SqlException e)
                    {
                        Response.Write("<script>alert('Email already exists!')</script>");
                        return(RedirectToAction("Register", "Account"));
                    }

                    foreach (Course c in db.Courses.Where(c => c.Deadline >= DateTime.Now))
                    {
                        foreach (CourseInstance ci in db.CourseInstances.Where(i => i.CourseID == c.CourseID))
                        {
                            DirectoryInfo dir = new DirectoryInfo(@"D:\home\site\wwwroot\Files\SCR\" + ci.CourseInstanceID);
                            if (dir.Exists)
                            {
                                StreamReader  read   = new StreamReader(dir.GetFiles().First().FullName);
                                List <string> left   = new List <string>();
                                var           mail   = read.ReadLine();
                                bool          change = false;
                                while (mail != null)
                                {
                                    if (mail.ToLower().Equals(user.Email.ToLower()))
                                    {
                                        change = true;
                                        StudentCourseRegistration scr = new StudentCourseRegistration
                                        {
                                            CourseInstanceID = ci.CourseInstanceID,
                                            STUDENTID        = user.UserId
                                        };
                                        db.StudentCourseRegistrations.Add(scr);
                                        foreach (var casgm in db.Course_Assignments.Where(ca => ca.CourseInstanceID == scr.CourseInstanceID))
                                        {
                                            foreach (var q in db.Questions.Where(q => q.AssignmentID == casgm.AssignmentID))
                                            {
                                                SUBMISSION sub = new SUBMISSION();
                                                sub.StudentCourseRegistrationID = scr.StudentCourseRegistrationID;
                                                sub.GRADE         = 0;
                                                sub.QuestionID    = q.QuestionID;
                                                sub.TRIES         = 0;
                                                sub.FILE          = null;
                                                sub.SubmittedDate = null;
                                                sub.Result        = null;
                                                db.SUBMISSIONs.Add(sub);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        left.Add(mail);
                                    }
                                    mail = read.ReadLine();
                                }
                                read.Close();
                                if (change)
                                {
                                    StreamWriter write = new StreamWriter(dir.GetFiles().First().FullName);
                                    foreach (var name in left)
                                    {
                                        write.WriteLine(name);
                                    }
                                    ;
                                    write.Close();
                                }
                            }
                        }
                    }
                    db.SaveChanges();
                }
            }
            else
            {
                ViewBag.message = "<p style='color: #d9230f'>Email already exists.</p>";
                return(View(user));
            }
            return(RedirectToAction("LogIn", "Account"));
        }