예제 #1
0
        internal int CreateUniversity(NewUniversityViewModel model, string userId)
        {
            using (var db = new ErasmusDbContext())
            {
                var user = db.Users.SingleOrDefault(x => x.Id == userId);

                var uni = db.Universities.Add(new University()
                {
                    Name        = model.Name,
                    Address     = model.Address,
                    City        = model.City,
                    Country     = model.Country,
                    ErasmusCode = model.ErasmusCode
                });

                db.SaveChanges();

                user.UniversityId = uni.Id;
                db.SaveChanges();

                db.UserPermissions.Add(new UserPermissions()
                {
                    UserId       = userId,
                    UniversityId = uni.Id
                });
                db.SaveChanges();
                return(uni.Id);
            }
        }
예제 #2
0
        public ActionResult NewUniversity(NewUniversityViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var uniId = _uniAdminBusinessLogic.CreateUniversity(model, User.Identity.GetUserId());
                    ViewData.Add("LastActionResult", "University created");

                    var Identity = User.Identity as ClaimsIdentity;
                    Identity.RemoveClaim(Identity.FindFirst("UniversityId"));
                    Identity.AddClaim(new Claim("UniversityId", uniId.ToString()));
                    var authenticationManager = System.Web.HttpContext.Current.GetOwinContext().Authentication;
                    authenticationManager.AuthenticationResponseGrant = new AuthenticationResponseGrant(new ClaimsPrincipal(Identity), new AuthenticationProperties()
                    {
                        IsPersistent = true
                    });

                    return(RedirectToActionPermanent("Universities"));
                }
                return(View(model));
            }
            catch (Exception e)
            {
                return(Json(new { result = "ERROR", message = e.Message }, JsonRequestBehavior.AllowGet));
            }
        }
예제 #3
0
        public NewUniversityViewModel GetNewUniversityViewModel()
        {
            var model = new NewUniversityViewModel();

            using (var db = new ErasmusDbContext())
            {
                model.Faculties = new SelectList(db.Faculties.Where(x => x.UniversityId == null).ToList().Select(x =>
                                                                                                                 new KeyValueIntStr()
                {
                    Key   = x.Id,
                    Value = x.Name
                }), "Key", "Value");
            }
            return(model);
        }
예제 #4
0
 public ActionResult NewUniversity(NewUniversityViewModel model)
 {
     try
     {
         if (ModelState.IsValid)
         {
             _adminBusinessLogic.CreateUniversity(model);
             ViewData.Add("LastActionResult", "University created");
             return(RedirectToActionPermanent("Universities"));
         }
         return(View(model));
     }
     catch (Exception e)
     {
         return(Json(new { result = "ERROR", message = e.Message }, JsonRequestBehavior.AllowGet));
     }
 }
예제 #5
0
        public void CreateUniversity(NewUniversityViewModel model)
        {
            using (var db = new ErasmusDbContext())
            {
                var faculties = db.Faculties.Where(x => model.SelectedFaculties.Contains(x.Id)).ToList();
                if (faculties.Count != model.SelectedFaculties.Count)
                {
                    throw new ValidationException("Some faculties were not found.");
                }

                db.Universities.Add(new University()
                {
                    Faculties   = faculties,
                    Name        = model.Name,
                    Address     = model.Address,
                    City        = model.City,
                    Country     = model.Country,
                    ErasmusCode = model.ErasmusCode
                });

                db.SaveChanges();
            }
        }