public PremioAssicurativoDTO Save(PremioAssicurativoDTO premio)
 {
     var premioAssicurativo = GetServiceClient().SetPremioAssicurativo(premio, GetUserInfo());
     if (premioAssicurativo != null)
     {
         var idPremio = (int)premioAssicurativo;
         CloseService();
         return GetById(idPremio);
     }
     return new PremioAssicurativoDTO();
 }
        public PremioAssicurativoDTO[] GetAllpaByAzienda(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var lista = daoFactory.GetPremioAssicurativoDao().GetByAzienda(idAzienda);
                var premiAssicurativi = new PremioAssicurativoDTO[lista.Count];

                var index = 0;
                foreach (var premioAssicurativo in lista)
                {
                    premiAssicurativi[index] = setDto(premioAssicurativo);
                    index++;
                }

                return premiAssicurativi;
            }
            catch (Exception ex)
            {
                
                _log.Error("Errore nel caricamento dei Premi Assicurativi - " + Utility.GetMethodDescription() + " - azienda:" + idAzienda, ex);
                throw;
            }
        }
        private PremioAssicurativo manage(PremioAssicurativoDTO dto)
        {
            PremioAssicurativo entity = null;
            bool result;

            // Controllo sullo stato U, D, I
            switch (dto.Stato.ToUpper())
            {
                case "U":
                    result = update(dto, out entity);

                    if (!result)
                        throw new Exception("Il dato sul database è più recente di quello utilizzato");
                    break;
                case "I":
                    result = insert(dto, out entity);

                    if (!result)
                        throw new Exception("Impossibile scrivere sul database");
                    break;
            }

            return entity;
        }
        private bool insert(PremioAssicurativoDTO dto, out PremioAssicurativo entity)
        {
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
            entity = null;

            try
            {
                if (dto.IdContratto != null)
                {
                    entity = new PremioAssicurativo(daoFactory.GetAssicurazioneContrattoDao().GetById((int) dto.IdContratto, false), dto.DataPagamento, dto.ImportoPagamento);
                    daoFactory.GetPremioAssicurativoDao().SaveOrUpdate(entity);
                }
            }
            catch (Exception ex)
            {
                
                _log.Error("Errore nell'inserimento del Premio Assicurativo - " + Utility.GetMethodDescription() + " - id:" + dto.ID, ex);
                throw;
            }

            return true;
        }
        private bool update(PremioAssicurativoDTO dto, out PremioAssicurativo entity)
        {
            bool result;
            entity = null;
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

            try
            {
                entity = daoFactory.GetPremioAssicurativoDao().GetById(dto.ID, false);

                // Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia
                if (dto.Version == entity.Version)
                {
                    entity.DataPagamento = dto.DataPagamento;
                    entity.Importo = dto.ImportoPagamento;
                    entity.ContrattoRiferimento = daoFactory.GetAssicurazioneContrattoDao().GetById(dto.IdContratto.GetValueOrDefault(), false);
                    entity.ContrattoRiferimento.ImportoPremio = entity.Importo;
                    result = true;
                }
                else
                {
                    // Eccezione: Sul db c'è qualche cosa di più nuovo.
                    
                    _log.Error("Errore nel salvataggio del Premio Assicurativo: id:" + dto.ID + " - il dato sul db è più recente di quello che si vuole salvare");
                    result = false;
                }
            }
            catch (Exception ex)
            {
                _log.Error("Errore nel salvataggio del Premio Assicurativo - " + Utility.GetMethodDescription() + " - id:" + dto.ID, ex);
                throw;
            }

            return result;
        }
 private static PremioAssicurativoDTO setDto(PremioAssicurativo entity)
 {
     var dto = new PremioAssicurativoDTO
     {
         DataPagamento = entity.DataPagamento,
         ID = entity.ID,
         IdContratto = entity.ContrattoRiferimento.ID,
         ImportoPagamento = entity.Importo,
         VersionContratto = entity.ContrattoRiferimento.Version,
         Version = entity.Version
     };
     
     return dto;
 }
 public int? ManageDomainEntity(PremioAssicurativoDTO dto)
 {
     try
     {
         return manage(dto).ID;
     }
     catch (Exception ex)
     {
         
         _log.Error("Errore nel caricamento dei Premi Assicurativi - " + Utility.GetMethodDescription() + " - id:" + dto.ID.ToString(), ex);
         throw;
     }
 }
 public void Delete(PremioAssicurativoDTO premio)
 {
     GetServiceClient().DeletePremioAssicurativo(premio.ID, GetUserInfo());
     CloseService();
 }
Example #9
0
		public int? SetPremioAssicurativo(PremioAssicurativoDTO premioAssicurativo, UserInfo userinfo)
		{
			var windsorRep = new WindsorConfigRepository();
			try
			{
				windsorRep.BeginTransaction(userinfo);
				var repo = new PremioAssicurativoRepository(userinfo, windsorRep);
				var item = repo.ManageDomainEntity(premioAssicurativo);
				windsorRep.Commit();
				return item;
			}
			catch (Exception ex)
			{

				_log.Error("Errore il salvataggio del premio assicurativo - " + Utility.GetMethodDescription() + " - id:" + premioAssicurativo, ex);
				windsorRep.Rollback();
				throw;
			}
		}