Ejemplo n.º 1
0
        public static DataTable RecuperarTodosPremios()
        {
            ISession nhSesion = ManejoNHibernate.IniciarSesion();

            try
            {
                DataTable tablaPremios = new DataTable();
                tablaPremios.Columns.Add("codigoPremio");
                tablaPremios.Columns.Add("descripcion");
                tablaPremios.Columns.Add("probabilidad");

                List <Premio> listaPremios = CatalogoPremio.RecuperarTodos(nhSesion);

                (from s in listaPremios select s).Aggregate(tablaPremios, (dt, r) => { dt.Rows.Add(r.Codigo, r.Descripcion, r.Probabilidad); return(dt); });
                return(tablaPremios);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                nhSesion.Close();
                nhSesion.Dispose();
            }
        }
Ejemplo n.º 2
0
        public static int RecuperarCodigoPremio()
        {
            ISession nhSesion = ManejoNHibernate.IniciarSesion();

            try
            {
                Random        rnd                   = new Random();
                int           sorteo                = rnd.Next(1, 100);
                int           codigoPremio          = 0;
                int           probabilidadAnterior  = 0;
                int           probabilidadPosterior = 0;
                List <Premio> listaPremios          = CatalogoPremio.RecuperarTodos(nhSesion);

                foreach (Premio premio in listaPremios)
                {
                    probabilidadPosterior = probabilidadPosterior + premio.Probabilidad;

                    if (sorteo > probabilidadAnterior && sorteo <= probabilidadPosterior)
                    {
                        codigoPremio = premio.Codigo;
                        break;
                    }

                    probabilidadAnterior = probabilidadAnterior + premio.Probabilidad;
                }

                return(codigoPremio);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                nhSesion.Close();
                nhSesion.Dispose();
            }
        }