public static void Save(string semanas, Domain.Trilogia trilogia) { if (semanas.Length > 0) { var rutas = SemanaToRutas(semanas); using (var session = Global.SessionFactory.OpenSession()) { using (var transaction = session.BeginTransaction()) { try { var trilogiaRuta = session.Get<TrilogiaRuta>(trilogia.CodTrilogia); if (trilogiaRuta == null) { trilogiaRuta = new TrilogiaRuta(trilogia) { Action = "A" }; } else trilogia.Action = "M"; trilogiaRuta.Rutas = rutas; trilogiaRuta.Download = DateTime.Now; session.SaveOrUpdate(trilogiaRuta); transaction.Commit(); } catch (Exception ex) { Global.Log.Error(ex.Message, ex); transaction.Rollback(); throw; } } } } }
/// <summary> /// Proceso que de alta y baja a una trilogia cambiando solo su Lugar de Visita /// </summary> /// <param name="trilogiaActual">Trilogia Actual</param> /// <param name="nuevoLdv">Codigo del Nuevo LDV</param> /// <param name="codTrilogia"> </param> public static void UpDown(int nuevoLdv, int codTrilogia) { Domain.Trilogia trilogiaNueva; List<ArtCambiosDetalle> cambioDetalles = null; using (var session = Global.SessionFactory.OpenSession()) { using (var transaction = session.BeginTransaction()) { try { var trilogiaActual = session.Get<Domain.Trilogia>(codTrilogia); NHibernateUtil.GetClass(trilogiaActual.LugaresDeVisita); cambioDetalles = new List<ArtCambiosDetalle>(); var ldvNuevo = session.Get<LugaresDeVisita>(nuevoLdv); cambioDetalles.Add(new ArtCambiosDetalle { NombreCampo = "Lugar de Visita", ValorAnterior = trilogiaActual.LugaresDeVisita.NombreLugar, ValorActual = ldvNuevo.NombreLugar }); trilogiaNueva = new Domain.Trilogia { Apm = trilogiaActual.Apm, Medico = trilogiaActual.Medico, CodOperadorAlta = trilogiaActual.CodOperadorAlta, Download = trilogiaActual.Download, Especialidad = trilogiaActual.Especialidad, Categoria = trilogiaActual.Categoria, Turno = trilogiaActual.Turno, Action = "A", CodTrilogia = 0, LugaresDeVisita = ldvNuevo, FechaAlta = DateTime.Now }; trilogiaActual.Action = "E"; trilogiaActual.MotivosBaja = session.Get<MotivosBaja>(1); trilogiaActual.FechaBaja = DateTime.Now; session.Save(trilogiaNueva); session.Update(trilogiaActual); var rutaActual = session.Get<TrilogiaRuta>(trilogiaActual.CodTrilogia); if (rutaActual != null) { var rutaNueva = new TrilogiaRuta(trilogiaNueva); rutaNueva.Action = "A"; rutaNueva.Download = DateTime.Now; rutaNueva.Rutas = rutaActual.Rutas; rutaActual.Action = "E"; session.Update(rutaActual); session.Save(rutaNueva); } transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } } Mensaje.SendAlert(TipoEntidad, trilogiaNueva.CodTrilogia, "Cambio de LDV", Estatus.GetEstatusInicial(tipoEntidad: TrilogiasRepository.TipoEntidad, accion: "L", rolId: Global.Usuario.ArtSeguridadRol.SeguridadRolId), detalles: cambioDetalles); }