public async Task <IActionResult> Edit(int id, EditPersonVM personVM) { if (id != personVM.Person.Id) { return(NotFound()); } switch (personVM.Role.ToString()) { case "Student": personVM.Person.Student = new Student(); break; case "Teacher": personVM.Person.Employee = new Employee(); personVM.Person.Employee.isTeacher = true; break; case "Other": personVM.Person.Employee = new Employee(); personVM.Person.Employee.isTeacher = false; break; default: throw new Exception("Coś poszło nie tak, zła rola!"); } if (ModelState.IsValid) { try { _context.People.Update(personVM.Person); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PersonExists(id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } List <SelectListItem> roleList = PopulateRoleList(); ViewData["Roles"] = new SelectList(roleList, "Value", "Text", personVM.Role.Value); return(View(personVM)); }
public IActionResult Edit(int id, EditPersonVM model) { if (ModelState.IsValid) { var person = _people.Read(id); person.FirstName = model.FirstName; person.MiddleName = model.MiddleName; person.LastName = model.LastName; person.Email = model.Email; _people.Update(id, person); return(RedirectToAction("Index")); } return(View()); }
// GET: People/Edit/5 public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var person = await _context.People.Include(p => p.Employee).SingleOrDefaultAsync(m => m.Id == id); if (person == null) { return(NotFound()); } Role role; if (person.EmployeeID != null) { if (person.Employee.isTeacher) { role = Role.Teacher; } else { role = Role.Other; } } else if (person.StudentID != null) { role = Role.Student; } else { role = new Role(); } var vm = new EditPersonVM { Person = person, Role = role }; List <SelectListItem> roleList = PopulateRoleList(); ViewData["Roles"] = new SelectList(roleList, "Value", "Text", vm.Role); return(View(vm)); }