public ActionResult Create()
        {
            var identity = (ClaimsIdentity)User.Identity;
            var idString = identity.Claims.Where(c => c.Type == ClaimTypes.NameIdentifier)
                           .Select(c => c.Value).SingleOrDefault();
            Guid id;

            if (Guid.TryParse(idString, out id))
            {
                using (JournalContext db = new JournalContext())
                {
                    User user      = db.Users.Find(id);
                    var  pupilRole = Guid.Parse(Roles.Pupil);
                    StudySubjectViewModel studySubject = new StudySubjectViewModel();
                    studySubject.Users = db.Users.Where(c => c.UserRollID == pupilRole && c.SchoolID == user.SchoolID).Select(c => new SelectListItem()
                    {
                        Value = c.ID.ToString(), Text = c.FirstName + " " + c.LastName
                    }).ToList();
                    studySubject.Subjects = db.Subjects.Where(c => c.Teacher.SchoolID == user.SchoolID).Select(c => new SelectListItem()
                    {
                        Value = c.ID.ToString(), Text = c.SubjectType.Name
                    }).ToList();

                    return(View(studySubject));
                }
            }
            return(RedirectToAction("Login"));
        }
        public ActionResult Edit(StudySubjectViewModel model)
        {
            var identity = (ClaimsIdentity)User.Identity;
            var idString = identity.Claims.Where(c => c.Type == ClaimTypes.NameIdentifier)
                           .Select(c => c.Value).SingleOrDefault();
            Guid UserId;

            if (Guid.TryParse(idString, out UserId))
            {
                using (JournalContext db = new JournalContext())
                {
                    User user      = db.Users.Find(UserId);
                    var  pupilRole = Guid.Parse(Roles.Pupil);
                    model.Users = db.Users.Where(c => c.UserRollID == pupilRole && c.SchoolID == user.SchoolID).Select(c => new SelectListItem()
                    {
                        Value = c.ID.ToString(), Text = c.FirstName + " " + c.LastName
                    }).ToList();
                    model.Subjects = db.Subjects.Where(c => c.Teacher.SchoolID == user.SchoolID).Select(c => new SelectListItem()
                    {
                        Value = c.ID.ToString(), Text = c.SubjectType.Name
                    }).ToList();
                    if (ModelState.IsValid)
                    {
                        StudySubject studySubject = db.StudySubject.Find(model.ID);
                        studySubject.UserID    = Guid.Parse(model.SelectedUser);
                        studySubject.SubjectID = Guid.Parse(model.SelectedSubject);
                        db.SaveChanges();
                        return(RedirectToAction("Index"));
                    }
                    return(View(model));
                }
            }
            return(RedirectToAction("Login"));
        }
 public ActionResult Delete(StudySubjectViewModel model)
 {
     using (JournalContext db = new JournalContext())
     {
         StudySubject studySubject = db.StudySubject.Find(model.ID);
         db.StudySubject.Remove(studySubject);
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
 }
 // GET: StudySubject/Details/5
 public ActionResult Details(Guid id)
 {
     using (JournalContext db = new JournalContext())
     {
         StudySubject          studySubject = db.StudySubject.Find(id);
         StudySubjectViewModel model        = new StudySubjectViewModel();
         model.UserID          = studySubject.UserID;
         model.SelectedUser    = db.Users.Where(c => c.ID == model.UserID).Select(c => c.FirstName + " " + c.LastName).FirstOrDefault();
         model.SubjectID       = studySubject.SubjectID;
         model.SelectedSubject = db.Subjects.Where(c => c.ID == model.SubjectID).Include(c => c.SubjectType).Select(c => c.SubjectType.Name).FirstOrDefault();
         return(View(model));
     }
 }
 public ActionResult Create(StudySubjectViewModel model)
 {
     using (JournalContext db = new JournalContext())
     {
         if (ModelState.IsValid)
         {
             StudySubject studySubject = (StudySubject)model;
             studySubject.ID = Guid.NewGuid();
             db.StudySubject.Add(studySubject);
             db.SaveChanges();
             return(RedirectToAction("Index"));
         }
     }
     return(View(model));
 }
        public ActionResult Edit(Guid?id)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }
            var identity = (ClaimsIdentity)User.Identity;
            var idString = identity.Claims.Where(c => c.Type == ClaimTypes.NameIdentifier)
                           .Select(c => c.Value).SingleOrDefault();
            Guid UserId;

            if (Guid.TryParse(idString, out UserId))
            {
                using (JournalContext db = new JournalContext())
                {
                    User user = db.Users.Find(UserId);
                    StudySubjectViewModel model        = new StudySubjectViewModel();
                    StudySubject          studySubject = db.StudySubject.Find(id);
                    var pupilRole = Guid.Parse(Roles.Pupil);
                    model.ID        = studySubject.ID;
                    model.SubjectID = studySubject.SubjectID;
                    model.UserID    = studySubject.UserID;
                    model.Users     = db.Users.Where(c => c.UserRollID == pupilRole && c.SchoolID == user.SchoolID).Select(c => new SelectListItem()
                    {
                        Value = c.ID.ToString(), Text = c.FirstName + " " + c.LastName
                    }).ToList();
                    model.Subjects = db.Subjects.Where(c => c.Teacher.SchoolID == user.SchoolID).Select(c => new SelectListItem()
                    {
                        Value = c.ID.ToString(), Text = c.SubjectType.Name
                    }).ToList();
                    model.SelectedUser    = db.Users.Where(c => c.ID == model.UserID).Select(c => c.FirstName + " " + c.LastName).FirstOrDefault();
                    model.SelectedSubject = db.Subjects.Where(c => c.ID == model.SubjectID).Include(c => c.SubjectType).Select(c => c.SubjectType.Name).FirstOrDefault();
                    return(View(model));
                }
            }
            return(RedirectToAction("Login"));
        }