public void UpdateFlussoComunicazione(SendMail.Model.TipoCanale tipoCanale, Comunicazioni comunicazione)
        {
            using (IComFlussoDao dao = this.Context.DaoImpl.ComFlussoDao)
            {
                ComFlusso f = comunicazione.ComFlussi[tipoCanale].OrderBy(x => !x.IdFlusso.HasValue).ThenBy(x => x.IdFlusso).Last();
                if (f.IdFlusso.HasValue)
                {
                    try
                    {
                        dao.Update(f);
                    }
                    catch (Exception ex)
                    {
                        //TASK: Allineamento log - Ciro
                        if (!ex.GetType().Equals(typeof(ManagedException)))
                        {
                            ManagedException mEx = new ManagedException("Errore nell\'aggiornamento del flusso della comunicazione." +
                                                                        " Successiva chiamata al metodo di inserimento. Dettaglio: "
                                                                        + ex.Message, "ERR_COM_003", string.Empty, string.Empty, ex.InnerException);
                            mEx.addEnanchedInfosTag("DETAILS", new XElement("info",
                                                                            new XElement("user_msg", "Errore nell\'aggiornamento del flusso della comunicazione." +
                                                                                         " Successiva chiamata al metodo di inserimento. Dettaglio: "
                                                                                         + ex.Message),
                                                                            new XElement("exception",
                                                                                         new XElement("message", ex.Message),
                                                                                         new XElement("source", ex.Source),
                                                                                         new XElement("stack", ex.StackTrace),
                                                                                         new XElement("innerException", ex.InnerException)),
                                                                            new XElement("IdComunicazione", (comunicazione.IdComunicazione != null)?comunicazione.IdComunicazione.ToString():" vuoto. "),
                                                                            new XElement("UniqueId", (comunicazione.UniqueId != null)?comunicazione.UniqueId.ToString():" vuoto. ")).ToString(SaveOptions.DisableFormatting));
                            ErrorLogInfo err = new ErrorLogInfo(mEx);
                            err.objectID = comunicazione.IdComunicazione.ToString();
                            _log.Error(err);
                            dao.Insert(f);
                            throw mEx;  //aggiunto il 26/02/2016
                        }
                        else
                        {
                            dao.Insert(f);
                            throw ex; //aggiunto il 26/02/2016
                        }

                        //Codice Originario

                        //ErrorLogInfo error = new ErrorLogInfo();
                        //error.freeTextDetails = ex.Message;
                        //error.logCode = "ERR_COM_003";
                        //_log.Error(error);
                        //dao.Insert(f);
                    }
                }
                else
                {
                    dao.Insert(f);
                }
            }
        }
        public void UpdateFlussoComunicazione(Model.TipoCanale tipoCanale, Model.ComunicazioniMapping.Comunicazioni comunicazione)
        {
            ComFlusso f = comunicazione.ComFlussi[tipoCanale].OrderBy(x => !x.IdFlusso.HasValue).ThenBy(x => x.IdFlusso).Last();

            using (var dbcontext = new FAXPECContext())
            {
                using (var dbContextTransaction = dbcontext.Database.BeginTransaction())
                {
                    try
                    {
                        if (f.IdFlusso.HasValue)
                        {
                            COMUNICAZIONI_FLUSSO flusso     = AutoMapperConfiguration.FromComFlussoToDto(f);
                            COMUNICAZIONI_FLUSSO old_flusso = dbcontext.COMUNICAZIONI_FLUSSO.Find(f.IdFlusso);
                            dbcontext.COMUNICAZIONI_FLUSSO.Remove(old_flusso);
                            dbcontext.COMUNICAZIONI_FLUSSO.Add(flusso);
                        }
                        else
                        {
                            COMUNICAZIONI_FLUSSO flusso = AutoMapperConfiguration.FromComFlussoToDto(f);
                            dbcontext.COMUNICAZIONI_FLUSSO.Add(flusso);
                        }
                    }
                    catch (Exception ex)
                    {
                        if (!ex.GetType().Equals(typeof(ManagedException)))
                        {
                            ManagedException mEx = new ManagedException("Errore nell\'aggiornamento del flusso della comunicazione." +
                                                                        " Successiva chiamata al metodo di inserimento. Dettaglio: "
                                                                        + ex.Message, "ERR_COM_003", string.Empty, string.Empty, ex.InnerException);
                            mEx.addEnanchedInfosTag("DETAILS", new XElement("info",
                                                                            new XElement("user_msg", "Errore nell\'aggiornamento del flusso della comunicazione." +
                                                                                         " Successiva chiamata al metodo di inserimento. Dettaglio: "
                                                                                         + ex.Message),
                                                                            new XElement("exception",
                                                                                         new XElement("message", ex.Message),
                                                                                         new XElement("source", ex.Source),
                                                                                         new XElement("stack", ex.StackTrace),
                                                                                         new XElement("innerException", ex.InnerException)),
                                                                            new XElement("IdComunicazione", (comunicazione.IdComunicazione != null) ? comunicazione.IdComunicazione.ToString() : " vuoto. "),
                                                                            new XElement("UniqueId", (comunicazione.UniqueId != null) ? comunicazione.UniqueId.ToString() : " vuoto. ")).ToString(SaveOptions.DisableFormatting));
                            ErrorLogInfo err = new ErrorLogInfo(mEx);
                            err.objectID = comunicazione.IdComunicazione.ToString();
                            _log.Error(err);
                            COMUNICAZIONI_FLUSSO flusso = AutoMapperConfiguration.FromComFlussoToDto(f);
                            dbcontext.COMUNICAZIONI_FLUSSO.Add(flusso);
                            throw mEx;  //aggiunto il 26/02/2016
                        }
                        else
                        {
                            COMUNICAZIONI_FLUSSO flusso = AutoMapperConfiguration.FromComFlussoToDto(f);
                            dbcontext.COMUNICAZIONI_FLUSSO.Add(flusso);
                            throw ex; //aggiunto il 26/02/2016
                        }
                    }
                    finally
                    {
                        int tot = dbcontext.SaveChanges();
                        if (tot > 0)
                        {
                            dbContextTransaction.Commit();
                        }
                        else
                        {
                            dbContextTransaction.Rollback();
                            throw new Exception("Comunicazione non inserita fermi tutti");
                        }
                    }
                }
            }
        }