public IndexViewData(Person currentPerson) : base(currentPerson) { PageTitle = "Users and Contacts"; GridSpec = new IndexGridSpec(currentPerson) { ObjectNameSingular = "Person", ObjectNamePlural = "People", SaveFiltersInCookie = true }; GridName = "UserGrid"; GridDataUrl = SitkaRoute <UserController> .BuildUrlFromExpression(tc => tc.IndexGridJsonData()); SAWUrl = FirmaWebConfiguration.SAWUrl; UserIsSitkaAdmin = new SitkaAdminFeature().HasPermissionByPerson(currentPerson); AddContactUrl = SitkaRoute <UserController> .BuildUrlFromExpression(x => x.AddContact()); UserCanAddContact = new ContactCreateAndViewFeature().HasPermissionByPerson(currentPerson); }
public DetailViewData(Person currentPerson, Person personToView, ProjectInfoForUserDetailGridSpec basicProjectInfoGridSpec, string basicProjectInfoGridName, string basicProjectInfoGridDataUrl, UserNotificationGridSpec userNotificationGridSpec, string userNotificationGridName, string userNotificationGridDataUrl, string activateInactivateUrl, bool atLeastOneAgreementHasFile) : base(currentPerson) { Person = personToView; PersonIsMereContact = !personToView.IsFullUser(); PageTitle = personToView.FullNameFirstLast + (!personToView.IsActive ? " (inactive)" : string.Empty); EntityName = "User"; //TODO: This gets pulled up to root EditPersonOrganizationPrimaryContactUrl = SitkaRoute <PersonOrganizationController> .BuildUrlFromExpression(c => c.EditPersonOrganizationPrimaryContacts(personToView)); Index = SitkaRoute <UserController> .BuildUrlFromExpression(x => x.Index()); UserHasPersonViewPermissions = new UserViewFeature().HasPermission(currentPerson, personToView).HasPermission; UserHasEditBasicsPermission = new UserEditBasicsFeature().HasPermission(currentPerson, personToView).HasPermission; UserCanViewAndCreateNewContacts = new ContactCreateAndViewFeature().HasPermissionByPerson(currentPerson); UserHasViewEverythingPermissions = new FirmaAdminFeature().HasPermissionByPerson(currentPerson); IsViewingSelf = currentPerson != null && currentPerson.PersonID == personToView.PersonID; UserHasAdminPermission = new UserEditAsAdminFeature().HasPermissionByPerson(currentPerson); EditRolesLink = UserHasAdminPermission ? ModalDialogFormHelper.MakeEditIconLink(SitkaRoute <UserController> .BuildUrlFromExpression(c => c.EditRoles(personToView)), $"Edit Roles for User - {personToView.FullNameFirstLast}", true) : new HtmlString(string.Empty); AuthenticatorsDisplayString = string.Join(", ", Person.PersonAllowedAuthenticators.OrderBy(x => x.Authenticator.AuthenticatorFullName).Select(x => $"{x.Authenticator.AuthenticatorFullName} ({x.Authenticator.AuthenticatorName})")); BasicProjectInfoGridSpec = basicProjectInfoGridSpec; BasicProjectInfoGridName = basicProjectInfoGridName; BasicProjectInfoGridDataUrl = basicProjectInfoGridDataUrl; UserNotificationGridSpec = userNotificationGridSpec; UserNotificationGridName = userNotificationGridName; UserNotificationGridDataUrl = userNotificationGridDataUrl; ActivateInactivateUrl = activateInactivateUrl; TenantHasStewardshipAreas = MultiTenantHelpers.GetProjectStewardshipAreaType() != null; EditContactUrl = SitkaRoute <UserController> .BuildUrlFromExpression(x => x.EditContact(personToView)); ProjectsForWhichUserIsAContactGridTitle = personToView.IsFullUser() ? $"{Models.FieldDefinition.Project.GetFieldDefinitionLabelPluralized()} for which {Person.FullNameFirstLast} is an {Models.FieldDefinition.OrganizationPrimaryContact.GetFieldDefinitionLabel()}" : $"{Models.FieldDefinition.Project.GetFieldDefinitionLabelPluralized()} for which {Person.FullNameFirstLast} is a {Models.FieldDefinition.Contact.GetFieldDefinitionLabel()}"; AgreementsForWhichUserIsAContactGridTitle = personToView.IsFullUser() ? $"{Models.FieldDefinition.Agreement.GetFieldDefinitionLabelPluralized()} for which {Person.FullNameFirstLast} is an {Models.FieldDefinition.OrganizationPrimaryContact.GetFieldDefinitionLabel()}" : $"{Models.FieldDefinition.Agreement.GetFieldDefinitionLabelPluralized()} for which {Person.FullNameFirstLast} is a {Models.FieldDefinition.Contact.GetFieldDefinitionLabel()}"; UserAgreementsGridSpec = new AgreementGridSpec(CurrentPerson, atLeastOneAgreementHasFile, false, false) { CustomExcelDownloadUrl = SitkaRoute <UserController> .BuildUrlFromExpression(tc => tc.UserAgreementsExcelDownload(personToView.PrimaryKey)) }; UserAgreementsGridName = "userAgreementsFromUserGrid"; UserAgreementsGridDataUrl = SitkaRoute <UserController> .BuildUrlFromExpression( tc => tc.UserAgreementsGridJsonData(personToView)); InteractionEventsForWhichUserIsAContactGridTitle = $"{Models.FieldDefinition.InteractionEvent.GetFieldDefinitionLabelPluralized()} for which {Person.FullNameFirstLast} is a {Models.FieldDefinition.Contact.GetFieldDefinitionLabel()}"; UserInteractionEventsGridSpec = new InteractionEventGridSpec(CurrentPerson, personToView); UserInteractionEventsGridName = "userInteractionEventsFromUserGrid"; UserInteractionEventsGridDataUrl = SitkaRoute <UserController> .BuildUrlFromExpression(x => x.UserInteractionEventsGridJsonData(personToView)); }