public ActionResult School(int id = 0) { ViewBag.Edit = id != 0; List <Address> addresses; using (var repository = new NHGetAllRepository <Address>()) { addresses = repository.GetAll().ToList(); } var listAddress = (IEnumerable <SelectListItem>) new SelectList(addresses, "Id", "FullAddress"); List <SchoolType> types; using (var repository = new NHGetAllRepository <SchoolType>()) { types = repository.GetAll().ToList(); } var listType = (IEnumerable <SelectListItem>) new SelectList(types, "Id", "Name"); SchoolDto school = new SchoolDto(); if (id != 0) { using (var repository = new NHRepository <School>()) { var t = repository.Get(id); school = new SchoolDto() { Id = t.Id, Address = t.Addresses.ToList()[0].Id, Name = t.Name, Type = t.Type.Id }; } listAddress = addresses.Select(x => new SelectListItem() { Text = x.FullAddress, Selected = x.Id == school.Address, Value = x.Id.ToString() }); listType = types.Select(x => new SelectListItem() { Text = x.Name, Selected = x.Id == school.Type, Value = x.Id.ToString() }); } ViewData["Address"] = listAddress; ViewData["Type"] = listType; return(View(school)); }
public ActionResult School(SchoolDto school) { List <Address> addresses; using (var repository = new NHGetAllRepository <Address>()) { addresses = repository.GetAll().ToList(); } var list = (IEnumerable <SelectListItem>) new SelectList(addresses, "Id", "FullAddress"); ViewData["Address"] = list; List <SchoolType> types; using (var repository = new NHGetAllRepository <SchoolType>()) { types = repository.GetAll().ToList(); } ViewData["Type"] = new SelectList(types, "Id", "Name"); ViewBag.Edit = school.Id != 0; if (school.Name.IsNullOrEmpty()) { ModelState.AddModelError("Name", "Поле не может быть пустым"); } if (school.Address == 0) { ModelState.AddModelError("Address", "Поле не может быть пустым"); } if (!ModelState.IsValid) { return(View(school)); } var session = NHibernateHelper.OpenSession(); using (var tx = session.BeginTransaction()) { var address = session.Query <Address>().First(x => x.Id == school.Address); var type = session.Query <SchoolType>().First(x => x.Id == school.Type); var entity = new School() { Id = school.Id, Name = school.Name, Addresses = new List <Address>() { address }, Type = type }; session.SaveOrUpdate(entity); tx.Commit(); } return(RedirectToAction("Index")); }