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

                    }

                }
            }
        }
Esempio n. 2
0
        /// <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);
        }