示例#1
0
        public ImportadorEscuelas()
        {
            OfficeOpenXml.ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

            FileInfo existingFile = new FileInfo("exeloide.xlsx");

            using (ExcelPackage package = new ExcelPackage(existingFile))
            {
                //get the first worksheet in the workbook
                ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
                int            colCount  = worksheet.Dimension.End.Column; //get Column Count
                int            rowCount  = 63331;                          // worksheet.Dimension.End.Row;     //get row count

                Console.WriteLine($"El Excel tiene {rowCount} filas y {colCount} columnas");
                using (EdugeoModel db = new EdugeoModel())
                {
                    var escuelas = db.Escuelas.Select(i => i.Nombre).ToList();

                    for (int row = 1; row <= rowCount; row++)
                    {
                        var provincia = worksheet.Cells[row, JURISDICCION].Value.ToString();
                        var nombre    = worksheet.Cells[row, NOMBRE].Value.ToString();

                        if (provincia == "Ciudad de Buenos Aires" && escuelas.Contains(nombre) == false)
                        {
                            Escuela escuela = new Escuela();
                            escuela.Provincia        = provincia;
                            escuela.Nombre           = nombre;
                            escuela.EsPublico        = worksheet.Cells[row, SECTOR].Value.ToString() == "Estatal";
                            escuela.EsUrbano         = worksheet.Cells[row, AMBITO].Value?.ToString() == "Urbano";
                            escuela.Departamento     = worksheet.Cells[row, DEPARTAMENTO].Value.ToString();
                            escuela.Domicilio        = worksheet.Cells[row, DOMICILIO].Value.ToString();
                            escuela.Email            = worksheet.Cells[row, EMAIL].Value?.ToString();
                            escuela.EdComun          = worksheet.Cells[row, EDCOMUN].Value?.ToString() == "1";
                            escuela.EdEspecial       = worksheet.Cells[row, EDESPECIAL].Value?.ToString() == "1";
                            escuela.EdJovenesAdultos = worksheet.Cells[row, EDJOVENESADULTOS].Value?.ToString() == "1";
                            escuela.EdArtistica      = worksheet.Cells[row, EDARTISTICA].Value?.ToString() == "1";
                            db.Escuelas.Add(escuela);

                            Console.WriteLine("Agregado " + escuela.Nombre);
                        }
                    }
                    db.SaveChanges();
                    Console.WriteLine("hay " + db.Escuelas.Count() + " escuelas");
                }
            }
        }
示例#2
0
        public ImportadorMarkers()
        {
            GoogleMaps maps = new GoogleMaps();

            var model = new EdugeoModel();

            foreach (var escuela in model.Escuelas.OrderBy(i => i.Id).Include(i => i.GeoMarker).ToList())
            {
                Console.Write(escuela.Nombre + " - " + escuela.Domicilio + " - ");

                try
                {
                    if (escuela.GeoMarker == null)
                    {
                        var geocode = maps.GetGeocode("CALLE " + escuela.Domicilio);
                        if (geocode != null && geocode.Results != null && geocode.Results.Count() > 0)
                        {
                            var result = geocode.Results.First();

                            GeoMarker marker = new GeoMarker();
                            marker.DireccionFormateada = result.FormattedAddress;
                            marker.Latitud             = result.Geometry.Location.Latitude;
                            marker.Longitud            = result.Geometry.Location.Longitude;
                            escuela.GeoMarker          = marker;

                            model.SaveChanges();
                            Console.WriteLine(marker.DireccionFormateada);
                        }
                        else
                        {
                            Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(geocode));
                        }
                    }
                    else
                    {
                        Console.WriteLine("Ya tiene marker");
                    }
                    System.Threading.Thread.Sleep(100);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }