[Authorize(Roles = "L4_DeliverMan, L5_GeneralStaff,Guest")] //level 4 ,5 and register User access only public async Task <IActionResult> VolunteerEdit(int?volunteerId, string userEmail) { if (volunteerId == null) { return(NotFound()); } var volunteer = await _context.Volunteer.FindAsync(volunteerId); var volunteerEC = await _context.VolunteerEmergencyContact.FindAsync(volunteerId); if (volunteer != null) { if (volunteer.Email != userEmail) { ModelState.AddModelError(string.Empty, "Volunteer Info Email 与 AppUser Name 不一致"); //return RedirectToRoute(new {area = "Identity",controller="" pages = "/Account/Manage/Index"}); return(Redirect("/Identity/Account/Manage")); // return NotFound();// 无法编辑别的志愿者 } else//打包 { ViewData["BranchId"] = new SelectList(_context.Branch, "BranchId", "Name", volunteer.BranchId); ViewData["RoleId"] = new SelectList(_context.VolunteerRole, "RoleId", "RoleName", volunteer.RoleId); ViewData["StatusId"] = new SelectList(_context.VolunteerStatus, "StatusId", "Content", volunteer.StatusId); var vEvm = new VolunteerEditViewModel { VolunteerId = volunteer.VolunteerId, FirstName = volunteer.FirstName, LastName = volunteer.LastName, Dob = volunteer.Dob, Email = volunteer.Email, PreferredPhone = volunteer.PreferredPhone, AlternativePhone = volunteer.AlternativePhone, Address = volunteer.Address, TownCity = volunteer.TownCity, PostCode = volunteer.PostCode, StatusId = volunteer.StatusId, BranchId = volunteer.BranchId, RoleId = volunteer.RoleId, IsAssignedUserAccount = volunteer.IsAssignedUserAccount }; if (volunteerEC != null) { vEvm.EFirstName = volunteerEC.FirstName; vEvm.ELastName = volunteerEC.LastName; vEvm.EPhoneNumber = volunteerEC.PhoneNumber; vEvm.ERelationship = volunteerEC.Relationship; } // volunteer. return(View(vEvm)); } } // return(RedirectToAction("Index")); }
public async Task <IActionResult> VolunteerEdit(int volunteerId, VolunteerEditViewModel vVM) { if (volunteerId != vVM.VolunteerId) { return(NotFound()); } if (ModelState.IsValid) { try { //vVM 转为 volunteer 和 EVolunteerContact //如果 EVolunteerContact 查找不存在,创建 // _context.Update(vVM); var vol = await _context.Volunteer.FindAsync(vVM.VolunteerId); if (vol != null) { vol.VolunteerId = vVM.VolunteerId; vol.FirstName = vVM.FirstName; vol.LastName = vVM.LastName; vol.Dob = vVM.Dob; vol.Email = vVM.Email; vol.PreferredPhone = vVM.PreferredPhone; vol.AlternativePhone = vVM.AlternativePhone; vol.Address = vVM.Address; vol.TownCity = vVM.TownCity; vol.PostCode = vVM.PostCode; vol.StatusId = vVM.StatusId; vol.BranchId = vVM.BranchId; vol.RoleId = vVM.RoleId; vol.IsAssignedUserAccount = vVM.IsAssignedUserAccount; } var evol = await _context.VolunteerEmergencyContact.FindAsync(vVM.VolunteerId); if (evol != null) { evol.FirstName = vVM.EFirstName; evol.LastName = vVM.ELastName; evol.PhoneNumber = vVM.EPhoneNumber; evol.Relationship = vVM.ERelationship; } else { _context.Add(new VolunteerEmergencyContact { VolunteerId = vVM.VolunteerId, FirstName = vVM.EFirstName, LastName = vVM.ELastName, PhoneNumber = vVM.EPhoneNumber, Relationship = vVM.ERelationship }); } await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!VolunteerExists(vVM.VolunteerId)) { return(NotFound()); } else { throw; } } vVM.StatusMessage = "Your Volunteer Info has been saved !"; ViewData["BranchId"] = new SelectList(_context.Branch, "BranchId", "Name", vVM.BranchId); ViewData["RoleId"] = new SelectList(_context.VolunteerRole, "RoleId", "RoleName", vVM.RoleId); ViewData["StatusId"] = new SelectList(_context.VolunteerStatus, "StatusId", "Content", vVM.StatusId); return(View(vVM)); } ViewData["BranchId"] = new SelectList(_context.Branch, "BranchId", "Name", vVM.BranchId); ViewData["RoleId"] = new SelectList(_context.VolunteerRole, "RoleId", "RoleName", vVM.RoleId); ViewData["StatusId"] = new SelectList(_context.VolunteerStatus, "StatusId", "Content", vVM.StatusId); vVM.StatusMessage = "Oops, Something went wrong ! "; return(View(vVM)); }