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"); } } } } }