public ActionResult Create(UD_Granit.ViewModels.Speciality.Create viewModel) { if (!RightsManager.Speciality.Control(Session.GetUser())) throw new HttpException(404, "Not found"); try { if (ModelState.IsValid) { if (db.Specialities.Find(viewModel.Speciality.Number) == null) { db.Specialities.Add(viewModel.Speciality); db.SaveChanges(); } else { ViewData.NotificationAdd(new NotificationManager.Notify() { Message = "Специальность с таким номером уже существует.", Type = NotificationManager.Notify.NotifyType.Error }); return View(viewModel); } } return RedirectToAction("Index"); } catch (Exception ex) { ViewData.NotificationAdd(new NotificationManager.Notify() { Message = ex.Message, Type = NotificationManager.Notify.NotifyType.Error }); return View(); } }
public ActionResult Login(UD_Granit.ViewModels.Account.Login viewModel) { if (Session.GetUser() != null) throw new HttpException(404, "Not found"); var q = from u in db.Users where ((u.Email == viewModel.Email) && (u.Password == viewModel.Password)) select u; if (q.Count() != 0) { User currentUser = q.First(); if (currentUser is Administrator) { (currentUser as Administrator).LastIP = Request.GetUserIp(); db.Entry(currentUser).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } Session.SetUser(currentUser); return RedirectToAction("Index", "Home"); } ViewData.NotificationAdd(new NotificationManager.Notify() { Type = NotificationManager.Notify.NotifyType.Error, Message = "Пользователь с такой комбинацией электронного почтового ящика и пароля не найден в системе. Пожалуйста, проверьте достоверность введённых данных." }); return View(); }
public ActionResult Edit(UD_Granit.ViewModels.Speciality.Edit viewModel) { if (!RightsManager.Speciality.Control(Session.GetUser())) throw new HttpException(404, "Not found"); try { if (ModelState.IsValid) { db.Entry<Speciality>(viewModel.Speciality).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } return RedirectToAction("Index"); } catch (Exception ex) { ViewData.NotificationAdd(new NotificationManager.Notify() { Message = ex.Message, Type = NotificationManager.Notify.NotifyType.Error }); return View(); } }
public ActionResult Edit(UD_Granit.ViewModels.Dissertation.Edit viewModel) { try { Dissertation currentDissertation = viewModel.Dissertation; currentDissertation.Speciality = db.Specialities.Find(viewModel.Speciality); Dissertation baseDissertation = db.Dissertations.Find(currentDissertation.Id); baseDissertation.Title = currentDissertation.Title; baseDissertation.Publications = currentDissertation.Publications; baseDissertation.Administrative_Use = currentDissertation.Administrative_Use; baseDissertation.Date_Preliminary_Defense = currentDissertation.Date_Preliminary_Defense; baseDissertation.Date_Sending = currentDissertation.Date_Sending; baseDissertation.Defensed = currentDissertation.Defensed; baseDissertation.References = currentDissertation.References; baseDissertation.Speciality = currentDissertation.Speciality; baseDissertation.Applicant = db.Applicants.Find(Session.GetUser().Id); if (viewModel.File_Abstract != null) { System.IO.File.Delete(Server.MapPath(Path.Combine("~/App_Data/", currentDissertation.Id + "_Abstract" + baseDissertation.File_Abstract))); baseDissertation.File_Abstract = Path.GetExtension(viewModel.File_Abstract.FileName); viewModel.File_Abstract.SaveAs(Server.MapPath(Path.Combine("~/App_Data/", currentDissertation.Id + "_Abstract" + baseDissertation.File_Abstract))); } if (viewModel.File_Text != null) { System.IO.File.Delete(Server.MapPath(Path.Combine("~/App_Data/", currentDissertation.Id + "_Text" + baseDissertation.File_Text))); baseDissertation.File_Text = Path.GetExtension(viewModel.File_Text.FileName); viewModel.File_Text.SaveAs(Server.MapPath(Path.Combine("~/App_Data/", currentDissertation.Id + "_Text" + baseDissertation.File_Text))); } if (viewModel.File_Summary != null) { System.IO.File.Delete(Server.MapPath(Path.Combine("~/App_Data/", currentDissertation.Id + "_Summary" + baseDissertation.File_Summary))); baseDissertation.File_Summary = Path.GetExtension(viewModel.File_Summary.FileName); viewModel.File_Summary.SaveAs(Server.MapPath(Path.Combine("~/App_Data/", currentDissertation.Id + "_Summary" + baseDissertation.File_Summary))); } db.Entry<Dissertation>(baseDissertation).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); return RedirectToAction("Details", new { id = currentDissertation.Id }); } catch (Exception ex) { ViewData["Speciality"] = db.Specialities.Select(s => new SelectListItem { Text = s.Number + " " + s.Name, Value = s.Number }); ViewData.NotificationAdd(new NotificationManager.Notify() { Type = NotificationManager.Notify.NotifyType.Error, Message = ex.Message }); return View(viewModel); } }
public ActionResult Create(UD_Granit.ViewModels.Dissertation.Create viewModel) { Applicant currentUser = Session.GetUser() as Applicant; if (currentUser == null) throw new HttpException(404, "Not found"); if (db.Dissertations.Where(d => d.Applicant.Id == currentUser.Id).Count() != 0) throw new HttpException(404, "Not found"); Dissertation currentDissertation = viewModel.Dissertation; currentDissertation.Type = (currentUser is ApplicantCandidate) ? DissertationType.Candidate : DissertationType.Doctor; currentDissertation.Applicant = db.Applicants.Find(currentUser.Id); currentDissertation.File_Abstract = Path.GetExtension(viewModel.File_Abstract.FileName); currentDissertation.File_Text = Path.GetExtension(viewModel.File_Text.FileName); currentDissertation.File_Summary = Path.GetExtension(viewModel.File_Summary.FileName); currentDissertation.Defensed = false; currentDissertation.Speciality = db.Specialities.Find(viewModel.Speciality); db.Dissertations.Add(currentDissertation); db.SaveChanges(); viewModel.File_Abstract.SaveAs(Server.MapPath(Path.Combine("~/App_Data/", currentDissertation.Id + "_Abstract" + currentDissertation.File_Abstract))); viewModel.File_Text.SaveAs(Server.MapPath(Path.Combine("~/App_Data/", currentDissertation.Id + "_Text" + currentDissertation.File_Text))); viewModel.File_Summary.SaveAs(Server.MapPath(Path.Combine("~/App_Data/", currentDissertation.Id + "_Summary" + currentDissertation.File_Summary))); return RedirectToAction("Details", new { id = currentDissertation.Id }); }
public ActionResult Create(UD_Granit.ViewModels.Session.Create viewModel) { if (!RightsManager.Session.Create(Session.GetUser())) throw new HttpException(404, "Not found"); Dissertation currentDissertation = db.Dissertations.Find(viewModel.Dissertation_Id); if (currentDissertation == null) throw new HttpException(404, "Not found"); try { Session currentSession = viewModel.Session; currentSession.Dissertation = db.Dissertations.Find(viewModel.Dissertation_Id); currentSession.Was = false; if (viewModel.MembersCount > 0) { currentSession.Members = new List<Member>(); for (int i = 0; i < viewModel.MembersCount; i++) { try { Member currentMember = db.Members.Find(Convert.ToInt32(Request.Form[string.Format("Member{0}", i)])); if (currentMember != null) currentSession.Members.Add(currentMember); } catch { } } } switch (viewModel.SessionType) { case "Consideration": currentSession = new SessionConsideration() { Dissertation = currentSession.Dissertation, Date = currentSession.Date, Was = currentSession.Was, Members = currentSession.Members }; db.SessionsСonsideration.Add(currentSession as SessionConsideration); break; case "Defence": currentSession = new SessionDefence() { Dissertation = currentSession.Dissertation, Date = currentSession.Date, Was = currentSession.Was, Members = currentSession.Members }; db.SessionsDefence.Add(currentSession as SessionDefence); break; } db.SaveChanges(); return RedirectToAction("Details", new { id = currentSession.Id }); } catch (Exception ex) { viewModel.Dissertation_Title = currentDissertation.Title; viewModel.MemberList = new List<SelectListItem>(); viewModel.MemberList.Add(new SelectListItem() { Text = "== Выберите члена совета из списка ==", Value = "-1", Selected = true }); foreach (var member in db.Members) { viewModel.MemberList.Add(new SelectListItem() { Text = member.GetFullName(), Value = member.Id.ToString() }); } ViewData.NotificationAdd(new NotificationManager.Notify() { Type = NotificationManager.Notify.NotifyType.Error, Message = ex.Message }); return View(viewModel); } }
public ActionResult Edit(UD_Granit.ViewModels.Council.Edit viewModel) { User currentUser = Session.GetUser(); if (currentUser == null) throw new HttpException(404, "Not found"); if (!RightsManager.Council.Edit(currentUser)) throw new HttpException(404, "Not found"); try { viewModel.CanDefineRoles = (db.Members.Count() >= 3); viewModel.CanDefineChairman = RightsManager.Council.ChangeChairman(currentUser); viewModel.Chairman = (viewModel.CanDefineChairman) ? viewModel.Chairman : db.Members.Where(m => m.Position == MemberPosition.Chairman).FirstOrDefault().Id; if(((viewModel.Chairman == viewModel.ViceChairman) && (viewModel.Chairman != 0)) || ((viewModel.Chairman == viewModel.Secretary) && (viewModel.Chairman != 0)) || ((viewModel.Secretary == viewModel.ViceChairman) && (viewModel.Secretary != 0))) { throw new Exception("Член совета не может иметь две роли одновременно. Пожалуйста, измените свой выбор."); } // Удаление старых руководителей var chairman = (viewModel.CanDefineChairman) ? db.Members.Where(m => (m.Position == MemberPosition.Chairman)).FirstOrDefault() : null; var viceCharman = db.Members.Where(m => (m.Position == MemberPosition.ViceChairman)).FirstOrDefault(); var secretary = db.Members.Where(m => (m.Position == MemberPosition.Secretary)).FirstOrDefault(); if ((chairman != null) && (viewModel.CanDefineChairman)) chairman.Position = MemberPosition.Member; if (viceCharman != null) viceCharman.Position = MemberPosition.Member; if (secretary != null) secretary.Position = MemberPosition.Member; db.Configuration.ValidateOnSaveEnabled = false; db.SaveChanges(); db.Configuration.ValidateOnSaveEnabled = true; // Добавление новых руководителей chairman = (viewModel.CanDefineChairman) ? db.Members.Find(viewModel.Chairman) : null; viceCharman = db.Members.Find(viewModel.ViceChairman); secretary = db.Members.Find(viewModel.Secretary); if ((chairman != null) && (viewModel.CanDefineChairman)) chairman.Position = MemberPosition.Chairman; if (viceCharman != null) viceCharman.Position = MemberPosition.ViceChairman; if (secretary != null) secretary.Position = MemberPosition.Secretary; db.Configuration.ValidateOnSaveEnabled = false; db.SaveChanges(); db.Configuration.ValidateOnSaveEnabled = true; if (currentUser is Member) Session.SetUser(db.Members.Find(currentUser.Id)); if (db.Council.Count() == 0) { db.Council.Add(viewModel.Council); } else { viewModel.Council.Id = 1; db.Entry(viewModel.Council).State = System.Data.Entity.EntityState.Modified; } db.SaveChanges(); HttpContext.Application["Name"] = viewModel.Council.Number; return RedirectToAction("Index"); } catch (Exception ex) { viewModel.Members = new List<SelectListItem>(); viewModel.Members.Add(new SelectListItem() { Text = "== Выберите члена совета из списка ==", Value = "0" }); foreach (var currentMember in db.Members) viewModel.Members.Add(new SelectListItem() { Text = currentMember.GetFullName(), Value = currentMember.Id.ToString() }); ViewData.NotificationAdd(new NotificationManager.Notify() { Type = NotificationManager.Notify.NotifyType.Error, Message = ex.Message }); return View(viewModel); } }
public ActionResult RegisterAdministrator(UD_Granit.ViewModels.Account.RegisterAdministrator viewModel) { if (!RightsManager.Account.RegisterAdministrator(Session.GetUser())) throw new HttpException(404, "Not found"); var q = from u in db.Users where u.Email == viewModel.User.Email select u; if (q.Count() > 0) { ViewData.NotificationAdd(new NotificationManager.Notify() { Type = NotificationManager.Notify.NotifyType.Error, Message = "Пользователь с таким электронным почтовым ящиком уже зарегистрирован. Пожалуйста, выберите другой email." }); return View(); } else { Administrator currentUser = viewModel.User; currentUser.RegistrationDate = DateTime.Now; db.Administrators.Add(currentUser); db.SaveChanges(); return RedirectToAction("Details", new { id = currentUser.Id }); } }