private void deleteTestata(TestataMovimentoContabile testata, IDaoFactory daoFactory) { testata.SpesaRiferimento = null; testata.EsercizioRiferimento = null; // -------------------------------------------------------------------- // Aggiunto codice per rimuovere tutti i riferimenti bugid#4143 // -------------------------------------------------------------------- var movimenti = testata.Movimenti.ToList(); foreach (var movimentoContabile in movimenti) { movimentoContabile.Testata = null; testata.Movimenti.Remove(movimentoContabile); if (movimentoContabile.ContoRiferimento != null) { movimentoContabile.ContoRiferimento.Movimenti.Remove(movimentoContabile); movimentoContabile.ContoRiferimento = null; } if (movimentoContabile.FornitoreRiferimento != null) { movimentoContabile.FornitoreRiferimento.MovimentiContabili.Remove(movimentoContabile); movimentoContabile.FornitoreRiferimento = null; } } testata.Movimenti.Clear(); daoFactory.GetTestataMovimentoContabileDao().Delete(testata); // -------------------------------------------------------------------- }