public IResultado consultarCoordenadas(string idProvincia, string idCanton, string idDistrito) { SqlCommand cmd = new SqlCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.Connection = conexionSQL; cmd.CommandText = "select latitud, longitud from distritos d where " + "d.id_provincia = '" + idProvincia + "' and d.id_canton = '" + idCanton + "' and d.id_distrito = '" + idDistrito + "'"; try { conexionSQL.Open(); SqlDataReader reader = cmd.ExecuteReader(); reader.Read(); //Lee solo la primera línea ResultadoConsultaDinamica resultado = new ResultadoConsultaDinamica(); resultado.Latitud = Convert.ToDouble(reader[0].ToString()); resultado.Longitud = Convert.ToDouble(reader[1].ToString()); conexionSQL.Close(); return(resultado); } catch (SqlException e) { return(null); } }
public DTO consultarDinamica(object obj) { if (obj is DTO) { List <string> querys = new List <string>(); List <int> cantidades = new List <int>(); List <ResultadoConsultaDinamica> resultados = new List <ResultadoConsultaDinamica>(); DTO entrada = (DTO)obj; DTO salida = new DTO(); //copia el DTO de la entrada DTO dtoGenerable = entrada.DeepCopy(); //si tiene distritos, entonces se hace un query para cada uno de esos if (entrada.Distritos != null && entrada.Distritos.Count != 0) { foreach (ResultadoTablas rt in entrada.Distritos) { dtoGenerable.Distritos = new List <ResultadoTablas>(); dtoGenerable.Distritos.Add(rt); string consultaGenerada = generarConsulta(dtoGenerable); querys.Add(consultaGenerada); cantidades.Add(daoBD.consultarCantidad(consultaGenerada)); } ResultadoTablas provincia = entrada.Provincias.ElementAt(0); ResultadoTablas canton = entrada.Cantones.ElementAt(0); for (int i = 0; i < entrada.Distritos.Count; i++) { ResultadoTablas distrito = entrada.Distritos.ElementAt(i); ResultadoConsultaDinamica result = (ResultadoConsultaDinamica)daoBD.consultarCoordenadas(provincia.Codigo.ToString(), canton.Codigo.ToString(), distrito.Codigo.ToString()); result.Provincia = provincia.Nombre; result.Canton = canton.Nombre; result.Distrito = distrito.Nombre; result.Cantidad = cantidades.ElementAt(i); resultados.Add(result); } } //si tiene cantones, entonces se hace un query para cada uno de esos else if (entrada.Cantones != null && entrada.Cantones.Count != 0) { foreach (ResultadoTablas rt in entrada.Cantones) { dtoGenerable.Cantones = new List <ResultadoTablas>(); dtoGenerable.Cantones.Add(rt); string consultaGenerada = generarConsulta(dtoGenerable); querys.Add(consultaGenerada); cantidades.Add(daoBD.consultarCantidad(consultaGenerada)); } ResultadoTablas provincia = entrada.Provincias.ElementAt(0); for (int i = 0; i < entrada.Cantones.Count; i++) { ResultadoTablas canton = entrada.Cantones.ElementAt(i); ResultadoConsultaDinamica result = (ResultadoConsultaDinamica)daoBD.consultarCoordenadas(provincia.Codigo.ToString(), canton.Codigo.ToString(), "01"); result.Provincia = provincia.Nombre; result.Canton = canton.Nombre; result.Distrito = null; result.Cantidad = cantidades.ElementAt(i); resultados.Add(result); } } //si tiene provincias, entonces se hace un query para cada uno de esos else if (entrada.Provincias != null && entrada.Provincias.Count != 0) { foreach (ResultadoTablas rt in entrada.Provincias) { dtoGenerable.Provincias = new List <ResultadoTablas>(); dtoGenerable.Provincias.Add(rt); string consultaGenerada = generarConsulta(dtoGenerable); querys.Add(consultaGenerada); cantidades.Add(daoBD.consultarCantidad(consultaGenerada)); } for (int i = 0; i < entrada.Provincias.Count; i++) { ResultadoTablas provincia = entrada.Provincias.ElementAt(i); ResultadoConsultaDinamica result = (ResultadoConsultaDinamica)daoBD.consultarCoordenadas(provincia.Codigo.ToString(), "01", "01"); result.Provincia = provincia.Nombre; result.Canton = null; result.Distrito = null; result.Cantidad = cantidades.ElementAt(i); resultados.Add(result); } } //se hace a nivel general del país else { dtoGenerable.Provincias = dtoGenerable.Cantones = dtoGenerable.Distritos = null; string consultaGenerada = generarConsulta(dtoGenerable); querys.Add(consultaGenerada); int cantidad = daoBD.consultarCantidad(consultaGenerada); cantidades.Add(cantidad); ResultadoConsultaDinamica result = (ResultadoConsultaDinamica)daoBD.consultarCoordenadas("1", "01", "01"); result.Provincia = "País"; result.Canton = null; result.Distrito = null; result.Cantidad = cantidad; resultados.Add(result); } //return querys; //return cantidades; salida.Resultados = new ResultadosConsulta(resultados.Cast <IResultado>().ToList()); return(salida); } return(null); }