public IHttpActionResult PutPeriodDates(int termId, [FromBody] PeriodDateListDto form) { if (ModelState.IsValid) { var periodDatesInDb = _periodDateService.GetPeriodDatesForTerm(termId); if (periodDatesInDb == null) { return(BadRequest()); } try { Mapper.Map(form.PeriodDates, periodDatesInDb); _periodDateService.UpdateRange(periodDatesInDb); return(Ok()); } catch (ArgumentException ae) { ModelState.AddModelError("", ae.Message); } } return(BadRequest(ModelState)); }
public IHttpActionResult PostPeriodDates(int termId, [FromBody] PeriodDateListDto form) { if (ModelState.IsValid) { try { var periodDates = Mapper.Map <IEnumerable <PeriodDateDto>, IEnumerable <PeriodDate> >(form.PeriodDates); _periodDateService.AddRange(periodDates); var term = _termService.Get(termId); var periodDateListDto = GetPeriodDateListDto(termId, term, periodDates); return(Created(new Uri(periodDateListDto.Url), periodDateListDto)); } catch (ArgumentException ae) { ModelState.AddModelError("", ae.Message); } catch (PreexistingEntityException pee) { ModelState.AddModelError("", pee.Message); } } return(BadRequest(ModelState)); }
protected PeriodDateListDto GetPeriodDateListDto(int termId, Term term, IEnumerable <PeriodDate> periodDates) { var periodDateListDto = new PeriodDateListDto { Url = UrlResoucesUtil.GetBaseUrl(Request, "Terms") + termId + "/PeriodDates", PeriodDates = periodDates .Select(pd => { var periodDateDto = new PeriodDateDto { TermId = pd.TermId, PeriodId = pd.PeriodId, StartDate = pd.StartDate, EndDate = pd.EndDate }; periodDateDto.Period = Mapper.Map <Period, PeriodDto>(pd.Period); periodDateDto.Period.Url = UrlResoucesUtil.GetBaseUrl(Request, "Periods") + pd.PeriodId; return(periodDateDto); }) }; periodDateListDto.Term = Mapper.Map <Term, TermDto>(term); periodDateListDto.Term.Url = UrlResoucesUtil.GetBaseUrl(Request, "Terms") + term.Id; return(periodDateListDto); }
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)); }
public PeriodDateListViewModel(PeriodDateListDto periodDateList) { TermId = periodDateList.Term.Id.Value; Term = periodDateList.Term; PeriodDates = periodDateList.PeriodDates.ToList(); }