public static void SetDefault(AssicurazioneContratto contratto)
        {
            if (contratto.Tipo != null)
            {
                // Alert scadenza contratto
                if (contratto.Tipo.TipoAlertRiferimento != null)
                {
                    foreach (TipoAlertDettaglio dettaglio in contratto.Tipo.TipoAlertRiferimento.DettaglioReferenti)
                    {
                        if (dettaglio.Azienda.ID == contratto.CondominioRiferimento.Azienda.ID)
                        {
                            var alertContratto = new AlertScadenzaContratto(dettaglio.TipoNotifica, "Alert di default", contratto)
                            {
                                Destinatario = dettaglio.ReferenteRiferimento,
                                AvvisoScadenza = dettaglio.NumeroGiorni.GetValueOrDefault()
                            };
                        }
                    }
                }

                // Alert scadenza premio assicurativo
                if (contratto.Tipo.TipoAlertPremioRiferimento != null)
                {
                    foreach (var dettaglio in contratto.Tipo.TipoAlertPremioRiferimento.DettaglioReferenti)
                    {
                        if (dettaglio.Azienda.ID == contratto.CondominioRiferimento.Azienda.ID)
                        {
                            var alertContratto = new AlertPremioContratto(dettaglio.TipoNotifica, "Alert di default", contratto)
                            {
                                Destinatario = dettaglio.ReferenteRiferimento,
                                AvvisoScadenza = dettaglio.NumeroGiorni.GetValueOrDefault()
                            };
                        }
                    }
                }

            }
        }
        private bool insert(AlertContrattoDTO alertDto, out AlertContratto alert)
        {
            alert = null;
            if (alertDto != null)
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

                try
                {
                    var notifyType = NotifyType.Email;
                    if(!string.IsNullOrEmpty(alertDto.TipoAvviso))
                        notifyType = (NotifyType) Enum.Parse(typeof (NotifyType), alertDto.TipoAvviso);

                    switch (alertDto.TipoAlert)
                    {
                        case TipoAlertEnum.ContrattoAppalto:
                            ContrattoAppalto contrattoAppalto = null;
                            if (alertDto.IdContratto > 0)
                                contrattoAppalto = daoFactory.GetContrattoAppaltoDao().Find(alertDto.IdContratto.Value, false);
                            alert = new AlertScadenzaContratto(notifyType, alertDto.Descrizione, contrattoAppalto);
                            break;
                        case TipoAlertEnum.ContrattoAssicurativo:
                            AssicurazioneContratto contrattoAssicurativo = null;
                            if (alertDto.IdContratto > 0)
                                contrattoAssicurativo = daoFactory.GetAssicurazioneContrattoDao().Find(alertDto.IdContratto.Value, false);
                            alert = new AlertScadenzaContratto(notifyType, alertDto.Descrizione, contrattoAssicurativo);
                            break;
                        case TipoAlertEnum.PremioAssicurativo:
                            AssicurazioneContratto contrattoPremio = null;
                            if (alertDto.IdContratto > 0)
                                contrattoPremio = daoFactory.GetAssicurazioneContrattoDao().Find(alertDto.IdContratto.Value, false);
                            alert = new AlertPremioContratto(notifyType, alertDto.Descrizione, contrattoPremio);
                            break;
                    }

                    if (alert != null)
                    {
                        alert.AvvisoScadenza = alertDto.AvvisoScadenza;
                        alert.Descrizione = alertDto.Descrizione;
                        alert.Destinatario = daoFactory.GetReferenteDao().Find(alertDto.IdReferente, false);
                        alert.TipoAvviso = notifyType;

                        daoFactory.GetAlertContrattoDao().SaveOrUpdate(alert);
                    }
                }
                catch (Exception ex)
                {
                    _log.Error("Errore nell'inserimento dell'alert: " + Utility.GetMethodDescription() + " - id:" + alertDto.ID + " - contratto:" + alertDto.IdContratto.GetValueOrDefault(), ex);
                }
            }

            return true;
        }