public IList<ValoresFuente> Valores(Ciudad city, int limite, dynamic options = null) { var sql = string.Format("select {0} * ", limite == 0 ? "" : "top " + limite); sql += " from v_predio where id_ciudad = @id order by clave, num_construccion"; var str = ConfigurationManager.ConnectionStrings["riesgos"].ConnectionString; var conn = new SqlConnection(str); conn.Open(); var mapa = new Dictionary<string, ValoresFuente>(); var reader = new SqlHelper(conn).ExecuteReader(sql, new { id = city.Id }); while (reader.Read()) { var temp = new ValoresFuente(); temp.Tipo = "construccion"; Utils.FillDict(reader, temp); var cod = temp.GetString("clave"); var num = temp.GetString("num_construccion") ?? "0"; var key = Utils.MakeKey(cod, num); if (!mapa.ContainsKey(key)) { temp.Codigo1 = cod; temp.Codigo2 = num; temp.IdItem = temp["id"]; mapa[key] = temp; } var cat = temp.GetString("clave_dato"); if (!string.IsNullOrEmpty(cat)) mapa[key][cat] = temp.GetString("valor_texto"); temp.Remove("clave_dato"); temp.Remove("valor_texto"); } reader.Close(); conn.Close(); return mapa.Values.ToList(); }
public FuenteRedes(IList<FichaIndicadores> fichas, Ciudad city) { Fichas = fichas; City = city; MapaFichas = Fichas.Where(x => x.Nombre != "EDIFICACIONES") .ToDictionary(x => x.Nombre); }
public IList<ValoresFuente> Valores(Ciudad city, int limite, dynamic options = null) { var top = limite > 0 ? "top " + limite : ""; var sql = "select " + top + " * from sta_elena order by codigo_catastral"; var str = ConfigurationManager.ConnectionStrings["riesgos"].ConnectionString; var conn = new SqlConnection(str); conn.Open(); var reader = new SqlHelper(conn).ExecuteReader(sql); var mapa = new Dictionary<string, ValoresFuente>(); var i = 0; while (reader.Read()) { i++; var temp = new ValoresFuente(); Utils.FillDict(reader, temp); var clave = temp.GetString("codigo_catastral"); if (mapa.ContainsKey(clave)) continue; var manzana = GetManzana(clave); temp.Tipo = "construccion"; temp.Codigo1 = clave; temp.Codigo2 = manzana; temp.IdItem = i; temp["clave"] = clave; temp["manzana"] = manzana; mapa[clave] = temp; } reader.Close(); conn.Close(); return mapa.Values.ToList(); }
public int Total(Ciudad city, dynamic options = null) { const string sql = "select count(*) from v_reporte where manzana is not null "; var str = ConfigurationManager.ConnectionStrings["intelligov"].ConnectionString; var conn = new SqlConnection(str); conn.Open(); var total = new SqlHelper(conn).UniqueResult<int>(sql, new { id = city.Id }); conn.Close(); return total; }
public int Total(Ciudad city, dynamic options = null) { const string sql = "select count(*) from v_predio where id_ciudad = @id "; var str = ConfigurationManager.ConnectionStrings["riesgos"].ConnectionString; var conn = new SqlConnection(str); conn.Open(); var total = new SqlHelper(conn).UniqueResult<int>(sql, new { id = city.Id }); conn.Close(); return total; }
public int Total(Ciudad city, dynamic options = null) { const string sql = "select count(*) from sta_elena"; var str = ConfigurationManager.ConnectionStrings["riesgos"].ConnectionString; var conn = new SqlConnection(str); conn.Open(); var total = new SqlHelper(conn).UniqueResult<int>(sql); conn.Close(); return total; }
public static int BorrarResultados(string proceso, string tipo, Ciudad ciudad) { var hql = @"delete from Resultado where Proceso = :proceso and Tipo_item=:tipo and Canton=:ciudad and Id_ciudad=:id_ciudad"; var q = NHibernateHelper.GetCurrentSession().CreateQuery(hql); q.SetString("proceso", proceso) .SetString("tipo", tipo) .SetString("ciudad", ciudad.Nombre) .SetParameter("id_ciudad", ciudad.Id); return q.ExecuteUpdate(); }
public static string CrearCiudad(Ciudad ciudad) { try { using (var db = new Database("riesgos")) { var cuenta = db.SingleOrDefault<int>("select count(id) from ciudad where nombre = @0", ciudad.Nombre); if (cuenta > 0) return "Ya existe una ciudad con el mismo nombre"; db.Save("ciudad", "id", ciudad); return ""; } } catch (Exception ex) { return "Error de ejecución: " + ex.Message; } }
public void Procesar(Ciudad ciudad) { // TODO: poner un unit of work en marcha Print("Proceso Manzanas, ciudad: " + ciudad.Nombre); try { var lista = CalcularManzanas(ciudad); Print("Resultados: " + lista.Count); if (lista.Count > 0) { var first = lista[0]; Print("Borrando..."); var borrados = RepoGeneral.BorrarResultados(first.Proceso, first.Tipo_item, ciudad); Print("Borrados: " + borrados); Print("Guardando..."); Grabador.Guardar(lista, (num, msg) => Print("Guardados " + num)); Print("Terminado"); } } catch (Exception ex) { Print("Error: " + ex.Message, ex); } }
public IList<Resultado> CalcularManzanas(Ciudad ciudad) { var lista = RepoGeneral.Resultados(new ResultadoForm { Ciudad = ciudad.Nombre, Orden = "Id_item", Tipo = "construccion" }); var nuevos = new List<Resultado>(); var grupos = lista.ToLookup(x => x.Codigo3); foreach (var grupo in grupos) { var res = ProcesosUtils.CrearRes(grupo.First()); res.Nombre = grupo.Key; res.Tipo_item = "manzana"; res.Codigo = grupo.Key; res.Numcomponentes = grupo.Count(); res.Completo = grupo.Average(x => x.Completo); //var filtrados = grupo.Where(x => x.Completo.HasValue && x.Completo == 1); float area = 0; var map = new Dictionary<int, float>(); //foreach (var dato in filtrados) { foreach (var dato in grupo) { if (dato.Area == null || dato.Completo == null || dato.Completo.Value < Tolerancia) continue; res.Numevaluados += 1; area += dato.Area.Value; // OJO que aquí se debe generalizar más para que coja todos los indicadores ProcesosUtils.Adicionar(map, 1, dato.Indicador1, dato.Area); ProcesosUtils.Adicionar(map, 2, dato.Indicador2, dato.Area); ProcesosUtils.Adicionar(map, 3, dato.Indicador3, dato.Area); ProcesosUtils.Adicionar(map, 4, dato.Indicador4, dato.Area); } if (area > 0) { var keys = map.Keys.ToList(); foreach (var key in keys) { map[key] = map[key] / area; } ProcesosUtils.LlenarResultado(map, res); res.Area = area; } nuevos.Add(res); } return nuevos; }
public IList<Resultado> AgruparPredios(Ciudad ciudad) { var lista = RepoGeneral.Resultados(new ResultadoForm { Ciudad = ciudad.Nombre, Orden = "Id_item", Tipo = "construccion" }); var nuevos = new List<Resultado>(); var grupos = lista.ToLookup(x => x.Id_item); // ojo, x.Codigo tal vez sea mas seguro, no se puede saber foreach (var grupo in grupos) { var first = grupo.First(); var res = ProcesosUtils.CrearRes(first); res.Id_item = first.Id_item; res.Nombre = first.Nombre; res.Codigo = first.Codigo; res.Codigo2 = first.Codigo3; res.Tipo_item = "predio"; res.Numcomponentes = grupo.Count(); res.Completo = grupo.Average(x => x.Completo); float area = 0; var map = new Dictionary<int, float>(); foreach (var dato in grupo) { if (dato.Area == null || dato.Completo == null || dato.Completo.Value < Tolerancia) continue; res.Numevaluados += 1; area += dato.Area.Value; ProcesosUtils.Adicionar(map, 1, dato.Indicador1, dato.Area); ProcesosUtils.Adicionar(map, 2, dato.Indicador2, dato.Area); ProcesosUtils.Adicionar(map, 3, dato.Indicador3, dato.Area); ProcesosUtils.Adicionar(map, 4, dato.Indicador4, dato.Area); } if (area > 0) { var keys = map.Keys.ToList(); foreach (var key in keys) { map[key] = map[key] / area; } ProcesosUtils.LlenarResultado(map, res); res.Area = area; } nuevos.Add(res); } return nuevos; }
private void btnCrear_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtNombre.Text) || string.IsNullOrEmpty(txtCodigo.Text)) { MessageBox.Show("Debe escribir el nombre y código de la ciudad"); return; } var ciudad = new Ciudad { Codigo = txtCodigo.Text, Nombre = txtNombre.Text, Observaciones = txtObservaciones.Text }; var res = RepoGeneral.CrearCiudad(ciudad); if (string.IsNullOrEmpty(res)) { DialogResult = DialogResult.OK; MessageBox.Show("Ciudad '" + ciudad.Nombre + "' Creada"); Close(); } else { MessageBox.Show(res); } }
public IList<ValoresFuente> Valores(Ciudad city, int limite, dynamic options = null) { var top = limite > 0 ? "top " + limite : ""; var sql = "select " + top + @" * from v_reporte v where manzana is not null order by predio_ID, num_edif, pisos, catalogo, categoria, valor_item"; var str = ConfigurationManager.ConnectionStrings["intelligov"].ConnectionString; var conn = new SqlConnection(str); conn.Open(); var reader = new SqlHelper(conn).ExecuteReader(sql); var mapa = new Dictionary<string, ValoresFuente>(); while (reader.Read()) { var temp = new ValoresFuente(); Utils.FillDict(reader, temp); var clave = temp.GetString("predio_codigo"); var numero = temp.GetString("num_edif"); var key = string.Format("{0}.{1}", clave, numero); if (!mapa.ContainsKey(key)) { temp.Tipo = "construccion"; temp.Codigo1 = clave; temp.Codigo2 = numero; temp.IdItem = temp["predio_ID"]; temp["clave"] = clave; ResolverBloque(temp, numero); temp.Remove("valor_item"); mapa[key] = temp; } var cat = temp.GetString("categoria"); var valor = temp.GetString("item_id", "").Trim(); if (string.IsNullOrEmpty(valor)) continue; if (mapa[key].ContainsKey(cat)) mapa[key][cat] += "," + valor; else mapa[key][cat] = valor; } reader.Close(); conn.Close(); return mapa.Values.ToList(); }
public IList<ValoresFuente> Valores(Ciudad city, int limite, dynamic options = null) { var top = limite > 0 ? "top " + limite : ""; var sql = "select " + top + @" * from v_reporte where catalogo is not null order by zona,sector,manzana,solar, numero_edificacion, anio, area_construccion desc"; var str = ConfigurationManager.ConnectionStrings["babahoyo"].ConnectionString; var conn = new SqlConnection(str); conn.Open(); var mapa = new Dictionary<string, ValoresFuente>(); var reader = new SqlHelper(conn).ExecuteReader(sql); while (reader.Read()) { var temp = new ValoresFuente(); temp.Tipo = "construccion"; Utils.FillDict(reader, temp); var cod = temp.GetString("codigo_predio"); var num = temp.GetString("numero_edificacion"); var key = Utils.MakeKey(cod, num); if (!mapa.ContainsKey(key)) { var clave = ClaveCatastral( temp["zona"], temp["sector"], temp["manzana"], temp["solar"] ); temp["clave"] = clave; temp.Codigo1 = clave; temp.Codigo2 = temp.GetString("numero_edificacion"); temp.IdItem = temp["codigo_predio"]; mapa[key] = temp; } var cat = temp.GetString("catalogo"); if (!string.IsNullOrEmpty(cat)) mapa[key][cat] = temp.GetString("valor_catalogo"); temp.Remove("catalogo"); temp.Remove("valor_catalogo"); } reader.Close(); conn.Close(); return mapa.Values.ToList(); }
public IList<ValoresFuente> Valores(Ciudad city, int limite, dynamic options = null) { var top = limite > 0 ? "top " + limite : ""; var sql = "select " + top + " * from v_reporte order by clave, bloque, piso, numero_pisos"; var str = ConfigurationManager.ConnectionStrings["latacunga"].ConnectionString; var conn = new SqlConnection(str); conn.Open(); var lista = new List<ValoresFuente>(); var reader = new SqlHelper(conn).ExecuteReader(sql); while (reader.Read()) { var temp = new ValoresFuente(); Utils.FillDict(reader, temp); temp.Tipo = "construccion"; temp.Codigo1 = temp.GetString("clave"); var key = string.Format("{0}.{1}", temp["bloque"], temp["piso"]); temp.Codigo2 = key; temp.IdItem = temp["id"]; lista.Add(temp); } reader.Close(); conn.Close(); return lista; }