public void Save(SqlTransaction trx, DateTime updateDate, int defendantId) { _intDefendantId = defendantId; switch (base.MyState) { case MyObjectState.New: Insert(trx, updateDate); // After an insert, plan child collections must have their parentid // updated with the new defendantid and planid or they will get orphaned. if (_PlanCases != null) { _PlanCases.UpdateParentIds(this.ID, this.DefendantId); _PlanCases.SavePlanCases(trx); } if (_PlanFees != null) { _PlanFees.UpdateParentIds(this.ID, this.DefendantId); _PlanFees.SavePlanFees(trx); } if (_PlanPaymentArrangements != null) { _PlanPaymentArrangements.UpdateParentIds(this.ID, this.DefendantId); _PlanPaymentArrangements.SavePlanPaymentArrangements(trx); } if (_PlanPayments != null) { _PlanPayments.UpdateParentIds(this.ID, this.DefendantId); _PlanPayments.SavePlanFeePayments(trx); } break; case MyObjectState.Modified: if (HasChanged) { Update(trx, updateDate); } if (_PlanCases != null) { _PlanCases.SavePlanCases(trx); } if (_PlanFees != null) { _PlanFees.SavePlanFees(trx); } if (_PlanPaymentArrangements != null) { _PlanPaymentArrangements.SavePlanPaymentArrangements(trx); } if (_PlanPayments != null) { _PlanPayments.SavePlanFeePayments(trx); } break; } }