static public ApuestaDTO2 ToDTO2(Apuesta a) { PlaceMyBetContext context = new PlaceMyBetContext(); Mercado m; using (context) { m = context.Mercados.Single(b => b.MercadoId == a.MercadoId); } return(new ApuestaDTO2(a.UsuarioId, a.tipoCuota, a.cuota, a.dinero, m.EventoId, a.Mercado)); }
internal void UpdateDinero(Apuesta apuesta) { Mercado mercado; using (PlaceMyBetContext context = new PlaceMyBetContext()) { mercado = context.Mercados .Where(m => m.MercadoID == apuesta.MercadoID) .FirstOrDefault(); //Actualizamos el dinero apostado Over/Under if (apuesta.TipoApuesta == "Over") { mercado.DineroOver += apuesta.DineroApostado; } else if (apuesta.TipoApuesta == "Under") { mercado.DineroUnder += apuesta.DineroApostado; } //calculo de probabilidad Over double probabilidadOver = mercado.DineroOver / (mercado.DineroOver + mercado.DineroUnder); if (probabilidadOver != 0) { double CuotaOver = 1 / probabilidadOver * 0.95; mercado.CuotaOver = Math.Round((double)Convert.ToDouble(CuotaOver), 2); } //calculo de probabilidad Under double probabilidadUnder = mercado.DineroUnder / (mercado.DineroOver + mercado.DineroUnder); if (probabilidadUnder != 0) { double CuotaUnder = 1 / probabilidadUnder * 0.95; mercado.CuotaUnder = Math.Round((double)Convert.ToDouble(CuotaUnder), 2); } //Guardamos cambios en la base de datos context.SaveChanges(); } /*MySqlConnection con = Connect(); * MySqlCommand command = con.CreateCommand(); * * con.Open(); * Debug.WriteLine("tipo: " + apuesta.TipoApuesta + apuesta.IDMercado); * if (apuesta.TipoApuesta == "Over") * { * command.CommandText = "UPDATE Mercado SET DineroOver = DineroOver + " + apuesta.DineroApostado + " WHERE ID = " + apuesta.IDMercado + "; "; * * } * else if (apuesta.TipoApuesta == "Under") * { * command.CommandText = "UPDATE Mercado SET DineroUnder = DineroUnder + " + apuesta.DineroApostado + " WHERE ID = " + apuesta.IDMercado + "; "; * } * command.ExecuteNonQuery();*/ }
public ApuestaDTO ToDTO(Apuesta a) { int eventoid; using (var context = new PlaceMyBetContext()) { eventoid = context.Mercados.FirstOrDefault(m => m.MercadoId == a.MercadoId).EventoId; } return(new ApuestaDTO(a.UsuarioId, eventoid, a.Tipo, a.Cuota, a.DineroApostado, a.Mercado)); }
internal Apuesta Retrieve(int id) { var apuesta = new Apuesta(); using (var context = new PlaceMyBetContext()) { apuesta = context.Apuestas .Where(a => a.Id == id) .FirstOrDefault(); } return(apuesta); }
internal void Save(Apuesta a) { MySqlConnection con = Connect(); MySqlCommand command = con.CreateCommand(); if (a.TipoApuesta == 0) { command.CommandText = "SELECT cOver FROM mercado WHERE id = " + a.MercadoId; } else if (a.TipoApuesta == 1) { command.CommandText = "SELECT cUnder FROM mercado WHERE id = " + a.MercadoId; } double cuota = 0.0; try { con.Open(); MySqlDataReader res = command.ExecuteReader(); while (res.Read()) { cuota = res.GetDouble(0); } con.Close(); } catch (MySqlException e) { Debug.WriteLine("Error al conectar con la base de datos"); } command.CommandText = "insert into apuesta(usuario, importe, mercado, cuota, tipoApuesta, fecha) values (" + a.UsuarioId + "," + a.Importe + "," + a.MercadoId + "," + cuota.ToString(System.Globalization.CultureInfo.InvariantCulture) + "," + a.TipoApuesta + ",'" + a.Fecha + "');"; try { con.Open(); command.ExecuteNonQuery(); con.Close(); this.Recalculate(a.MercadoId); } catch (MySqlException e) { Debug.WriteLine("Error al conectar con la base de datos"); } }
private double CuotaUnder(Apuesta a) { List <Mercado> m = new List <Mercado>(); m = Retrieve(); for (int i = 0; i < m.Count; i++) { if (m[i].id_mercado == a.Mercado_id_mercado) { double probUnder; probUnder = m[i].DineroApostadoUnder / (m[i].DineroApostadoOver + m[i].DineroApostadoUnder); return(Math.Round((1 / probUnder) * cuota, 2, MidpointRounding.AwayFromZero)); } } return(0); }
internal List <Apuesta> Retrieve() { MySqlConnection con = Connect(); MySqlCommand command = con.CreateCommand(); command.CommandText = "select * from apuestas"; con.Open(); MySqlDataReader res = command.ExecuteReader(); Apuesta a = null; List <Apuesta> apuestas = new List <Apuesta>(); while (res.Read()) { Debug.WriteLine("Recuperado: " + res.GetInt32(0) + " " + res.GetDouble(1) + " " + res.GetString(2) + " " + res.GetDouble(3) + " " + res.GetDouble(4) + " " + res.GetDateTime(5) + " " + res.GetInt32(6) + " " + res.GetString(7)); a = new Apuesta(res.GetInt32(0), res.GetDouble(1), res.GetString(2), res.GetDouble(3), res.GetDouble(4), res.GetDateTime(5), res.GetInt32(6), res.GetString(7)); apuestas.Add(a); } con.Close(); return(apuestas); }
/* internal void Save(ApuestaDTO apuesta, double cuota) * {*/ internal void Save(Apuesta apuesta) { // MySqlConnection con = Connect(); //MySqlCommand command = con.CreateCommand(); PlaceMyBetContext context = new PlaceMyBetContext(); context.Add(apuesta); context.SaveChanges(); // con.Open(); // command.CommandText = "INSERT INTO apuesta(DineroApostado, TipoApuesta, Cuota, ID_Mercado, Email_Usuario) VALUES('" + apuesta.DineroApostado + "','" + apuesta.TipoApuesta + "','" + cuota.ToString(CultureInfo.CreateSpecificCulture("us-US")) + "','" + apuesta.IDMercado + "','" + apuesta.EmailUsuario + "');"; // Debug.WriteLine("Comando: " + command.CommandText); // command.ExecuteNonQuery(); // con.Close(); }
internal void Save(Apuesta a) { //MySqlConnection con = Connect(); //MySqlCommand command = con.CreateCommand(); /// para que aunque introduzcas puntos no te transforme el sql en comas CultureInfo culInfo = new System.Globalization.CultureInfo("es-ES"); culInfo.NumberFormat.NumberDecimalSeparator = "."; culInfo.NumberFormat.CurrencyDecimalSeparator = "."; culInfo.NumberFormat.PercentDecimalSeparator = "."; culInfo.NumberFormat.CurrencyDecimalSeparator = "."; System.Threading.Thread.CurrentThread.CurrentCulture = culInfo; ///Creo el metodo para ingresar la fecha de ahora DateTime time = DateTime.Now; string timeNow; timeNow = time.ToString("yyyy-MM-dd HH:mm tt"); ///creo metodos en la consulta para poder saber si es over o under //command.CommandText = "INSERT INTO apuestas (MercadoOverUnder, TipoOverUnder, Cuota, DineroApostado, Fecha, Mercado_id_mercado, Usuario_Email) VALUES ('" + a.MercadoOverUnder + "','" + a.TipoOverUnder + "'," + datoCuota(a.Mercado_id_mercado, a.TipoOverUnder) + ",'" + a.DineroApostado + "','" + timeNow + "'," + a.Mercado_id_mercado + ",'" + a.Usuario_Email + "');"; //Debug.WriteLine("comando" + command.CommandText); ///abro conexiones, creo objeto MercadoRepository para poder acceder a los metodos inplantados de SumaApuesta(a) ///y ActualizarCuotas(a), le paso un objeto apuesta para extraer la información para saber donde hacer la actualizacion //try //{ //con.Open(); //command.ExecuteNonQuery(); MercadoRepository mercado = new MercadoRepository(); mercado.SumaApuesta(a); mercado.ActualizarCuotas(a); //con.Close(); //} //catch(MySqlException e) { Debug.WriteLine("se ha producido un error de conexion"); } }
///Metodo para acumular el dinero apostado en su celda correspondiente (overo o under) public void SumaApuesta(Apuesta a) { //MySqlConnection con = Connect(); //MySqlCommand command = con.CreateCommand(); // para que aunque introduzcas puntos no te transforme el sql en comas CultureInfo culInfo = new System.Globalization.CultureInfo("es-ES"); culInfo.NumberFormat.NumberDecimalSeparator = "."; culInfo.NumberFormat.CurrencyDecimalSeparator = "."; culInfo.NumberFormat.PercentDecimalSeparator = "."; culInfo.NumberFormat.CurrencyDecimalSeparator = "."; System.Threading.Thread.CurrentThread.CurrentCulture = culInfo; if (a.TipoOverUnder.ToLower() == "over") { //string consulta = string.Format("UPDATE mercados SET DineroApostadoOver = (DineroApostadoOver + '{0}') WHERE id_mercado ='{1}';", a.DineroApostado, a.Mercado_id_mercado); //command.CommandText = consulta; //Debug.WriteLine("comando" + command.CommandText); } else { //string consulta = string.Format("UPDATE mercados SET DineroApostadoUnder = (DineroApostadoUnder + '{0}') WHERE id_mercado ='{1}';", a.DineroApostado, a.Mercado_id_mercado); //command.CommandText = consulta; //Debug.WriteLine("comando" + command.CommandText); } ///cuando tenermos una de las dos condiciones, cargamos la consulta en el command, abrimos conexion, hacemos consulta ///y cerramos conexion /*try * { * con.Open(); * command.ExecuteNonQuery(); * con.Close(); * } * catch (MySqlException e) * { * * }*/ }
public ApuestaDTO ToDTO(Apuesta a) { return(new ApuestaDTO(a.UsuarioId, a.MercadoId, a.TipoApuesta, a.Cuota, a.Mercado.Tipo, a.Importe)); }
internal void Save(Apuesta a) { CultureInfo cullInfo = new System.Globalization.CultureInfo("es-ES"); cullInfo.NumberFormat.NumberDecimalSeparator = "."; cullInfo.NumberFormat.CurrencyDecimalSeparator = "."; cullInfo.NumberFormat.PercentDecimalSeparator = "."; cullInfo.NumberFormat.CurrencyDecimalSeparator = "."; System.Threading.Thread.CurrentThread.CurrentCulture = cullInfo; MySqlConnection con = Connect(); MySqlCommand command = con.CreateCommand(); command.CommandText = "insert into apuesta values(" + a.Id + "," + "'" + a.Tipo + "'" + "," + a.Cuota + "," + a.DineroApostado + "," + a.IdMercado + "," + "'" + a.EmailUsuario + "'" + ");"; try { con.Open(); command.ExecuteNonQuery(); } catch (MySqlException e) { Console.WriteLine("Error " + e); } con.Close(); if (a.Tipo.ToUpper() == "OVER") { command.CommandText = "UPDATE mercado SET dinero_apostado_over = dinero_apostado_over + " + a.DineroApostado + " WHERE id=" + a.IdMercado + ";"; } if (a.Tipo.ToUpper() == "UNDER") { command.CommandText = "UPDATE mercado SET dinero_apostado_under = dinero_apostado_under + " + a.DineroApostado + " WHERE id=" + a.IdMercado + ";"; } try { con.Open(); command.ExecuteNonQuery(); } catch (MySqlException e) { Console.WriteLine("Error " + e); } con.Close(); con.Open(); command.CommandText = "select dinero_apostado_over from mercado where id=" + a.IdMercado + "; "; MySqlDataReader reader = command.ExecuteReader(); reader.Read(); double dino = reader.GetDouble(0); reader.Close(); con.Close(); con.Open(); command.CommandText = "select dinero_apostado_under from mercado where id=" + a.IdMercado + "; "; reader = command.ExecuteReader(); reader.Read(); double dinu = reader.GetDouble(0); reader.Close(); con.Close(); double po = dino / (dino + dinu); double pu = dinu / (dinu + dino); double co = Convert.ToDouble((1 / po) * 0.95); double cu = Convert.ToDouble((1 / pu) * 0.95); command.CommandText = "update mercado set cuota_over = '" + co + "' where id =" + a.IdMercado + ";"; try { con.Open(); command.ExecuteNonQuery(); } catch (MySqlException e) { Console.WriteLine("Error " + e); } con.Close(); command.CommandText = "update mercado set cuota_under = '" + cu + "' where id =" + a.IdMercado + "; "; try { con.Open(); command.ExecuteNonQuery(); } catch (MySqlException e) { Console.WriteLine("Error " + e); } con.Close(); }
internal static ApuestaDTO ToDTO(Apuesta a) { return(new ApuestaDTO(a.DineroApostado, a.TipoApuesta, a.Cuota, a.MercadoID, a.UsuarioEmail)); }
/***EJERCICIO 1***/ public ApuestaDTOID ToDTOID(Apuesta a) { return(new ApuestaDTOID(a.ApuestaId)); }
internal void Save(Apuesta a) { //MySqlConnection con = Connect(); //MySqlCommand command = con.CreateCommand(); //CultureInfo culInfo = new System.Globalization.CultureInfo("es-ES"); //culInfo.NumberFormat.NumberDecimalSeparator = "."; //culInfo.NumberFormat.CurrencyDecimalSeparator = "."; //culInfo.NumberFormat.PercentDecimalSeparator = "."; //culInfo.NumberFormat.CurrencyDecimalSeparator = "."; //System.Threading.Thread.CurrentThread.CurrentCulture = culInfo; //command.CommandText = "select * from mercado where idMercado="+a.idMercado+";"; //try //{ // con.Open(); // MySqlDataReader res = command.ExecuteReader(); // res.Read(); // Debug.WriteLine("Recuperado: " + res.GetInt32(0) + " " + res.GetDouble(1) + " " + res.GetDouble(2) + " " + res.GetDouble(3) + " " + res.GetDouble(4) + " " + res.GetDouble(5) + " " + res.GetInt32(6)); // Mercado m = new Mercado(res.GetInt32(0), res.GetDouble(1), res.GetDouble(2), res.GetDouble(3), res.GetDouble(4), res.GetDouble(5), res.GetInt32(6)); // double dineroOver = 0; // double dineroUnder = 0; // if (a.tipoCuota == "over") // { // dineroOver = a.dinero + m.dineroOver; // dineroUnder = m.dineroUnder; // } // else // { // dineroOver = m.dineroOver; // dineroUnder = a.dinero + m.dineroUnder; // } // double cuotaOver = dineroOver / (dineroOver + dineroUnder); // cuotaOver = (1 / cuotaOver) * 0.95; // double cuotaUnder = dineroUnder / (dineroUnder + dineroOver); // cuotaUnder = (1 / cuotaUnder) * 0.95; // res.Close(); // con.Close(); // command.CommandText = "update mercado set cuotaOver=" + Math.Round(cuotaOver,2) + ", cuotaUnder=" + Math.Round(cuotaUnder,2) +", dineroOver="+dineroOver+", dineroUnder="+ dineroUnder+ " where idMercado="+a.idMercado + ";"; // try // { // con.Open(); // command.ExecuteNonQuery(); // con.Close(); // double cuotaApuesta = 0; // if (a.tipoCuota == "under") // { // cuotaApuesta = cuotaUnder; // } // else // { // cuotaApuesta = cuotaOver; // } // command.CommandText = "insert into apuesta(tipoMercado, cuota, dinero, fecha, idMercado, gmail, tipoCuota) values (" + a.tipoMercado + ", " + Math.Round(cuotaApuesta, 2) + ", " + a.dinero + ", '" + DateTime.Now.ToString("yyyy-MM-dd") + "', " + a.idMercado + ", '" + a.gmail + "', '" + a.tipoCuota + "');"; // try // { // con.Open(); // command.ExecuteNonQuery(); // con.Close(); // } // catch (MySqlException e) // { // Debug.WriteLine("Se ha producido un error de conexion"); // } // } // catch (MySqlException e) // { // Debug.WriteLine("Se ha producido un error de conexion"); // } //} //catch (MySqlException e) //{ // Debug.WriteLine("Se ha producido un error de conexion"); //} PlaceMyBetContext context = new PlaceMyBetContext(); context.Apuestas.Add(a); context.SaveChanges(); Mercado m; using (context) { m = context.Mercados.Single(b => b.MercadoId == a.MercadoId); if (a.tipoCuota == "under") { m.DineroUnder = m.DineroUnder + a.dinero; } else { m.DineroOver = m.DineroOver + a.dinero; } m.CuotaOver = m.DineroOver / (m.DineroOver + m.DineroUnder); m.CuotaOver = Math.Round((1 / m.CuotaOver) * 0.95, 2); m.CuotaUnder = m.DineroUnder / (m.DineroUnder + m.DineroOver); m.CuotaUnder = Math.Round((1 / m.CuotaUnder) * 0.95, 2); context.SaveChanges(); } }
internal void Save(Apuesta a) { MySqlConnection con = Connect(); MySqlCommand command = con.CreateCommand(); CultureInfo culInfo = new System.Globalization.CultureInfo("es-ES"); culInfo.NumberFormat.NumberDecimalSeparator = "."; culInfo.NumberFormat.CurrencyDecimalSeparator = "."; culInfo.NumberFormat.PercentDecimalSeparator = "."; culInfo.NumberFormat.CurrencyDecimalSeparator = "."; System.Threading.Thread.CurrentThread.CurrentCulture = culInfo; command.CommandText = "select * from mercado where idMercado=" + a.idMercado + ";"; try { con.Open(); MySqlDataReader res = command.ExecuteReader(); res.Read(); Debug.WriteLine("Recuperado: " + res.GetInt32(0) + " " + res.GetDouble(1) + " " + res.GetDouble(2) + " " + res.GetDouble(3) + " " + res.GetDouble(4) + " " + res.GetDouble(5) + " " + res.GetInt32(6)); Mercado m = new Mercado(res.GetInt32(0), res.GetDouble(1), res.GetDouble(2), res.GetDouble(3), res.GetDouble(4), res.GetDouble(5), res.GetInt32(6)); double dineroOver = 0; double dineroUnder = 0; if (a.tipoCuota == "over") { dineroOver = a.dinero + m.dineroOver; dineroUnder = m.dineroUnder; } else { dineroOver = m.dineroOver; dineroUnder = a.dinero + m.dineroUnder; } double cuotaOver = dineroOver / (dineroOver + dineroUnder); cuotaOver = (1 / cuotaOver) * 0.95; double cuotaUnder = dineroUnder / (dineroUnder + dineroOver); cuotaUnder = (1 / cuotaUnder) * 0.95; res.Close(); con.Close(); command.CommandText = "update mercado set cuotaOver=" + Math.Round(cuotaOver, 2) + ", cuotaUnder=" + Math.Round(cuotaUnder, 2) + ", dineroOver=" + dineroOver + ", dineroUnder=" + dineroUnder + " where idMercado=" + a.idMercado + ";"; try { con.Open(); command.ExecuteNonQuery(); con.Close(); double cuotaApuesta = 0; if (a.tipoCuota == "under") { cuotaApuesta = cuotaUnder; } else { cuotaApuesta = cuotaOver; } command.CommandText = "insert into apuesta(tipoMercado, cuota, dinero, fecha, idMercado, gmail, tipoCuota) values (" + a.tipoMercado + ", " + Math.Round(cuotaApuesta, 2) + ", " + a.dinero + ", '" + DateTime.Now.ToString("yyyy-MM-dd") + "', " + a.idMercado + ", '" + a.gmail + "', '" + a.tipoCuota + "');"; try { con.Open(); command.ExecuteNonQuery(); con.Close(); } catch (MySqlException e) { Debug.WriteLine("Se ha producido un error de conexion"); } } catch (MySqlException e) { Debug.WriteLine("Se ha producido un error de conexion"); } } catch (MySqlException e) { Debug.WriteLine("Se ha producido un error de conexion"); } }
/***FIN EJERCICIO 2***/ internal void Save(Apuesta a) { CultureInfo cullInfo = new System.Globalization.CultureInfo("es-ES"); cullInfo.NumberFormat.NumberDecimalSeparator = "."; cullInfo.NumberFormat.CurrencyDecimalSeparator = "."; cullInfo.NumberFormat.PercentDecimalSeparator = "."; cullInfo.NumberFormat.CurrencyDecimalSeparator = "."; System.Threading.Thread.CurrentThread.CurrentCulture = cullInfo; ///*MySqlConnection con = Connect(); //MySqlCommand command = con.CreateCommand(); //command.CommandText = "insert into apuesta values(" + a.Id + "," + "'" + a.Tipo + "'" + "," + a.Cuota + "," + a.DineroApostado+","+a.IdMercado+"," + "'" + a.EmailUsuario + "'" + ");"; //*/ //try //{ // /*con.Open(); // command.ExecuteNonQuery();*/ //} //catch (/*MySqlException e*/ InvalidCastException e) //{ // Console.WriteLine("Error " + e); //} ////con.Close(); //if (a.Tipo.ToUpper() == "OVER") //{ // //command.CommandText = "UPDATE mercado SET dinero_apostado_over = dinero_apostado_over + " + a.DineroApostado + " WHERE id=" + a.IdMercado+";"; //} //if (a.Tipo.ToUpper() == "UNDER") //{ // //command.CommandText = "UPDATE mercado SET dinero_apostado_under = dinero_apostado_under + " + a.DineroApostado + " WHERE id=" + a.IdMercado + ";"; //} //try //{ // /*con.Open(); // command.ExecuteNonQuery();*/ //} //catch (/*MySqlException e*/ InvalidCastException e) //{ // Console.WriteLine("Error " + e); //} ///*con.Close(); //con.Open(); //command.CommandText = "select dinero_apostado_over from mercado where id="+ a.IdMercado+"; "; //MySqlDataReader reader = command.ExecuteReader(); //reader.Read();*/ //double dino; ///*double dino = reader.GetDouble(0); //reader.Close(); //con.Close();*/ ///*con.Open(); //command.CommandText = "select dinero_apostado_under from mercado where id=" + a.IdMercado + "; "; //reader = command.ExecuteReader(); //reader.Read();*/ //double dinu; ///*double dinu = reader.GetDouble(0); //reader.Close(); //con.Close();*/ //double po = 0; //double pu = 0; ///*double po = dino / (dino + dinu); //double pu = dinu / (dinu + dino);*/ //double co = Convert.ToDouble((1 / po) * 0.95); //double cu = Convert.ToDouble((1 / pu) * 0.95); ////command.CommandText = "update mercado set cuota_over = '" + co + "' where id =" + a.IdMercado + ";"; //try //{ // /*con.Open(); // command.ExecuteNonQuery();*/ //} //catch (/*MySqlException e*/ InvalidCastException e) //{ // Console.WriteLine("Error " + e); //} ////con.Close(); ////command.CommandText = "update mercado set cuota_under = '"+cu+"' where id ="+ a.IdMercado +"; "; //try //{ // /*con.Open(); // command.ExecuteNonQuery();*/ //} //catch (/*MySqlException e*/ InvalidCastException e) //{ // Console.WriteLine("Error " + e); //} ////con.Close(); double dino; double dinu; using (var context = new PlaceMyBetContext()) { var apuestas = context.Set <Apuesta>(); apuestas.Add(a); context.SaveChanges(); } using (var context = new PlaceMyBetContext()) { Mercado mercado = context.Mercados .FirstOrDefault(m => m.MercadoId == a.MercadoId); dino = mercado.DineroApostadoOver; dinu = mercado.DineroApostadoUnder; double po = dino / (dino + dinu); double pu = dinu / (dinu + dino); double co = Convert.ToDouble((1 / po) * 0.95); double cu = Convert.ToDouble((1 / pu) * 0.95); mercado.CuotaOver = co; mercado.CuotaUnder = cu; if (a.Tipo.ToUpper() == "OVER") { mercado.DineroApostadoOver = dino + a.DineroApostado; } if (a.Tipo.ToUpper() == "UNDER") { mercado.DineroApostadoOver = dinu + a.DineroApostado; } context.SaveChanges(); } }