コード例 #1
0
ファイル: PeriodDatesController.cs プロジェクト: jose2a/ADYC
        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));
        }
コード例 #2
0
ファイル: PeriodDatesController.cs プロジェクト: jose2a/ADYC
        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));
        }
コード例 #3
0
ファイル: ADYCBasedApiController.cs プロジェクト: jose2a/ADYC
        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);
        }
コード例 #4
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));
        }
コード例 #5
0
 public PeriodDateListViewModel(PeriodDateListDto periodDateList)
 {
     TermId      = periodDateList.Term.Id.Value;
     Term        = periodDateList.Term;
     PeriodDates = periodDateList.PeriodDates.ToList();
 }