예제 #1
0
        // GET: Admin/Grades/Edit
        public async Task <ActionResult> Edit(int?id)
        {
            if (!id.HasValue)
            {
                return(HttpNotFound());
            }

            GradeFormViewModel viewModel = null;

            try
            {
                var grade = await _gradeRepository.GetGradeById(id.Value);

                viewModel = new GradeFormViewModel(grade)
                {
                    IsNew = false
                };
            }
            catch (BadRequestException bre)
            {
                AddErrorsFromAdycHttpExceptionToModelState(bre, ModelState);
            }

            // Add properties to layout
            AddPageHeader(viewModel.Title, "");

            AddBreadcrumb("Grades", Url.Action("Index", "Grades", new { area = "Admin" }));
            AddBreadcrumb(viewModel.Title, "");

            return(View("GradeForm", viewModel));
        }
예제 #2
0
        // GET: Admin/Grades/New
        public ActionResult New()
        {
            var viewModel = new GradeFormViewModel
            {
                IsNew = true
            };

            // Add properties to layout
            AddPageHeader(viewModel.Title, "");

            AddBreadcrumb("Grades", Url.Action("Index", "Grades", new { area = "Admin" }));
            AddBreadcrumb(viewModel.Title, "");

            return(View("GradeForm", viewModel));
        }
예제 #3
0
        public IActionResult Save(GradeFormViewModel gf)
        {
            if (!ModelState.IsValid)
            {
                var message = string.Join(" | ", ModelState.Values
                                          .SelectMany(v => v.Errors)
                                          .Select(e => e.ErrorMessage));

                TempData["ErrorMessage"] = "Κάτι πήγε στραβά: " + message + " . Παρακαλώ δοκιμάστε ξανά αργότερα.";

                return(RedirectToAction("Index", "Grade"));
            }

            var userId    = userManager.GetUserId(HttpContext.User);
            var secretary = context.Secretaries.Include(s => s.ApplicationUser).SingleOrDefault(u => u.UserId == userId);

            var gradeInDb = context.Grades.FirstOrDefault(g => g.Id == gf.Id);

            if (gradeInDb == null)
            {
                TempData["ErrorMessage"] = "Το μάθημα δεν δηλώθηκε τη συγκεκριμένη Ακ. Περίοδο.";

                return(RedirectToAction("Index", "Grade"));
            }

            gradeInDb.Value        = gf.Grade;
            gradeInDb.ExamPeriodId = gf.ExamPeriod;
            gradeInDb.ExamDate     = gf.ExamDate;
            gradeInDb.SecretaryId  = secretary.Id;
            gradeInDb.EntryDate    = DateTime.Today;

            try
            {
                context.Grades.Update(gradeInDb);
                context.SaveChanges();

                TempData["SuccessMessage"] = "Η διαδικασία ολοκληρώθηκε.";
            }
            catch (Exception e)
            {
                TempData["ErrorMessage"] = "Κάτι πήγε στραβά: " + e.Message + " " + e.InnerException + " . Παρακαλώ δοκιμάστε ξανά αργότερα.";
            }

            return(RedirectToAction("Index", "Grade"));
        }
예제 #4
0
        public async Task <ActionResult> Save(GradeFormViewModel form)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    GradeDto grade = (form.IsNew)
                        ? new GradeDto()
                        : await _gradeRepository.GetGradeById(form.Id.Value);

                    grade.Name = form.Name;

                    if (form.IsNew)
                    {
                        await _gradeRepository.PostGrade(grade);
                    }
                    else
                    {
                        await _gradeRepository.PutGrade(grade.Id.Value, grade);
                    }

                    AddPageAlerts(ViewHelpers.PageAlertType.Success, "Your changes have been saved succesfully.");

                    return(RedirectToAction("Index"));
                }
                catch (BadRequestException bre)
                {
                    AddErrorsFromAdycHttpExceptionToModelState(bre, ModelState);
                }
            }

            // Add properties to layout
            AddPageHeader(form.Title, "");

            AddBreadcrumb("Grades", Url.Action("Index", "Grades", new { area = "Admin" }));
            AddBreadcrumb(form.Title, "");

            return(View("GradeForm", form));
        }
예제 #5
0
        public IActionResult Edit(int id)
        {
            // Υποβολή βαθμολογίας

            var grade = context.Grades
                        .Include(g => g.Course)
                        .Include(g => g.Enrollment)
                        .ThenInclude(e => e.Student)
                        .Include(g => g.Enrollment)
                        .ThenInclude(e => e.AcademicPeriod)
                        .Include(g => g.ExamPeriod)
                        .Include(g => g.Secretary)
                        .FirstOrDefault(g => g.Id == id);

            if (grade == null)
            {
                TempData["ErrorMessage"] = "Το μάθημα δεν δηλώθηκε τη συγκεκριμένη Ακ. Περίοδο.";

                return(RedirectToAction("Index", "Grade"));
            }

            var examperiods = context.ExamPeriods.ToList();
            List <SelectListItem> examperiodsSelectList = new List <SelectListItem>();

            foreach (var examperiod in examperiods)
            {
                examperiodsSelectList.Add(new SelectListItem
                {
                    Value = examperiod.Id.ToString(),
                    Text  = examperiod.Period
                });
            }

            if (grade.Value != null)
            {
                GradeFormViewModel gradeformViewModel = new GradeFormViewModel()
                {
                    Id             = id,
                    Title          = "Υποβολή βαθμολογίας",
                    Course         = grade.Course.Title,
                    Student        = grade.Enrollment.Student.FullName,
                    AcademicPeriod = grade.Enrollment.AcademicPeriod.Period,
                    ExamPeriod     = grade.ExamPeriod.Id,
                    ExamPeriodList = examperiodsSelectList,
                    ExamDate       = grade.ExamDate,
                    Grade          = grade.Value
                };

                return(View(gradeformViewModel));
            }
            else
            {
                GradeFormViewModel gradeformViewModel = new GradeFormViewModel()
                {
                    Id             = id,
                    Title          = "Υποβολή βαθμολογίας",
                    Course         = grade.Course.Title,
                    Student        = grade.Enrollment.Student.FullName,
                    AcademicPeriod = grade.Enrollment.AcademicPeriod.Period,
                    ExamPeriodList = examperiodsSelectList
                };

                return(View(gradeformViewModel));
            }
        }