Exemplo n.º 1
0
        public async Task <IActionResult> Store([FromBody] TermEditForm model)
        {
            var termYear = await termService.GetTermYearByIdAsync(model.term.termYearId);

            if (termYear == null)
            {
                throw new Exception(String.Format("TermYear not found.id = {0}", model.term.termYearId));
            }

            int number = ViewService.CreateTermNumber(termYear.Year, model.order);

            var exist = termService.GetTermByNumber(number);

            if (exist != null)
            {
                ModelState.AddModelError("order", "年度與順序重複了");
                return(BadRequest(ModelState));
            }


            var term = model.term.MapToEntity(number);


            term = await termService.CreateAsync(term);


            return(Ok(term));
        }
Exemplo n.º 2
0
        public async Task <ActionResult> Edit(int id)
        {
            var term = await _termsService.GetByIdAsync(id);

            if (term == null)
            {
                return(NotFound());
            }

            var model = term.MapViewModel(_mapper);

            model.Text = model.Text.ReplaceBrToNewLine();


            var selectedSubject = await _subjectsService.GetByIdAsync(term.SubjectId);

            var terms = await _termsService.FetchAsync(selectedSubject);

            if (terms.HasItems())
            {
                _termsService.LoadSubItems(terms);
                terms = terms.GetOrdered();
            }

            var form = new TermEditForm()
            {
                Term    = model,
                Parents = terms.MapViewModelList(_mapper)
            };

            return(Ok(form));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Create()
        {
            var yearOptions = await this.GetTermYearOptions();

            var termModel = new TermViewModel
            {
                termYearId = Convert.ToInt16(yearOptions.FirstOrDefault().value)
            };


            var model = new TermEditForm {
                term = termModel, yearOptions = yearOptions, order = 1
            };

            return(Ok(model));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> Edit(int id)
        {
            var term = await termService.GetByIdAsync(id);

            if (term == null)
            {
                return(NotFound());
            }

            var yearOptions = await this.GetTermYearOptions();

            var model = new TermEditForm
            {
                term        = term.MapTermViewModel(),
                yearOptions = yearOptions,
                order       = term.Order
            };


            return(Ok(model));
        }
Exemplo n.º 5
0
        public async Task <ActionResult> Create(int subject, int parent)
        {
            Subject selectedSubject = await _subjectsService.GetByIdAsync(subject);

            if (selectedSubject == null)
            {
                ModelState.AddModelError("subject", "科目不存在");
                return(BadRequest(ModelState));
            }

            int maxOrder = await _termsService.GetMaxOrderAsync(selectedSubject, parent);

            int order = maxOrder + 1;
            var model = new TermViewModel()
            {
                Order     = order,
                SubjectId = subject,
                ParentId  = parent,
                Active    = order >= 0
            };

            var terms = await _termsService.FetchAsync(selectedSubject);

            if (terms.HasItems())
            {
                _termsService.LoadSubItems(terms);
                terms = terms.GetOrdered();
            }

            var form = new TermEditForm()
            {
                Term    = model,
                Parents = terms.MapViewModelList(_mapper)
            };

            return(Ok(form));
        }