public Respuesta Ejecutar() { try { /** * Comprueba los parámetros */ if (s == null || s.juego == null || s.juego.id_juego == null || s.juego.id_juego == 0) { throw new ParameterException("ID_JUEGO"); } if (s.items == null || s.items.Count == 0) { throw new ParameterException("ID_ITEM"); } if (s.hora == null || s.hora.Length == 0) { throw new ParameterException("HORA"); } if (s.dias == null || s.dias.Count == 0) { throw new ParameterException("ID_DIA"); } int result; DaoSorteos dao = FabricaDao.FabricarDaoSorteos(); /** * Comprueba que el juego este registrado en la base de datos */ result = dao.ConsultarJuego(s.juego.id_juego); if (result != 1) { throw new ConsultarException("El juego " + s.juego.id_juego + " no se encuentra registrado en el sistema"); } /** * Comprueba que los items esten registrados en la base de datos */ foreach (Item i in s.items) { result = dao.ConsultarItem(i.id_item, s.juego.id_juego); if (result != 1) { throw new ConsultarException("El item " + i.id_item + " no se encuentra registrado en el sistema o no pertenece al juego " + s.juego.id_juego); } } /** * Comprueba que los días esten registrados en la base de datos */ foreach (Dia d in s.dias) { result = dao.ConsultarDia(d.id_dia); if (result != 1) { throw new ConsultarException("El dia " + d.id_dia + " no se encuentra registrado en el sistema"); } } /** * Comprueba que no haya un sorteo del mismo juego, la misma hora y el mismo día registrado en la base de datos */ List <int> sorteosHora = dao.ConsultarHora(s.juego.id_juego, s.hora); if (sorteosHora != null || sorteosHora.Count != 0) { foreach (int idS in sorteosHora) { foreach (Dia i in s.dias) { result = dao.ConsultarDiaHora(idS); if (result == i.id_dia) { throw new ConsultarException("El sorteo de hora " + s.hora + " para el día " + i.id_dia + " del juego " + s.juego.id_juego + " ya se encuentra registrado en el sistema"); } } } } int cupo = 0; float monto = 0; /** * Realiza la insersión del sorteo */ TransactionOptions transactionOptions = new TransactionOptions(); transactionOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required, transactionOptions)) { int idSorteo = dao.InsertarSorteo(s.juego.id_juego, s.hora); foreach (Item i in s.items) { result = dao.ConsultarDatosItem(i.id_item, ref cupo, ref monto); if (result != 1) { throw new ConsultarException("El item " + i.id_item + " no se encuentra registrado en el sistema"); } result = dao.InsertarSorteoItem(i.id_item, idSorteo, cupo, monto); } foreach (Dia d in s.dias) { result = dao.InsertarSorteoDia(d.id_dia, idSorteo); } transaction.Complete(); } /** * Devuelve la respuesta */ if (result > 0) { return(new Respuesta("Sorteo Creado Exitosamente")); } else { throw new DBException(); } } catch (Exception e) { throw e; } }
public Respuesta Ejecutar() { try { /** * Comprueba los parámetros */ if (s == null || s.juego == null || s.juego.id_juego == null || s.juego.id_juego == 0) { throw new ParameterException("ID_JUEGO"); } int result; DaoSorteos dao = FabricaDao.FabricarDaoSorteos(); /** * Comprueba que el juego este registrado en la base de datos */ result = dao.ConsultarJuego(s.juego.id_juego); if (result != 1) { throw new ConsultarException("El juego " + s.juego.id_juego + " no se encuentra registrado en el sistema"); } string r1 = string.Empty, r2 = string.Empty; /** * Consulta los juegos de un sorteo i devuelve los id */ List <int> listaSorteos = dao.ConsultarSorteosdeJuego(s.juego.id_juego); if (listaSorteos == null || listaSorteos.Count == 0) { throw new ConsultarException("No se encontraron sorteos"); } /** * Realiza la consulta */ foreach (int idSorteo in listaSorteos) { r2 = dao.ConsultarSorteoxJuego(idSorteo); r1 = string.Concat(r1, r2, "||"); r2 = string.Empty; r2 = dao.ConsultarSorteoItemxJuego(idSorteo); r1 = string.Concat(r1, r2, "|"); r2 = string.Empty; r2 = dao.ConsultarSorteoDiaxJuego(idSorteo); r1 = string.Concat(r1, r2, "||"); r2 = string.Empty; } /** * Devuelve la respuesta */ return(new Respuesta(r1)); } catch (Exception e) { throw e; } }