/// <summary> /// Deletes the specified item. /// </summary> /// <param name="item">The item.</param> /// <returns></returns> public override bool Delete( FinancialScheduledTransaction item ) { if ( item.FinancialPaymentDetailId.HasValue ) { var paymentDetailsService = new FinancialPaymentDetailService( (Rock.Data.RockContext)this.Context ); var paymentDetail = paymentDetailsService.Get( item.FinancialPaymentDetailId.Value ); if ( paymentDetail != null ) { paymentDetailsService.Delete( paymentDetail ); } } return base.Delete( item ); }
/// <summary> /// Deletes the specified item. /// </summary> /// <param name="item">The item.</param> /// <returns></returns> public override bool Delete(FinancialPersonSavedAccount item) { if (item.FinancialPaymentDetailId.HasValue) { var paymentDetailsService = new FinancialPaymentDetailService((Rock.Data.RockContext) this.Context); var paymentDetail = paymentDetailsService.Get(item.FinancialPaymentDetailId.Value); if (paymentDetail != null) { paymentDetailsService.Delete(paymentDetail); } } return(base.Delete(item)); }
/// <summary> /// Method that will be called on an entity immediately before the item is saved by context /// </summary> /// <param name="dbContext">The database context.</param> /// <param name="entry">The database entity entry.</param> public override void PreSaveChanges(Data.DbContext dbContext, DbEntityEntry entry) { var rockContext = ( RockContext )dbContext; switch (entry.State) { case EntityState.Deleted: { // If a FinancialPaymentDetail was linked to this FinancialPersonSavedAccount and is now orphaned, delete it. var financialPaymentDetailService = new FinancialPaymentDetailService(rockContext); financialPaymentDetailService.DeleteOrphanedFinancialPaymentDetail(entry); break; } } base.PreSaveChanges(dbContext, entry); }
/// <summary> /// Method that will be called on an entity immediately before the item is saved by context /// </summary> /// <param name="dbContext">The database context.</param> /// <param name="entry">The database entity entry.</param> public override void PreSaveChanges(Rock.Data.DbContext dbContext, DbEntityEntry entry) { var rockContext = (RockContext)dbContext; HistoryChangeList = new History.HistoryChangeList(); switch (entry.State) { case EntityState.Added: { HistoryChangeList.AddChange(History.HistoryVerb.Add, History.HistoryChangeType.Record, "Transaction"); string person = History.GetValue <PersonAlias>(AuthorizedPersonAlias, AuthorizedPersonAliasId, rockContext); History.EvaluateChange(HistoryChangeList, "Authorized Person", string.Empty, person); History.EvaluateChange(HistoryChangeList, "Gateway", string.Empty, History.GetValue <FinancialGateway>(FinancialGateway, FinancialGatewayId, rockContext)); History.EvaluateChange(HistoryChangeList, "Gateway Schedule Id", string.Empty, GatewayScheduleId); History.EvaluateChange(HistoryChangeList, "Transaction Code", string.Empty, TransactionCode); History.EvaluateChange(HistoryChangeList, "Summary", string.Empty, Summary); History.EvaluateChange(HistoryChangeList, "Type", (int?)null, TransactionTypeValue, TransactionTypeValueId); History.EvaluateChange(HistoryChangeList, "Source", (int?)null, SourceTypeValue, SourceTypeValueId); History.EvaluateChange(HistoryChangeList, "Frequency", (int?)null, TransactionFrequencyValue, TransactionFrequencyValueId); History.EvaluateChange(HistoryChangeList, "Start Date", (DateTime?)null, StartDate); History.EvaluateChange(HistoryChangeList, "End Date", (DateTime?)null, EndDate); History.EvaluateChange(HistoryChangeList, "Number of Payments", (int?)null, NumberOfPayments); History.EvaluateChange(HistoryChangeList, "Is Active", (bool?)null, IsActive); History.EvaluateChange(HistoryChangeList, "Card Reminder Date", (DateTime?)null, CardReminderDate); History.EvaluateChange(HistoryChangeList, "Last Reminded Date", (DateTime?)null, LastRemindedDate); break; } case EntityState.Modified: { string origPerson = History.GetValue <PersonAlias>(null, entry.OriginalValues["AuthorizedPersonAliasId"].ToStringSafe().AsIntegerOrNull(), rockContext); string person = History.GetValue <PersonAlias>(AuthorizedPersonAlias, AuthorizedPersonAliasId, rockContext); History.EvaluateChange(HistoryChangeList, "Authorized Person", origPerson, person); int?origGatewayId = entry.OriginalValues["FinancialGatewayId"].ToStringSafe().AsIntegerOrNull(); if (!FinancialGatewayId.Equals(origGatewayId)) { History.EvaluateChange(HistoryChangeList, "Gateway", History.GetValue <FinancialGateway>(null, origGatewayId, rockContext), History.GetValue <FinancialGateway>(FinancialGateway, FinancialGatewayId, rockContext)); } History.EvaluateChange(HistoryChangeList, "Gateway Schedule Id", entry.OriginalValues["GatewayScheduleId"].ToStringSafe(), GatewayScheduleId); History.EvaluateChange(HistoryChangeList, "Transaction Code", entry.OriginalValues["TransactionCode"].ToStringSafe(), TransactionCode); History.EvaluateChange(HistoryChangeList, "Summary", entry.OriginalValues["Summary"].ToStringSafe(), Summary); History.EvaluateChange(HistoryChangeList, "Type", entry.OriginalValues["TransactionTypeValueId"].ToStringSafe().AsIntegerOrNull(), TransactionTypeValue, TransactionTypeValueId); History.EvaluateChange(HistoryChangeList, "Source", entry.OriginalValues["SourceTypeValueId"].ToStringSafe().AsIntegerOrNull(), SourceTypeValue, SourceTypeValueId); History.EvaluateChange(HistoryChangeList, "Frequency", entry.OriginalValues["TransactionFrequencyValueId"].ToStringSafe().AsIntegerOrNull(), TransactionFrequencyValue, TransactionFrequencyValueId); History.EvaluateChange(HistoryChangeList, "Start Date", entry.OriginalValues["StartDate"].ToStringSafe().AsDateTime(), StartDate); History.EvaluateChange(HistoryChangeList, "End Date", entry.OriginalValues["EndDate"].ToStringSafe().AsDateTime(), EndDate); History.EvaluateChange(HistoryChangeList, "Number of Payments", entry.OriginalValues["EndDate"].ToStringSafe().AsIntegerOrNull(), NumberOfPayments); History.EvaluateChange(HistoryChangeList, "Is Active", entry.OriginalValues["IsActive"].ToStringSafe().AsBooleanOrNull(), IsActive); History.EvaluateChange(HistoryChangeList, "Card Reminder Date", entry.OriginalValues["CardReminderDate"].ToStringSafe().AsDateTime(), CardReminderDate); History.EvaluateChange(HistoryChangeList, "Last Reminded Date", entry.OriginalValues["LastRemindedDate"].ToStringSafe().AsDateTime(), LastRemindedDate); break; } case EntityState.Deleted: { HistoryChangeList.AddChange(History.HistoryVerb.Delete, History.HistoryChangeType.Record, "Transaction"); // If a FinancialPaymentDetail was linked to this FinancialScheduledTransaction and is now orphaned, delete it. var financialPaymentDetailService = new FinancialPaymentDetailService(rockContext); financialPaymentDetailService.DeleteOrphanedFinancialPaymentDetail(entry); break; } } base.PreSaveChanges(dbContext, entry); }