Esempio n. 1
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            string userId = _userManager.GetUserId(User);

            Entry entry = await _context.Entries
                          .Include(ent => ent.SubjectAssignments)
                          .ThenInclude(sa => sa.Subject)
                          .Include(ent => ent.Enrollments)
                          .ThenInclude(enr => enr.Student)
                          .Include(ent => ent.Grades)
                          .Where(ent => ent.UserID == userId)
                          .Where(ent => ent.ID == id)
                          .SingleOrDefaultAsync();

            if (entry == null)
            {
                DangerMessage = "Entry not found. The Entry you selected is no longer in the database.";

                return(RedirectToPage("./Index"));
            }

            EntryCreateEditVM = new EntryCreateEditVM(entry, _context, userId);

            return(Page());
        }
Esempio n. 2
0
        public IActionResult OnGet()
        {
            string userId = _userManager.GetUserId(User);

            EntryCreateEditVM = new EntryCreateEditVM(_context, userId);

            return(Page());
        }
Esempio n. 3
0
        public async Task <IActionResult> OnPostAsync(int?id, string[] selectedSubjects, string[] selectedStudents)
        {
            var formData = Request.Form;

            string userID = _userManager.GetUserId(User);

            EntryCreateEditVM = new EntryCreateEditVM();

            bool modelDidUpdate = await TryUpdateModelAsync <EntryCreateEditVM>(EntryCreateEditVM);

            if (!modelDidUpdate)
            {
                DangerMessage = "Changes did not save correctly. Please try again.";
                return(RedirectToPage());
            }

            Entry editedEntry = await _context.Entries
                                .Include(ent => ent.SubjectAssignments)
                                .ThenInclude(sa => sa.Subject)
                                .Include(ent => ent.Enrollments)
                                .ThenInclude(enr => enr.Student)
                                .Include(ent => ent.Grades)
                                .Where(ent => ent.UserID == userID)
                                .Where(ent => ent.ID == id)
                                .SingleOrDefaultAsync();

            if (editedEntry == null)
            {
                DangerMessage = "Entry not found. The Entry you selected is no longer in the database.";

                return(RedirectToPage("./Index"));
            }

            editedEntry.Title       = EntryCreateEditVM.Title;
            editedEntry.Date        = EntryCreateEditVM.Date;
            editedEntry.Description = EntryCreateEditVM.Description;

            if (EntryCreateEditVM.Hours == null && EntryCreateEditVM.Minutes == null)
            {
                editedEntry.MinutesSpent = null;
            }
            else
            {
                editedEntry.MinutesSpent = ((EntryCreateEditVM.Hours ?? 0) * 60) + (EntryCreateEditVM.Minutes ?? 0);
            }

            editedEntry.SubjectAssignments = new List <SubjectAssignment>();

            foreach (Subject subject in _context.Subjects.Where(su => su.UserID == userID))
            {
                if (selectedSubjects.Contains(subject.ID.ToString()))
                {
                    editedEntry.SubjectAssignments.Add(new SubjectAssignment
                    {
                        SubjectID = subject.ID,
                        EntryID   = editedEntry.ID
                    });
                }
            }

            editedEntry.Enrollments = new List <Enrollment>();

            foreach (Student student in _context.Students.Where(st => st.UserID == userID))
            {
                if (selectedStudents.Contains(student.ID.ToString()))
                {
                    editedEntry.Enrollments.Add(new Enrollment
                    {
                        StudentID = student.ID,
                        EntryID   = editedEntry.ID
                    });
                }
            }

            List <Grade> editedGrades = GetGradesFromFormData(formData, editedEntry, userID, out bool allGradesValid);

            editedEntry.Grades = editedGrades;

            await _context.SaveChangesAsync();

            if (!allGradesValid)
            {
                DangerMessage = "At least one grade was not entered correctly and was not saved.";
            }

            return(RedirectToPage("./Index"));
        }
Esempio n. 4
0
        public async Task <IActionResult> OnPostAsync(string[] selectedSubjects, string[] selectedStudents)
        {
            var formData = Request.Form;

            string userId = _userManager.GetUserId(User);

            EntryCreateEditVM = new EntryCreateEditVM();

            bool modelDidUpdate = await TryUpdateModelAsync <EntryCreateEditVM>(EntryCreateEditVM);

            if (!modelDidUpdate)
            {
                DangerMessage = "Changes did not save correctly. Please try again.";
                return(RedirectToPage());
            }

            Entry newEntry = new Entry
            {
                UserID      = userId,
                Title       = EntryCreateEditVM.Title,
                Date        = EntryCreateEditVM.Date,
                Description = EntryCreateEditVM.Description
            };

            if (EntryCreateEditVM.Hours == null && EntryCreateEditVM.Minutes == null)
            {
                newEntry.MinutesSpent = null;
            }
            else
            {
                newEntry.MinutesSpent = ((EntryCreateEditVM.Hours ?? 0) * 60) + (EntryCreateEditVM.Minutes ?? 0);
            }

            newEntry.SubjectAssignments = new List <SubjectAssignment>();

            foreach (Subject subject in _context.Subjects.Where(su => su.UserID == userId))
            {
                if (selectedSubjects.Contains(subject.ID.ToString()))
                {
                    newEntry.SubjectAssignments.Add(new SubjectAssignment
                    {
                        SubjectID = subject.ID,
                        EntryID   = newEntry.ID
                    });
                }
            }

            newEntry.Enrollments = new List <Enrollment>();

            foreach (Student student in _context.Students.Where(st => st.UserID == userId))
            {
                if (selectedStudents.Contains(student.ID.ToString()))
                {
                    newEntry.Enrollments.Add(new Enrollment
                    {
                        StudentID = student.ID,
                        EntryID   = newEntry.ID
                    });
                }
            }

            List <Grade> grades = GetGradesFromFormData(formData, newEntry, userId, out bool allGradesValid);

            newEntry.Grades = grades;

            _context.Entries.Add(newEntry);

            await _context.SaveChangesAsync();

            if (!allGradesValid)
            {
                DangerMessage = "At least one grade was not entered correctly and was not saved.";
            }

            return(RedirectToPage("./Index"));
        }