/// <summary> /// Shows the detail. /// </summary> /// <param name="reportId">The report identifier.</param> /// <param name="parentCategoryId">The parent category id.</param> public void ShowDetail( int reportId, int? parentCategoryId ) { pnlDetails.Visible = false; var reportService = new ReportService( new RockContext() ); Report report = null; if ( !reportId.Equals( 0 ) ) { report = reportService.Get( reportId ); } if ( report == null ) { report = new Report { Id = 0, IsSystem = false, CategoryId = parentCategoryId }; } pnlDetails.Visible = true; hfReportId.Value = report.Id.ToString(); // render UI based on Authorized and IsSystem bool readOnly = false; nbEditModeMessage.Text = string.Empty; string authorizationMessage; if ( !this.IsAuthorizedForAllReportComponents( Authorization.EDIT, report, out authorizationMessage ) ) { nbEditModeMessage.Text = authorizationMessage; readOnly = true; } if ( report.IsSystem ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlySystem( Report.FriendlyTypeName ); } btnSecurity.Visible = report.IsAuthorized( Authorization.ADMINISTRATE, CurrentPerson ); btnSecurity.Title = report.Name; btnSecurity.EntityId = report.Id; if ( readOnly ) { btnEdit.Visible = false; btnDelete.Visible = false; ShowReadonlyDetails( report ); } else { btnEdit.Visible = true; string errorMessage = string.Empty; btnDelete.Visible = reportService.CanDelete( report, out errorMessage ); if ( report.Id > 0 ) { ShowReadonlyDetails( report ); } else { ShowEditDetails( report ); } } }
/// <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( "reportId" ) ) { return; } var reportService = new ReportService(); Report report = null; if ( !itemKeyValue.Equals( 0 ) ) { report = reportService.Get( itemKeyValue ); } else { report = new Report { Id = 0, IsSystem = false, CategoryId = parentCategoryId }; } if ( report == null ) { return; } pnlDetails.Visible = true; hfReportId.Value = report.Id.ToString(); // render UI based on Authorized and IsSystem bool readOnly = false; nbEditModeMessage.Text = string.Empty; if ( !report.IsAuthorized( "Edit", CurrentPerson ) ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlyEditActionNotAllowed( Report.FriendlyTypeName ); } if ( report.IsSystem ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlySystem( Report.FriendlyTypeName ); } btnSecurity.Visible = report.IsAuthorized( "Administrate", CurrentPerson ); btnSecurity.Title = report.Name; btnSecurity.EntityId = report.Id; if ( readOnly ) { btnEdit.Visible = false; btnDelete.Visible = false; ShowReadonlyDetails( report ); } else { btnEdit.Visible = true; string errorMessage = string.Empty; btnDelete.Visible = reportService.CanDelete( report, out errorMessage ); if ( report.Id > 0 ) { ShowReadonlyDetails( report ); } else { ShowEditDetails( report ); } } }
/// <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? categoryId = null; var rockContext = new RockContext(); var reportService = new ReportService( rockContext ); var report = reportService.Get( hfReportId.Value.AsInteger() ); if ( report != null ) { string errorMessage; if ( !reportService.CanDelete( report, out errorMessage ) ) { ShowReadonlyDetails( report ); mdDeleteWarning.Show( errorMessage, ModalAlertType.Information ); return; } else { categoryId = report.CategoryId; reportService.Delete( report ); rockContext.SaveChanges(); // reload page, selecting the deleted data view's parent var qryParams = new Dictionary<string, string>(); if ( categoryId != null ) { qryParams["CategoryId"] = categoryId.ToString(); } NavigateToPage( RockPage.Guid, qryParams ); } } }
/// <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? categoryId = null; var reportService = new ReportService(); var report = reportService.Get( int.Parse( hfReportId.Value ) ); if ( report != null ) { string errorMessage; if ( !reportService.CanDelete( report, out errorMessage ) ) { ShowReadonlyDetails( report ); mdDeleteWarning.Show( errorMessage, ModalAlertType.Information ); return; } else { categoryId = report.CategoryId; RockTransactionScope.WrapTransaction( () => { reportService.Delete( report, CurrentPersonId ); reportService.Save( report, CurrentPersonId ); } ); // reload page, selecting the deleted data view's parent var qryParams = new Dictionary<string, string>(); if ( categoryId != null ) { qryParams["categoryId"] = categoryId.ToString(); } NavigateToPage( RockPage.Guid, qryParams ); } } }