public IActionResult Edit(int?id, string returnUrl) { if (id == null) { return(NotFound()); } Member member = unitOfWork.Members.GetMemberWithDemographicsAndDutyStatus(Convert.ToInt32(id)); if (member == null) { return(NotFound()); } MemberAddEditViewModel vm = new MemberAddEditViewModel(member, unitOfWork.Positions.GetAllPositionSelectListItems(), unitOfWork.MemberRanks.GetMemberRankSelectListItems(), unitOfWork.MemberGenders.GetMemberGenderSelectListItems(), unitOfWork.MemberRaces.GetMemberRaceSelectListItems(), unitOfWork.MemberDutyStatus.GetMemberDutyStatusSelectListItems(), unitOfWork.PhoneNumberTypes.GetPhoneNumberTypeSelectListItems(), unitOfWork.AppStatuses.GetApplicationStatusSelectListItems()); ViewBag.Title = "Edit Member"; ViewBag.ReturnUrl = returnUrl; return(View(vm)); }
public IActionResult Register([Bind("FirstName,LastName,MiddleName,MemberRank,DutyStatusId,MemberRace,MemberGender,PositionId,IdNumber,Email,LDAPName,AppStatusId,ContactNumbers")] MemberAddEditViewModel form) { if (!ModelState.IsValid) { form.Positions = unitOfWork.Positions.GetAllPositionSelectListItems(); form.RaceList = unitOfWork.MemberRaces.GetMemberRaceSelectListItems(); form.RankList = unitOfWork.MemberRanks.GetMemberRankSelectListItems(); form.GenderList = unitOfWork.MemberGenders.GetMemberGenderSelectListItems(); form.DutyStatus = unitOfWork.MemberDutyStatus.GetMemberDutyStatusSelectListItems(); form.PhoneNumberTypes = unitOfWork.PhoneNumberTypes.GetPhoneNumberTypeSelectListItems(); ViewBag.Title = "Create Member - Corrections Required"; ViewBag.Status = "Warning!"; ViewBag.Message = "You must correct the fields indicated."; return(View(form)); } else { var identity = (ClaimsIdentity)User.Identity; form.LastModified = DateTime.Now; form.CreatedDate = DateTime.Now; form.CreatedById = 1; // hack... just set this to me for new registrations form.LastModifiedById = 1; // TODO: Member addition checks? Duplicate Name/Badge Numbers? unitOfWork.Members.UpdateMember(form); unitOfWork.Complete(); return(RedirectToAction(nameof(Pending))); } }
public IActionResult Create([Bind( "FirstName," + "LastName," + "MiddleName," + "MemberRank," + "DutyStatusId," + "MemberRace," + "MemberGender," + "PositionId," + "TempPositionId," + "IdNumber," + "Email," + "LDAPName," + "AppStatusId," + "ContactNumbers," + "IsUser," + "IsComponentAdmin," + "IsGlobalAdmin") ] MemberAddEditViewModel form, string returnUrl) { if (!ModelState.IsValid) { form.Positions = unitOfWork.Positions.GetAllPositionSelectListItems(); form.RaceList = unitOfWork.MemberRaces.GetMemberRaceSelectListItems(); form.RankList = unitOfWork.MemberRanks.GetMemberRankSelectListItems(); form.GenderList = unitOfWork.MemberGenders.GetMemberGenderSelectListItems(); form.DutyStatus = unitOfWork.MemberDutyStatus.GetMemberDutyStatusSelectListItems(); form.PhoneNumberTypes = unitOfWork.PhoneNumberTypes.GetPhoneNumberTypeSelectListItems(); form.AppStatuses = unitOfWork.AppStatuses.GetApplicationStatusSelectListItems(); ViewBag.Title = "Create Member - Corrections Required"; ViewBag.Status = "Warning!"; ViewBag.Message = "You must correct the fields indicated."; return(View(form)); } else { // TODO: Member addition checks? Duplicate Name/Badge Numbers? form.CreatedById = Convert.ToInt32(User.Claims.FirstOrDefault(claim => claim.Type == "MemberId").Value); form.LastModifiedById = Convert.ToInt32(User.Claims.FirstOrDefault(claim => claim.Type == "MemberId").Value); form.CreatedDate = DateTime.Now; form.LastModified = DateTime.Now; unitOfWork.Members.UpdateMember(form); unitOfWork.Complete(); TempData["Status"] = "Success!"; TempData["Message"] = "Member successfully created."; if (returnUrl != "") { return(Redirect(returnUrl)); } else { return(RedirectToAction(nameof(Index))); } } }
// EditEmployeeModalViewModalViewComponent public IActionResult GetEditEmployeeModalViewComponent(int memberId) { Member m = unitOfWork.Members.GetMemberWithDemographicsAndDutyStatus(memberId); MemberAddEditViewModel vm = new MemberAddEditViewModel(m, unitOfWork.MemberRanks.GetMemberRankSelectListItems(), unitOfWork.MemberGenders.GetMemberGenderSelectListItems(), unitOfWork.MemberRaces.GetMemberRaceSelectListItems(), unitOfWork.MemberDutyStatus.GetMemberDutyStatusSelectListItems(), unitOfWork.PhoneNumberTypes.GetPhoneNumberTypeSelectListItems(), unitOfWork.AppStatuses.GetApplicationStatusSelectListItems()); return(ViewComponent("EditMemberModal", vm)); }
public IActionResult Create(string returnUrl) { MemberAddEditViewModel vm = new MemberAddEditViewModel(new Member(), unitOfWork.Positions.GetAllPositionSelectListItems(), unitOfWork.MemberRanks.GetMemberRankSelectListItems(), unitOfWork.MemberGenders.GetMemberGenderSelectListItems(), unitOfWork.MemberRaces.GetMemberRaceSelectListItems(), unitOfWork.MemberDutyStatus.GetMemberDutyStatusSelectListItems(), unitOfWork.PhoneNumberTypes.GetPhoneNumberTypeSelectListItems(), unitOfWork.AppStatuses.GetApplicationStatusSelectListItems()); ViewBag.Title = "Create New Member"; ViewBag.ReturnUrl = returnUrl; return(View(vm)); }
public IActionResult EditMemberModal([Bind("MemberId,MemberRank,MemberGender,MemberRace,FirstName,LastName,MiddleName,IdNumber,PositionId,TempPositionId,AppStatusId,LDAPName,IsUser,IsComponentAdmin,IsGlobalAdmin,DutyStatusId,Email,ContactNumbers")] MemberAddEditViewModel form) { if (ModelState.IsValid) { form.LastModifiedById = Convert.ToInt32(User.Claims.FirstOrDefault(claim => claim.Type == "MemberId").Value); form.LastModified = DateTime.Now; unitOfWork.Members.UpdateMember(form); unitOfWork.Complete(); return(Json(new { success = true })); } else { Member m = unitOfWork.Members.GetMemberWithDemographicsAndDutyStatus(Convert.ToInt32(form.MemberId)); MemberAddEditViewModel vm = new MemberAddEditViewModel(m, unitOfWork.MemberRanks.GetMemberRankSelectListItems(), unitOfWork.MemberGenders.GetMemberGenderSelectListItems(), unitOfWork.MemberRaces.GetMemberRaceSelectListItems(), unitOfWork.MemberDutyStatus.GetMemberDutyStatusSelectListItems(), unitOfWork.PhoneNumberTypes.GetPhoneNumberTypeSelectListItems(), unitOfWork.AppStatuses.GetApplicationStatusSelectListItems()); return(ViewComponent("EditMemberModal", vm)); } }
public IActionResult Register() { var identity = User.Identities.FirstOrDefault(x => x.IsAuthenticated); string logonName = identity.Name.Split('\\')[1]; int pendingStatusId = unitOfWork.AppStatuses.Find(x => x.StatusName == "Pending").FirstOrDefault()?.AppStatusId ?? 0; Member newMember = new Member() { Email = $"{logonName}@co.pg.md.us", LDAPName = logonName, AppStatusId = pendingStatusId }; MemberAddEditViewModel vm = new MemberAddEditViewModel(newMember, unitOfWork.Positions.GetAllPositionSelectListItems(), unitOfWork.MemberRanks.GetMemberRankSelectListItems(), unitOfWork.MemberGenders.GetMemberGenderSelectListItems(), unitOfWork.MemberRaces.GetMemberRaceSelectListItems(), unitOfWork.MemberDutyStatus.GetMemberDutyStatusSelectListItems(), unitOfWork.PhoneNumberTypes.GetPhoneNumberTypeSelectListItems(), unitOfWork.AppStatuses.GetApplicationStatusSelectListItems()); ViewBag.Title = "Register"; return(View(vm)); }
public IViewComponentResult Invoke(MemberAddEditViewModel vm) { return(View(vm)); }
public IActionResult Edit(int id, [Bind( "MemberId," + "FirstName," + "LastName," + "MiddleName," + "MemberRank," + "DutyStatusId," + "MemberGender," + "MemberRace," + "PositionId," + "TempPositionId," + "IdNumber," + "Email," + "LDAPName," + "AppStatusId," + "ContactNumbers," + "IsUser," + "IsComponentAdmin," + "IsGlobalAdmin," + "Creator," + "CreatedDate," + "LastModifiedBy," + "LastModified")] MemberAddEditViewModel form, string returnUrl) { if (!ModelState.IsValid) { // Model Validation failed, repopulate the ViewModel's List data and return the View form.Positions = unitOfWork.Positions.GetAllPositionSelectListItems(); form.RaceList = unitOfWork.MemberRaces.GetMemberRaceSelectListItems(); form.RankList = unitOfWork.MemberRanks.GetMemberRankSelectListItems(); form.GenderList = unitOfWork.MemberGenders.GetMemberGenderSelectListItems(); form.DutyStatus = unitOfWork.MemberDutyStatus.GetMemberDutyStatusSelectListItems(); form.AppStatuses = unitOfWork.AppStatuses.GetApplicationStatusSelectListItems(); form.PhoneNumberTypes = unitOfWork.PhoneNumberTypes.GetPhoneNumberTypeSelectListItems(); ViewBag.Title = "Edit Member - Corrections Required"; ViewBag.Status = "Warning!"; ViewBag.Message = "You must correct the fields indicated."; ViewBag.ReturnUrl = returnUrl; return(View(form)); } else { try { form.LastModifiedById = Convert.ToInt32(User.Claims.FirstOrDefault(claim => claim.Type == "MemberId").Value); form.LastModified = DateTime.Now; unitOfWork.Members.UpdateMember(form); unitOfWork.Complete(); } catch (DbUpdateConcurrencyException) { if (!MemberExists(id)) { return(NotFound()); } else { throw; } } TempData["Status"] = "Success!"; TempData["Message"] = "Member successfully updated."; if (returnUrl != null) { return(Redirect(returnUrl)); } return(RedirectToAction(nameof(Index))); } }
public void UpdateMember(MemberAddEditViewModel form) { Member m; if (form.MemberId != null) // if MemberId is not null, we are editing an existing Member { m = ApplicationDbContext.Members .Include(x => x.PhoneNumbers) .Include(x => x.CurrentRoles) .FirstOrDefault(x => x.MemberId == form.MemberId); } else { m = new Member(); m.CurrentRoles = new List <Role>(); m.CreatorId = form.CreatedById; m.CreatedDate = Convert.ToDateTime(form.CreatedDate); } /* there are a few things that can happen at this point: * 1. This is a new Member, which means there are no Roles * - Check for a Position/Temp Position assignment in the form data * -if no Position/Temp Position, then * 1. Position should be set to the "Unassigned" * 2. Temp Position should be null * 2. This is an existing Member, which means there MAY be roles * - Check for a Position/Temp Position assignment in the form data * - if no Position/Temp Position, assume the member is to be reassigned to the General Pool * - if so, remove Component Admin Role (Leave Global Admin Role... global should be de-coupled from assignment * - if a Position/Temp Position exists and Neither has ComponentAdmin privilege, check for and Remove the ComponentAdmin role from the Member's CurrentRoles * - if a Position/Temp Position exists and Either has ComponentAdmin privilge, check for and, if necessary, add the Component Admin role to the Member's Current Roles. * * An easy way to do this might be by simply switching the form's "checkbox" property corresponding to the Component Admin role in these cases. * */ if (form.PositionId != null) { m.PositionId = Convert.ToInt32(form.PositionId); if (m.AppStatusId == 3 || form.AppStatusId == 3) // I only want to add Roles to Active Accounts or Accounts being activated. { Position formAssignedPosition = ApplicationDbContext.Positions.Find(form.PositionId); Position formAssignedTempPosition = ApplicationDbContext.Positions.Find(form.TempPositionId); // how will this behave if null? if (formAssignedPosition.IsManager == true || formAssignedPosition.IsAssistantManager == true || formAssignedTempPosition?.IsManager == true || formAssignedTempPosition?.IsAssistantManager == true) { // these positions require ComponentAdmin Privilege form.IsComponentAdmin = true; } else { form.IsComponentAdmin = false; } } } else if (m.PositionId == 0) { Position unassigned = ApplicationDbContext.Positions.FirstOrDefault(x => x.Name == "Unassigned"); if (unassigned != null) { m.Position = unassigned; } form.IsComponentAdmin = false; } m.TempPositionId = form.TempPositionId; m.RankId = Convert.ToInt32(form.MemberRank); m.GenderId = Convert.ToInt32(form.MemberGender); m.RaceId = Convert.ToInt32(form.MemberRace); m.DutyStatusId = Convert.ToInt32(form.DutyStatusId); m.AppStatusId = Convert.ToInt32(form.AppStatusId); m.Email = form.Email; m.FirstName = form.FirstName; m.IdNumber = form.IdNumber; m.MiddleName = form.MiddleName; m.LastName = form.LastName; m.LDAPName = form.LDAPName; m.LastModified = Convert.ToDateTime(form.LastModified); m.LastModifiedById = form.LastModifiedById; // remove ALL roles from non-active accounts // at this point, the repo Member m data and the form data should match, so I can check the repo Member AppStatus activeStatus = ApplicationDbContext.ApplicationStatuses.FirstOrDefault(x => x.StatusName == "Active"); if (m.AppStatusId != activeStatus?.AppStatusId) { // these will override the checkboxes on the form. form.IsUser = false; form.IsComponentAdmin = false; } else { form.IsUser = true; } foreach (ContactNumber n in form.ContactNumbers) { if (n.MemberContactNumberId != 0) { if (n.ToDelete == true) { ContactNumber toRemove = ApplicationDbContext.ContactNumbers.Where(x => x.MemberContactNumberId == n.MemberContactNumberId).FirstOrDefault(); ApplicationDbContext.ContactNumbers.Remove(toRemove); } else { ContactNumber toUpdate = m.PhoneNumbers.FirstOrDefault(x => x.MemberContactNumberId == n.MemberContactNumberId); toUpdate.PhoneNumber = n.PhoneNumber; toUpdate.Type = ApplicationDbContext.PhoneNumberTypes.FirstOrDefault(x => x.PhoneNumberTypeId == n.Type.PhoneNumberTypeId); } } else if (n.PhoneNumber != null) { ContactNumber toAdd = new ContactNumber() { Member = m, PhoneNumber = n.PhoneNumber, Type = ApplicationDbContext.PhoneNumberTypes.FirstOrDefault(x => x.PhoneNumberTypeId == n.Type.PhoneNumberTypeId) }; m.PhoneNumbers.Add(toAdd); } } if (form.MemberId == null) { ApplicationDbContext.Members.Add(m); } switch (form.IsUser) { case true: if (!m.CurrentRoles.Any(x => x.RoleType.RoleTypeName == "User")) { RoleType userRoleType = ApplicationDbContext.RoleTypes.First(x => x.RoleTypeName == "User"); Role r = new Role() { RoleType = userRoleType }; m.CurrentRoles.Add(r); } break; case false: Role userRole = m.CurrentRoles.FirstOrDefault(x => x.RoleType.RoleTypeName == "User"); if (userRole != null) { ApplicationDbContext.Roles.Remove(userRole); } break; } switch (form.IsComponentAdmin) { case true: if (!m.CurrentRoles.Any(x => x.RoleType.RoleTypeName == "ComponentAdmin")) { RoleType userRoleType = ApplicationDbContext.RoleTypes.First(x => x.RoleTypeName == "ComponentAdmin"); Role r = new Role() { RoleType = userRoleType }; m.CurrentRoles.Add(r); } break; case false: Role userRole = m.CurrentRoles.FirstOrDefault(x => x.RoleType.RoleTypeName == "ComponentAdmin"); if (userRole != null) { ApplicationDbContext.Roles.Remove(userRole); } break; } switch (form.IsGlobalAdmin) { case true: if (!m.CurrentRoles.Any(x => x.RoleType.RoleTypeName == "GlobalAdmin")) { RoleType userRoleType = ApplicationDbContext.RoleTypes.First(x => x.RoleTypeName == "GlobalAdmin"); Role r = new Role() { RoleType = userRoleType }; m.CurrentRoles.Add(r); } break; case false: Role userRole = m.CurrentRoles.FirstOrDefault(x => x.RoleType.RoleTypeName == "GlobalAdmin"); if (userRole != null) { ApplicationDbContext.Roles.Remove(userRole); } break; } }