/// <summary> /// Shows the detail. /// </summary> /// <param name="connectionOpportunityId">The connectionOpportunity identifier.</param> /// <param name="parentConnectionOpportunityId">The parent connectionOpportunity identifier.</param> public void ShowDetail( int connectionOpportunityId ) { ConnectionOpportunity connectionOpportunity = null; bool editAllowed = UserCanEdit; RockContext rockContext = new RockContext(); if ( !connectionOpportunityId.Equals( 0 ) ) { connectionOpportunity = GetConnectionOpportunity( connectionOpportunityId, rockContext ); } if ( connectionOpportunity == null ) { connectionOpportunity = new ConnectionOpportunity { Id = 0, IsActive = true, Name = "" }; connectionOpportunity.ConnectionType = new ConnectionTypeService( rockContext ).Get( PageParameter( "ConnectionTypeId" ).AsInteger() ); } // Only users that have Edit rights to block, or edit rights to the calendar (from query string) should be able to edit if ( !editAllowed ) { var connectionType = new ConnectionTypeService( rockContext ).Get( _connectionTypeId ); if ( connectionType != null ) { editAllowed = connectionType.IsAuthorized( Authorization.EDIT, CurrentPerson ); } } bool readOnly = true; if ( !editAllowed ) { // User is not authorized nbEditModeMessage.Text = EditModeMessage.ReadOnlyEditActionNotAllowed( ConnectionOpportunity.FriendlyTypeName ); } else { nbEditModeMessage.Text = string.Empty; if ( connectionOpportunity.Id != 0 && !( connectionOpportunity.ConnectionTypeId == _connectionTypeId ) ) { // Item does not belong to calendar nbIncorrectOpportunity.Visible = true; } else { readOnly = false; } } pnlDetails.Visible = !readOnly; this.HideSecondaryBlocks( !readOnly ); if ( !readOnly ) { hfConnectionOpportunityId.Value = connectionOpportunity.Id.ToString(); ShowEditDetails( connectionOpportunity ); } }