/// <summary> /// Handles the Delete event of the gCategories control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RowEventArgs" /> instance containing the event data.</param> protected void gCategories_Delete( object sender, RowEventArgs e ) { var rockContext = new RockContext(); var service = new CategoryService( rockContext ); var category = service.Get( e.RowKeyId ); if ( category != null ) { string errorMessage = string.Empty; if ( service.CanDelete( category, out errorMessage ) ) { int categoryId = category.Id; service.Delete( category ); rockContext.SaveChanges(); CategoryCache.Flush( categoryId ); } else { nbMessage.Text = errorMessage; nbMessage.Visible = true; } } BindGrid(); }
/// <summary> /// Handles the Delete event of the rGrid control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RowEventArgs" /> instance containing the event data.</param> protected void rGrid_Delete( object sender, RowEventArgs e ) { var rockContext = new RockContext(); var service = new CategoryService( rockContext ); var category = service.Get( (int)rGrid.DataKeys[e.RowIndex]["id"] ); if ( category != null ) { string errorMessage = string.Empty; if ( service.CanDelete( category, out errorMessage ) ) { service.Delete( category ); rockContext.SaveChanges(); } else { nbMessage.Text = errorMessage; nbMessage.Visible = true; } } BindGrid(); }
/// <summary> /// Handles the Delete event of the gCategories control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RowEventArgs" /> instance containing the event data.</param> protected void gCategories_Delete( object sender, RowEventArgs e ) { var service = new CategoryService(); var category = service.Get( (int)gCategories.DataKeys[e.RowIndex]["id"] ); if ( category != null ) { string errorMessage = string.Empty; if ( service.CanDelete( category, out errorMessage ) ) { service.Delete( category, CurrentPersonId ); service.Save( category, CurrentPersonId ); } else { nbMessage.Text = errorMessage; nbMessage.Visible = true; } } BindGrid(); }
/// <summary> /// Shows the detail. /// </summary> /// <param name="categoryId">The category identifier.</param> /// <param name="parentCategoryId">The parent category id.</param> public void ShowDetail( int categoryId, int? parentCategoryId ) { pnlDetails.Visible = false; var categoryService = new CategoryService( new RockContext() ); Category category = null; if ( !categoryId.Equals( 0 ) ) { category = categoryService.Get( categoryId ); } if ( category == null ) { category = new Category { Id = 0, IsSystem = false, ParentCategoryId = parentCategoryId}; // fetch the ParentCategory (if there is one) so that security can check it category.ParentCategory = categoryService.Get( parentCategoryId ?? 0 ); category.EntityTypeId = entityTypeId; category.EntityTypeQualifierColumn = entityTypeQualifierProperty; category.EntityTypeQualifierValue = entityTypeQualifierValue; } if (category.EntityTypeId != entityTypeId || !category.IsAuthorized( Authorization.VIEW, CurrentPerson ) ) { pnlDetails.Visible = false; return; } pnlDetails.Visible = true; hfCategoryId.Value = category.Id.ToString(); // render UI based on Authorized and IsSystem bool readOnly = false; nbEditModeMessage.Text = string.Empty; // if the person is Authorized to EDIT the category, or has EDIT for the block var canEdit = category.IsAuthorized( Authorization.EDIT, CurrentPerson ) || this.IsUserAuthorized(Authorization.EDIT); if ( !canEdit ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlyEditActionNotAllowed( Category.FriendlyTypeName ); } if ( category.IsSystem ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlySystem( Category.FriendlyTypeName ); } btnSecurity.Visible = category.IsAuthorized( Authorization.ADMINISTRATE, CurrentPerson ); btnSecurity.Title = category.Name; btnSecurity.EntityId = category.Id; if ( readOnly ) { btnEdit.Visible = false; btnDelete.Visible = false; ShowReadonlyDetails( category ); } else { btnEdit.Visible = true; string errorMessage = string.Empty; btnDelete.Visible = true; btnDelete.Enabled = categoryService.CanDelete(category, out errorMessage); btnDelete.ToolTip = btnDelete.Enabled ? string.Empty : errorMessage; if ( category.Id > 0 ) { ShowReadonlyDetails( category ); } else { ShowEditDetails( category ); } } if ( btnDelete.Visible && btnDelete.Enabled ) { btnDelete.Attributes["onclick"] = string.Format( "javascript: return Rock.dialogs.confirmDelete(event, '{0}');", Category.FriendlyTypeName.ToLower() ); } }
/// <summary> /// Handles the Click event of the btnDelete control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> protected void btnDelete_Click( object sender, EventArgs e ) { int? parentCategoryId = null; var rockContext = new RockContext(); var categoryService = new CategoryService( rockContext ); var category = categoryService.Get( int.Parse( hfCategoryId.Value ) ); if ( category != null ) { string errorMessage; if ( !categoryService.CanDelete( category, out errorMessage ) ) { ShowReadonlyDetails( category ); mdDeleteWarning.Show( errorMessage, ModalAlertType.Information ); } else { parentCategoryId = category.ParentCategoryId; CategoryCache.Flush( category.Id ); categoryService.Delete( category ); rockContext.SaveChanges(); // reload page, selecting the deleted category's parent var qryParams = new Dictionary<string, string>(); if ( parentCategoryId != null ) { qryParams["CategoryId"] = parentCategoryId.ToString(); } NavigateToPage( RockPage.Guid, qryParams ); } } }
/// <summary> /// Shows the detail. /// </summary> /// <param name="itemKey">The item key.</param> /// <param name="itemKeyValue">The item key value.</param> /// <param name="parentCategoryId">The parent category id.</param> public void ShowDetail( string itemKey, int itemKeyValue, int? parentCategoryId ) { pnlDetails.Visible = false; if ( !itemKey.Equals( "categoryId" ) ) { return; } var categoryService = new CategoryService(); Category category = null; if ( !itemKeyValue.Equals( 0 ) ) { category = categoryService.Get( itemKeyValue ); } else { category = new Category { Id = 0, IsSystem = false, ParentCategoryId = parentCategoryId}; category.EntityTypeId = entityTypeId; category.EntityTypeQualifierColumn = entityTypeQualifierProperty; category.EntityTypeQualifierValue = entityTypeQualifierValue; } if ( category == null || !category.IsAuthorized( "View", CurrentPerson ) ) { return; } pnlDetails.Visible = true; hfCategoryId.Value = category.Id.ToString(); // render UI based on Authorized and IsSystem bool readOnly = false; nbEditModeMessage.Text = string.Empty; if ( !category.IsAuthorized( "Edit", CurrentPerson ) ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlyEditActionNotAllowed( Category.FriendlyTypeName ); } if ( category.IsSystem ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlySystem( Category.FriendlyTypeName ); } btnSecurity.Visible = category.IsAuthorized( "Administrate", CurrentPerson ); btnSecurity.Title = category.Name; btnSecurity.EntityId = category.Id; if ( readOnly ) { btnEdit.Visible = false; btnDelete.Visible = false; ShowReadonlyDetails( category ); } else { btnEdit.Visible = true; string errorMessage = string.Empty; btnDelete.Visible = categoryService.CanDelete(category, out errorMessage); if ( category.Id > 0 ) { ShowReadonlyDetails( category ); } else { ShowEditDetails( category ); } } }
/// <summary> /// Shows the detail. /// </summary> /// <param name="categoryId">The category identifier.</param> /// <param name="parentCategoryId">The parent category id.</param> public void ShowDetail( int categoryId, int? parentCategoryId ) { pnlDetails.Visible = false; var categoryService = new CategoryService( new RockContext() ); Category category = null; if ( !categoryId.Equals( 0 ) ) { category = categoryService.Get( categoryId ); } if ( category == null ) { category = new Category { Id = 0, IsSystem = false, ParentCategoryId = parentCategoryId}; category.EntityTypeId = entityTypeId; category.EntityTypeQualifierColumn = entityTypeQualifierProperty; category.EntityTypeQualifierValue = entityTypeQualifierValue; } if (category.EntityTypeId != entityTypeId || !category.IsAuthorized( Authorization.VIEW, CurrentPerson ) ) { pnlDetails.Visible = false; return; } pnlDetails.Visible = true; hfCategoryId.Value = category.Id.ToString(); // render UI based on Authorized and IsSystem bool readOnly = false; nbEditModeMessage.Text = string.Empty; if ( !category.IsAuthorized( Authorization.EDIT, CurrentPerson ) ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlyEditActionNotAllowed( Category.FriendlyTypeName ); } if ( category.IsSystem ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlySystem( Category.FriendlyTypeName ); } btnSecurity.Visible = category.IsAuthorized( Authorization.ADMINISTRATE, CurrentPerson ); btnSecurity.Title = category.Name; btnSecurity.EntityId = category.Id; if ( readOnly ) { btnEdit.Visible = false; btnDelete.Visible = false; ShowReadonlyDetails( category ); } else { btnEdit.Visible = true; string errorMessage = string.Empty; btnDelete.Visible = categoryService.CanDelete(category, out errorMessage); if ( category.Id > 0 ) { ShowReadonlyDetails( category ); } else { ShowEditDetails( category ); } } }