/// <summary> /// Handles the CheckChanged event of the gPrayerRequests IsApproved field. /// </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 gPrayerRequests_CheckChanged( object sender, RowEventArgs e ) { bool failure = true; if ( e.RowKeyValue != null ) { var rockContext = new RockContext(); PrayerRequestService prayerRequestService = new PrayerRequestService( rockContext ); PrayerRequest prayerRequest = prayerRequestService.Get( e.RowKeyId ); if ( prayerRequest != null ) { failure = false; // if it was approved, set it to unapproved... otherwise if ( prayerRequest.IsApproved ?? false ) { prayerRequest.IsApproved = false; } else { prayerRequest.IsApproved = true; prayerRequest.ApprovedByPersonId = CurrentPerson.Id; prayerRequest.ApprovedOnDateTime = RockDateTime.Now; // reset the flag count only to zero ONLY if it had a value previously. if ( prayerRequest.FlagCount.HasValue && prayerRequest.FlagCount > 0 ) { prayerRequest.FlagCount = 0; } } rockContext.SaveChanges(); } BindGrid(); } if ( failure ) { maGridWarning.Show( "Unable to approve that prayer request", ModalAlertType.Warning ); } }
/// <summary> /// Handles the Delete event of the gPrayerRequests 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 gPrayerRequests_Delete( object sender, RowEventArgs e ) { var rockContext = new RockContext(); PrayerRequestService prayerRequestService = new PrayerRequestService( rockContext ); PrayerRequest prayerRequest = prayerRequestService.Get( e.RowKeyId ); if ( prayerRequest != null ) { DeleteAllRelatedNotes( prayerRequest ); string errorMessage; if ( !prayerRequestService.CanDelete( prayerRequest, out errorMessage ) ) { maGridWarning.Show( errorMessage, ModalAlertType.Information ); return; } prayerRequestService.Delete( prayerRequest ); rockContext.SaveChanges(); } BindGrid(); }
/// <summary> /// Handles the edit Click event of the lbEdit 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 lbEdit_Click( object sender, EventArgs e ) { PrayerRequestService service = new PrayerRequestService( new RockContext() ); PrayerRequest item = service.Get( hfPrayerRequestId.ValueAsInt() ); ShowEditDetails( item ); }
/// <summary> /// Handles the SaveClick event of the mdFlag control and flags the prayer request and moves to the next. /// </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 mdFlag_SaveClick( object sender, EventArgs e ) { int prayerRequestId = hfIdValue.ValueAsInt(); var rockContext = new RockContext(); var service = new PrayerRequestService( rockContext ); PrayerRequest request = service.Get( prayerRequestId ); if ( request != null ) { request.FlagCount = ( request.FlagCount ?? 0 ) + 1; if ( request.FlagCount >= _flagLimit ) { request.IsApproved = false; } rockContext.SaveChanges(); } mdFlag.Hide(); lbNext_Click( sender, e ); }
/// <summary> /// Saves the prayer request. /// </summary> private void SaveRequest() { var rockContext = new RockContext(); PrayerRequest prayerRequest; PrayerRequestService prayerRequestService = new PrayerRequestService( rockContext ); int prayerRequestId = int.Parse( hfPrayerRequestId.Value ); // Fetch the prayer request or create a new one if needed if ( prayerRequestId == 0 ) { prayerRequest = new PrayerRequest(); prayerRequestService.Add( prayerRequest ); prayerRequest.EnteredDateTime = RockDateTime.Now; } else { prayerRequest = prayerRequestService.Get( prayerRequestId ); } // If changing from NOT-approved to approved, record who and when if ( !( prayerRequest.IsApproved ?? false ) && cbApproved.Checked ) { prayerRequest.ApprovedByPersonId = CurrentPerson.Id; prayerRequest.ApprovedOnDateTime = RockDateTime.Now; // reset the flag count only to zero ONLY if it had a value previously. if ( prayerRequest.FlagCount.HasValue && prayerRequest.FlagCount > 0 ) { prayerRequest.FlagCount = 0; } } // If no expiration date was manually set, then use the default setting. if ( !dpExpirationDate.SelectedDate.HasValue ) { var expireDays = Convert.ToDouble( GetAttributeValue( "ExpireDays" ) ); prayerRequest.ExpirationDate = RockDateTime.Now.AddDays( expireDays ); } else { prayerRequest.ExpirationDate = dpExpirationDate.SelectedDate; } // If no category was selected, then use the default category if there is one. int? categoryId = catpCategory.SelectedValueAsInt(); Guid defaultCategoryGuid = GetAttributeValue( "DefaultCategory" ).AsGuid(); if ( categoryId == null && !defaultCategoryGuid.IsEmpty() ) { var category = new CategoryService( rockContext ).Get( defaultCategoryGuid ); categoryId = category.Id; } prayerRequest.CategoryId = categoryId; // Now record all the bits... prayerRequest.IsApproved = cbApproved.Checked; prayerRequest.IsActive = cbIsActive.Checked; prayerRequest.IsUrgent = cbIsUrgent.Checked; prayerRequest.AllowComments = cbAllowComments.Checked; prayerRequest.IsPublic = cbIsPublic.Checked; prayerRequest.FirstName = dtbFirstName.Text; prayerRequest.LastName = dtbLastName.Text; prayerRequest.Text = dtbText.Text.Trim(); prayerRequest.Answer = dtbAnswer.Text.Trim(); if ( !Page.IsValid ) { return; } if ( !prayerRequest.IsValid ) { // field controls render error messages return; } rockContext.SaveChanges(); NavigateToParentPage(); }
/// <summary> /// Binds all comments for the given prayer request Id. /// </summary> /// <param name="prayerRequestId">the id of a prayer request</param> private void ShowComments( int prayerRequestId ) { PrayerRequestService prayerRequestService = new PrayerRequestService(); var prayerRequest = prayerRequestService.Get( prayerRequestId ); ShowComments( prayerRequest ); }
/// <summary> /// Handles the SaveClick event of the mdFlag control and flags the prayer request and moves to the next. /// </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 mdFlag_SaveClick( object sender, EventArgs e ) { int prayerRequestId = hfIdValue.ValueAsInt(); var service = new PrayerRequestService(); PrayerRequest request = service.Get( prayerRequestId ); if ( request != null ) { request.FlagCount = ( request.FlagCount ?? 0 ) + 1; if ( request.FlagCount >= _flagLimit ) { request.IsApproved = false; } service.Save( request, this.CurrentPersonId ); } mdFlag.Hide(); lbNext_Click( sender, e ); }
/// <summary> /// Handler that gets the next prayer request and updates its prayer count. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lbNext_Click( object sender, EventArgs e ) { int index = hfPrayerIndex.ValueAsInt(); index++; List<int> prayerRequestIds = (List<int>) Session[ _sessionKey ]; int currentNumber = index + 1; if ( currentNumber <= prayerRequestIds.Count ) { UpdateSessionCountLabel( currentNumber, prayerRequestIds.Count ); hfPrayerIndex.Value = index.ToString(); PrayerRequestService service = new PrayerRequestService(); PrayerRequest request = service.Get( prayerRequestIds[index] ); ShowPrayerRequest( request, service ); } else { pnlFinished.Visible = true; pnlPrayer.Visible = false; lbStartAgain.Focus(); } }
/// <summary> /// Handles the Delete event of the gPrayerRequests 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 gPrayerRequests_Delete( object sender, RowEventArgs e ) { RockTransactionScope.WrapTransaction( () => { PrayerRequestService prayerRequestService = new PrayerRequestService(); PrayerRequest prayerRequest = prayerRequestService.Get( (int)e.RowKeyValue ); if ( prayerRequest != null ) { DeleteAllRelatedNotes( prayerRequest ); string errorMessage; if ( !prayerRequestService.CanDelete( prayerRequest, out errorMessage ) ) { maGridWarning.Show( errorMessage, ModalAlertType.Information ); return; } prayerRequestService.Delete( prayerRequest, CurrentPersonId ); prayerRequestService.Save( prayerRequest, CurrentPersonId ); } } ); BindGrid(); }