Esempio n. 1
0
        public ActionResult AddToCourse(int? id)
        {
            if (id == null)
            {
                ViewBag.Error = "Inget Id har hittats";
                return View("~/Views/Error/Index.cshtml");
            }
            Course course = db.Courses.FirstOrDefault(c => c.Id == id);
            if (course == null)
            {
                ViewBag.Error = "Ingen kurs har hittats med detta id";
                return View("~/Views/Error/Index.cshtml");
            }
            List<User> Users = db.Users.Where(s => s.CoursesId == null).ToList(); // studenter som ej hör till någon kurs än
            Users = Users.Where(s => s.IsStudent()).ToList();
            if (Users.Count() <= 0)
            {
                ViewBag.Error = "Inga studenter finns tillgängliga, till att läggas till i denna kurs";
                return View("~/Views/Error/Index.cshtml");
            }
            ViewBag.Users = Users;
            AddToCourseViewModel model = new AddToCourseViewModel();
            model.CourseId = (int)id;
            model.Students = new List<string>();

            Menu(Home: true, Back: new MenyItem { Link = "~/Teacher/Course/" + id, Text = "Tillbaka till " + course.Name });
            SetBreadcrumbs(
                one: new MenyItem { Link = "~/Teacher/", Text = "Se alla kurser" }, two: new MenyItem { Link = "~/Teacher/Course/" + id, Text = course.Name });

            return View(model);
        }
Esempio n. 2
0
        public ActionResult AddToCourse(int? id, AddToCourseViewModel model)
        {
            Course course = db.Courses.FirstOrDefault(c => c.Id == id);
            Menu(Home: true, Back: new MenyItem { Link = "~/Teacher/Course/"+ id, Text = "Tillbaka" + (course != null ? " till "+ course.Name : "") });
            SetBreadcrumbs(
                one: new MenyItem { Link = "~/Teacher/", Text = "Se alla kurser" }, two: new MenyItem { Link = "~/Teacher/Course/"+ id, Text = (course != null ? course.Name : "Tillbaka") });

            bool hasError = false;
            if (!ModelState.IsValid)
            {
                hasError = true;
            }
            if (id == null)
            {
                ModelState.AddModelError("", "Inget Id har angets");
                id = 0;
                hasError = true;
            }
            if (id != model.CourseId)
            {
                ModelState.AddModelError("CourseId", "Kursens id överanstämmer ej med sig själv");
                hasError = true;
            }

            if (course == null)
            {
                ModelState.AddModelError("CourseId", "Ingen kurs har hittats med detta id");
                hasError = true;
            }
            List<User> Users = db.Users.Where(s => s.CoursesId == null).ToList(); // studenter som ej hör till någon kurs än
            Users = Users.Where(s => s.IsStudent()).ToList();
            if (Users.Count() <= 0)
            {
                ModelState.AddModelError("Students", "Inga studenter finns tillgängliga, till att läggas till i denna kurs");
                hasError = true;
            }
            ViewBag.Users = Users;

            model.Students = (model.Students != null ? model.Students : new List<string>());
            if (hasError)
            {
                return View(model);
            }
            foreach (string _id in model.Students)
            {
                User user = db.Users.FirstOrDefault(u => u.Id == _id);
                if (user == null)
                {
                    ModelState.AddModelError("", "Student kunde ej hittas");
                    hasError = true;
                    break;
                }

                course.Users.Add(user);
                user.CoursesId = course.Id;
                db.Entry(user).State = EntityState.Modified;
            }
            if (hasError)
            {
                return View(model);
            }
            db.Entry(course).State = EntityState.Modified;
            db.SaveChanges();

            return Redirect("~/Teacher/Course/"+ course.Id);
        }