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