コード例 #1
0
ファイル: EFRepository.cs プロジェクト: solomon00/judge
        public void DeleteInstitution(Institution Institution)
        {
            var users = context
                .UserProfiles
                .Where(u =>  u.InstitutionID == Institution.InstitutionID);

            foreach (var item in users)
            {
                item.InstitutionID = null;
                context.Entry(item).State = EntityState.Modified;
            }

            context.Entry(Institution).State = EntityState.Deleted;

            context.SaveChanges();

            return;
        }
コード例 #2
0
        public ActionResult Create(viewModels.CreateInstitutionViewModel Model)
        {
            if (ModelState.IsValid)
            {
                // Attempt to register the user
                try
                {
                    Country country = repository
                        .Country
                        .FirstOrDefault(c => c.CountryID == Model.CountryID);
                    if (country == null)
                    {
                        ModelState.AddModelError("Country", "Страна не существует в базе");
                        return View(Model);
                    }

                    City city = repository
                        .City
                        .FirstOrDefault(c => c.CityID == Model.CityID && c.CountryID == Model.CountryID);
                    if (city == null)
                    {
                        ModelState.AddModelError("City", "Город не существует в базе");
                        return View(Model);
                    }

                    Institution institution = repository
                        .Institutions
                        .FirstOrDefault(i => i.Name == Model.Institution && i.CityID == city.CityID);
                    if (institution != null)
                    {
                        ModelState.AddModelError("Institution", "Образовательное учреждение с таким именем уже существует");
                        return View(Model);
                    }

                    institution = new Institution()
                        {
                            Name = Model.Institution,
                            CityID = city.CityID
                        };

                    int userID = WebSecurity.CurrentUserId;
                    if (userID != 1)
                    {
                        UserProfile user = repository.Users.FirstOrDefault(u => u.UserId == userID);
                        institution.UsersCanModify = new List<UserProfile>();
                        institution.UsersCanModify.Add(user);
                    }
                    int institutionID = repository.AddInstitution(institution);

                    logger.Info("User " + WebSecurity.GetUserId(User.Identity.Name) + " \"" + User.Identity.Name +
                        "\" create institution \"" + institutionID + "\"");
                    TempData["SuccessMessage"] = "Образовательное учреждение (организация) успешно создано(а)!";
                    return RedirectToAction("Create");
                }
                catch (MembershipCreateUserException ex)
                {
                    logger.Warn("Error occured on user " + WebSecurity.GetUserId(User.Identity.Name) +
                        " \"" + User.Identity.Name + "\" institution creating: ", ex);
                    TempData["ErrorMessage"] = "Произошла ошибка при создании образовательного учреждения (организации)";
                }
            }

            return View(Model);
        }
コード例 #3
0
ファイル: EFRepository.cs プロジェクト: solomon00/judge
        public int AddInstitution(Institution Institution)
        {
            if (Institution.InstitutionID == 0)
            {
                Institution = context.Institutions.Add(Institution);
            }
            else
            {
                context.Entry(Institution).State = EntityState.Modified;
            }
            context.SaveChanges();
            context.Entry(Institution).Reload();

            return Institution.InstitutionID;
        }