public void TestRouteStudentApplicationsSubmit()
        {
            const string Url = "/Student/Applications/Submit";

            var model = new ApplicationInputViewModel()
            {
                MajorId = 1,
                UniversityId = 1
            };
            var jsonBody = JsonConvert.SerializeObject(model);

            this.RouteCollection
                .ShouldMap(Url)
                .WithJsonBody(jsonBody)
                .To<ApplicationsController>(c => c.Submit(model));
        }
示例#2
0
        public Application(ApplicationInputViewModel obj)
        {
            ApplicationName = obj.ApplicationName;
            Description     = obj.Description;
            CreateUserId    = obj.CreateUserId;
            CreateDate      = obj.CreateDate;

            if (obj.UpdateUserId != null)
            {
                UpdateUserId = obj.UpdateUserId;
            }

            if (obj.UpdateDate != null)
            {
                UpdateDate = obj.UpdateDate;
            }
        }
        public ActionResult Submit(ApplicationInputViewModel model)
        {
            var studentId = this.User.Identity.GetUserId();

            var hasApplied = this.applications
                .All()
                .Where(a => a.UniversityId == model.UniversityId && a.StudentId == studentId)
                .Any();

            if (hasApplied)
            {
                return this.PartialView("_AlreadyApplied");
            }

            var eligiblity = this.studentInfos.IsEligibleToApply(studentId, model.UniversityId);

            if (!eligiblity.IsEligible)
            {
                this.ModelState.AddModelError("Eligiblity", eligiblity.Message);
            }
            else
            {
                var major = this.majors.GetById(model.MajorId);

                if (major == null)
                {
                    this.ModelState.AddModelError("Major", "There is no such major.");
                }
            }

            if (this.ModelState.IsValid)
            {
                this.applications.Create(studentId, model.UniversityId, model.MajorId);
                return this.PartialView("_SuccessfullySubmitted");
            }

            return this.PartialView("_Error", model);
        }
        public ActionResult ApplicationForm(int id)
        {
            var model = new ApplicationInputViewModel();
            var majorsList = this.Cache.Get("Majors", () => this.majors.All().ToList(), 60 * 60);
            model.Majors = new SelectList(majorsList, "Id", "Name", model.MajorId);
            model.UniversityId = id;

            return this.PartialView("_ApplicationForm", model);
        }