Esempio n. 1
0
        // GET: Admin/Terms/PeriodDates
        public async Task <ActionResult> PeriodDates(int?termId)
        {
            if (!termId.HasValue)
            {
                return(HttpNotFound());
            }

            PeriodDateListViewModel viewModel = null;

            try
            {
                var periodDateList = await _periodDateRepository.GetPeriodDatesByTermId(termId.Value);

                var periods = await _periodRepository.GetPeriods();

                List <PeriodDateDto> periodDates = null;
                bool isNew = false;

                if (periodDateList.PeriodDates == null || periodDateList.PeriodDates.ToList().Count == 0)
                {
                    isNew       = true;
                    periodDates = new List <PeriodDateDto>();

                    foreach (var p in periods)
                    {
                        periodDates.Add(new PeriodDateDto
                        {
                            PeriodId  = p.Id.Value,
                            TermId    = periodDateList.Term.Id.Value,
                            StartDate = null,
                            EndDate   = null
                        });
                    }
                }
                else
                {
                    isNew       = false;
                    periodDates = periodDateList.PeriodDates.ToList();
                }

                viewModel = new PeriodDateListViewModel(periodDateList)
                {
                    Periods = periods,
                    IsNew   = isNew
                };
            }
            catch (BadRequestException bre)
            {
                AddErrorsFromAdycHttpExceptionToModelState(bre, ModelState);
            }

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

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

            return(View(viewModel));
        }
Esempio n. 2
0
        public async Task <ActionResult> SavePeriodDates(PeriodDateListViewModel form)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var periodDateList = new PeriodDateListDto
                    {
                        PeriodDates = form.PeriodDates
                    };

                    if (form.IsNew)
                    {
                        await _periodDateRepository.PostPeriodDateList(periodDateList);
                    }
                    else
                    {
                        await _periodDateRepository.PutPeriodDateList(form.TermId, periodDateList);
                    }

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

                    return(RedirectToAction("PeriodDates", new { termId = form.TermId }));
                }
                catch (BadRequestException bre)
                {
                    AddErrorsFromAdycHttpExceptionToModelState(bre, ModelState);
                }
            }

            form.Term = await _termRepository.GetTermById(form.TermId);

            form.Periods = await _periodRepository.GetPeriods();

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

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

            return(View("PeriodDates", form));
        }