private bool insert(DatiBancariDTO dto, out DatiBancariCondomini item) { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); bool result; try { var abiCab = daoFactory.GetAbiCabDao().GetByAbiCab(dto.Abi, dto.Cab); if (abiCab != null) { item = new DatiBancariCondomini(dto.Iban, daoFactory.GetCondominioDao().GetById(dto.IdCondominio, false)) { Abi = dto.Abi, Cab = dto.Cab, Cin = dto.Cin, ContoCorrente = dto.ContoCorrente.Truncate(50), DataValidita = dto.DataValidita, Iban = dto.Iban.Truncate(27), Note = dto.Note.Truncate(50), Principale = dto.Principale }; if (string.IsNullOrEmpty(item.Iban) && !string.IsNullOrEmpty(item.Abi) && !string.IsNullOrEmpty(item.Cab) && !string.IsNullOrEmpty(item.ContoCorrente)) { var coord = new CoordinateBancarie(); try { coord.Abi = item.Abi; coord.Cab = item.Cab; coord.ContoCorrente = item.ContoCorrente; item.Iban = coord.CalcolaIBAN(); item.ContoCorrente = coord.ContoCorrente; } catch (Exception ex) { _log.WarnFormat("Errore inaspettato nel calcolo dell'IBAN - {0} - id:{1} - abi:{2} - cab:{3} - c/c:{4}", ex, Utility.GetMethodDescription(), dto.ID, dto.Abi, dto.Cab, dto.ContoCorrente); } if (string.IsNullOrEmpty(item.Cin)) { try { item.Cin = coord.CalcolaCin(); } catch (Exception ex) { _log.WarnFormat("Errore inaspettato nel calcolo del CIN - {0} - id:{1} - abi:{2} - cab:{3} - c/c:{4}", ex, Utility.GetMethodDescription(), dto.ID, dto.Abi, dto.Cab, dto.ContoCorrente); } } } daoFactory.GetDatiBancariCondominiDao().SaveOrUpdate(item); // Aggiungo ABI e CAB tra i preferiti try { if (item.CondominioRiferimento != null && item.CondominioRiferimento.Azienda != null) { var abicabPref = daoFactory.GetAbiCabPreferitoDao().GetByAbiCab(item.Abi, item.Cab, item.CondominioRiferimento.Azienda.ID); if (abicabPref == null) { var abicab = daoFactory.GetAbiCabDao().Find(new AbiCabId(item.Abi, item.Cab), false); if (abicab != null) { abicabPref = new AbiCabPreferito(abicab, item.CondominioRiferimento.Azienda); daoFactory.GetAbiCabPreferitoDao().SaveOrUpdate(abicabPref); } } } } catch (Exception ex) { _log.WarnFormat("Errore nell'inserimento di ABI e CAB preferito - {0} - id:{1} - abi:{2} - cab:{3} - c/c:{4}", ex, Utility.GetMethodDescription(), dto.ID, dto.Abi, dto.Cab, dto.ContoCorrente); } } else { _log.ErrorFormat("Non trovato ABI CAB - {0} - abi:{1} - cab:{2}", Utility.GetMethodDescription(), dto.Abi, dto.Cab); item = null; return false; } result = true; } catch (Exception ex) { _log.ErrorFormat("Errore nell'inserimento dei dati bancari - {0} - id:{1} - abi:{2} - cab:{3} - c/c:{4}", ex, Utility.GetMethodDescription(), dto.ID, dto.Abi, dto.Cab, dto.ContoCorrente); throw; } return result; }
private bool update(DatiBancariDTO dto, out DatiBancariCondomini item) { var result = false; item = null; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { item = daoFactory.GetDatiBancariCondominiDao().Find(dto.ID, false); if (item != null) { //// Condizione necessaria per il controllo del fatto che sul DB ho una versione uguale o più vecchia //if (dto.Version == item.Version) //{ var abicab = daoFactory.GetAbiCabDao().Find(new AbiCabId(dto.Abi, dto.Cab), false); if (abicab != null) { item.Abi = dto.Abi; item.Cab = dto.Cab; item.Cin = dto.Cin; item.ContoCorrente = dto.ContoCorrente.Truncate(50); item.DataValidita = dto.DataValidita; item.Iban = dto.Iban.Truncate(27); item.Note = dto.Note.Truncate(50); item.Principale = dto.Principale; // Aggiungo ABI e CAB tra i preferiti var abicabPref = daoFactory.GetAbiCabPreferitoDao().GetByAbiCab(item.Abi, item.Cab, item.CondominioRiferimento.Azienda.ID); if (abicabPref == null) { abicabPref = new AbiCabPreferito(abicab, item.CondominioRiferimento.Azienda); daoFactory.GetAbiCabPreferitoDao().SaveOrUpdate(abicabPref); } result = true; } else { _log.WarnFormat("Tentativo di aggiornare dati bancari con ABI CAB inesistente - {0} - id:{1} - ABI:{2} - CAB:{3} - condominio:{4} - IBAN:{5} - azienda:{6}", Utility.GetMethodDescription(), dto.ID, dto.Abi, dto.Cab, dto.IdCondominio, dto.Iban, _info.Azienda); result = true; } //} //else //{ // // Eccezione: Sul db c'è qualche cosa di più nuovo. // _log.ErrorFormat("Errore nel salvataggio dei dati bancari il dato sul db è più recente di quello che si vuole salvare - {0} - id:{1} - azienda:{2}", Utility.GetMethodDescription(), dto.ID, _info.Azienda); //} } else { _log.WarnFormat("Tentativo di aggiornare DatiBancari inesistenti - {0} - id:{1} - azienda:{2}", Utility.GetMethodDescription(), dto.ID, _info.Azienda); return true; } } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio dei dati bancari - {0} - id:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), dto.ID, _info.Azienda); throw; } return result; }