public ActionResult Add(UniversityCreateViewModel model)
        {
            var universityWithNameExists = this.universities.All().Any(u => u.Name == model.Name);

            if (universityWithNameExists)
            {
                this.ModelState.AddModelError("Existing university", "There is already a university with this name.");
            }

            var countryExists = this.countries.All().Any(c => c.Id == model.CountryId);

            if (!countryExists)
            {
                this.ModelState.AddModelError("Nonexisting country", "No such country exists - if you are sure of what you're doing, contact administrator.");
            }

            if (this.ModelState.IsValid)
            {
                var directorId = this.User.Identity.GetUserId();
                this.universities.Create(directorId, model.Name, model.TuitionFee, model.CountryId);
                return this.RedirectToAction("Index", "Home", null);
            }

            model.Countries = new SelectList(this.GetCountries(), "Id", "Name", model.CountryId);
            return this.View(model);
        }
        public void TestRouteDirectorUniversitiesAddPost()
        {
            const string Url = "/Director/Universities/Add";

            var model = new UniversityCreateViewModel()
            {
                Name = "Something",
                TuitionFee = 500
            };
            var jsonBody = JsonConvert.SerializeObject(model);

            this.RouteCollection
                .ShouldMap(Url)
                .WithJsonBody(jsonBody)
                .To<UniversitiesController>(c => c.Add(model));
        }
 public ActionResult Add()
 {
     var model = new UniversityCreateViewModel();
     model.Countries = new SelectList(this.GetCountries(), "Id", "Name", model.CountryId);
     return this.View(model);
 }