public static List <eLookupGovernorRole> GetEquivalentRole(eLookupGovernorRole role) { if (role == eLookupGovernorRole.Establishment_SharedChairOfLocalGoverningBody || role == eLookupGovernorRole.Group_SharedChairOfLocalGoverningBody) { return(new List <eLookupGovernorRole> { eLookupGovernorRole.Group_SharedChairOfLocalGoverningBody, eLookupGovernorRole.Establishment_SharedChairOfLocalGoverningBody }); } if (role == eLookupGovernorRole.Establishment_SharedLocalGovernor || role == eLookupGovernorRole.Group_SharedLocalGovernor) { return(new List <eLookupGovernorRole> { eLookupGovernorRole.Group_SharedLocalGovernor, eLookupGovernorRole.Establishment_SharedLocalGovernor }); } return(new List <eLookupGovernorRole> { role }); }
public static eLookupGovernorRole?GetLocalEquivalentToSharedRole(eLookupGovernorRole role) { if (equivalentRoles.Any(x => x.Value.Contains(role))) { return(equivalentRoles.Single(x => x.Value.Contains(role)).Key); } return(null); }
public async Task <ActionResult> SelectSharedGovernor(int establishmentUrn, eLookupGovernorRole role) { var roleName = (await _cachedLookupService.GovernorRolesGetAllAsync()).Single(x => x.Id == (int)role).Name; var governors = (await _governorsReadService.GetSharedGovernorsAsync(establishmentUrn, User)).Where(g => RoleEquivalence.GetEquivalentRole(role).Contains((eLookupGovernorRole)g.RoleId)).ToList(); var sharedGovernors = governors.Select(async g => await SharedGovernorViewModel.MapFromGovernor(g, establishmentUrn, _cachedLookupService)); var viewModel = new SelectSharedGovernorViewModel { Governors = (await Task.WhenAll(sharedGovernors)).ToList(), GovernorType = roleName.ToLowerInvariant(), }; await _layoutHelper.PopulateLayoutProperties(viewModel, establishmentUrn, null, User); return(View(viewModel)); }
public string GetGovernorRoleName(eLookupGovernorRole role, eTextCase textCase = eTextCase.SentenceCase, bool pluralise = false) { var roleName = role.ToString(); if (roleName.Contains("_")) { var index = roleName.IndexOf("_", StringComparison.Ordinal); roleName = roleName.Substring(index + 1); } var name = roleName.ToProperCase().ToTextCase(textCase); if (pluralise) { name = name.Pluralize(); } return(name); }
private async Task <bool> RoleAllowed(eLookupGovernorRole roleId, int?groupUId, int?establishmentUrn, IPrincipal user) { var existingGovernors = await _governorsReadService.GetGovernorListAsync(establishmentUrn, groupUId, user); if (EnumSets.eSingularGovernorRoles.Contains(roleId)) { if (roleId == eLookupGovernorRole.Establishment_SharedChairOfLocalGoverningBody || roleId == eLookupGovernorRole.ChairOfLocalGoverningBody) { return(!existingGovernors.CurrentGovernors.Any( g => g.RoleId == (int)eLookupGovernorRole.Establishment_SharedChairOfLocalGoverningBody || g.RoleId == (int)eLookupGovernorRole.ChairOfLocalGoverningBody)); } return(existingGovernors.CurrentGovernors.All(g => g.RoleId != (int)roleId)); } return(true); }
public static List <eLookupGovernorRole> GetEquivalentToLocalRole(eLookupGovernorRole role) { return(equivalentRoles.ContainsKey(role) ? equivalentRoles[role] : new List <eLookupGovernorRole> { role }); }
/// <summary> /// Re-instates a chair of governors as just a simple lowly governor /// </summary> /// <param name="gid"></param> /// <param name="appointmentStartDate"></param> /// <param name="appointmentEndDate"></param> /// <param name="role"></param> /// <returns></returns> public async Task ReInstateChairAsNonChairAsync(int gid, DateTime appointmentStartDate, DateTime appointmentEndDate, eLookupGovernorRole currentRole) { eLookupGovernorRole targetRole; if (currentRole == eLookupGovernorRole.ChairOfGovernors) { targetRole = eLookupGovernorRole.Governor; } else if (currentRole == eLookupGovernorRole.ChairOfLocalGoverningBody) { targetRole = eLookupGovernorRole.LocalGovernor; } else if (currentRole == eLookupGovernorRole.ChairOfTrustees) { targetRole = eLookupGovernorRole.Trustee; } else { throw new Exception("You cannot demote from role " + currentRole); } var model = await _governorsReadService.GetGovernorAsync(gid, User); model.RoleId = (int)targetRole; model.Id = null; model.AppointmentStartDate = appointmentStartDate; model.AppointmentEndDate = appointmentEndDate; model.EmailAddress = null; model.TelephoneNumber = null; await _governorsWriteService.SaveAsync(model, User); }
public async Task <GovernorDisplayPolicy> GetEditorDisplayPolicyAsync(eLookupGovernorRole role, bool isGroup, IPrincipal principal) => (await _httpClient.GetAsync <GovernorDisplayPolicy>($"governor/{(int)role}/edit-policy?isForGroup={isGroup.ToString().ToLower()}", principal)).GetResponse();
private static bool IsSharedGovernorRoleMultiSelect(eLookupGovernorRole role) { return(role == eLookupGovernorRole.Establishment_SharedLocalGovernor); }