Example #1
0
        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;
        }
Example #2
0
        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;
        }