public override List <TramoImport> GetInfo()
        {
            var items = new List <TramoImport>();

            try
            {
                for (int iPos = 0; iPos <= 31; iPos++)
                {
                    string url = _Url;
                    if (iPos > 0)
                    {
                        url = $"{url}&page={iPos}";
                    }

                    WebClient wc          = new WebClient();
                    byte[]    response    = wc.DownloadData(url);
                    string    htmlContent = Encoding.UTF8.GetString(response);
                    if (string.IsNullOrEmpty(htmlContent))
                    {
                        continue;
                    }

                    HtmlDocument htmlDocument = new HtmlDocument();
                    htmlDocument.LoadHtml(htmlContent);

                    List <HtmlNode> rows = htmlDocument.DocumentNode.Descendants("tr").ToList();
                    foreach (HtmlNode itemRow in rows)
                    {
                        List <HtmlNode> cols = itemRow.Descendants("td").ToList();
                        if (cols.Count == 0)
                        {
                            continue;
                        }

                        TramoImport itemToAdd = new TramoImport();
                        itemToAdd.Provincia           = cols[0].InnerText.Trim();
                        itemToAdd.Ruta                = cols[1].InnerText.Trim();
                        itemToAdd.TramoNormalizado    = cols[2].InnerText.Trim();
                        itemToAdd.TramoDesnormalizado = cols[2].InnerText.Trim();
                        itemToAdd.Calzada             = cols[3].InnerText.Trim();
                        itemToAdd.Detalle             = cols[4].InnerText.Trim();
                        itemToAdd.Observaciones       = cols[5].InnerText.Trim();
                        itemToAdd.Actualizacion       = cols[6].InnerText.Trim().StrToDateTime();

                        items.Add(itemToAdd);
                    }
                }

                _logger.Info("DataProviderVialidad.GetInfo", $"{items.Count} registros obtenidos.");
            }
            catch (Exception ex)
            {
                _logger.Error("DataProviderVialidad.GetInfo", ex.Message, ex);
            }
            return(items);
        }
Пример #2
0
        public override List <TramoImport> GetInfo()
        {
            var items = new List <TramoImport>();

            try
            {
                WebClient wc       = new WebClient();
                byte[]    response = wc.DownloadData(_Url);

                string jsonContent = Encoding.UTF8.GetString(response);
                if (string.IsNullOrEmpty(jsonContent))
                {
                    return(items);
                }

                JObject jsonObj = JObject.Parse(jsonContent);
                JToken  rows    = jsonObj["feed"]["entry"];

                foreach (var itemRow in rows)
                {
                    TramoImport itemToAdd = new TramoImport();
                    itemToAdd.Provincia = GetValue(itemRow, "provincia");

                    if (itemToAdd.Provincia.ToUpper() == "SANTA CRUZ")
                    {
                    }

                    itemToAdd.Ruta                = GetValue(itemRow, "ruta");
                    itemToAdd.TramoNormalizado    = GetValue(itemRow, "tramo");
                    itemToAdd.TramoDesnormalizado = GetValue(itemRow, "tramo");
                    itemToAdd.Calzada             = GetValue(itemRow, "calzada");
                    itemToAdd.Detalle             = GetValue(itemRow, "detalle");
                    itemToAdd.Observaciones       = GetValue(itemRow, "observaciones");
                    itemToAdd.Actualizacion       = GetValueDateTime(itemRow, "actualizacion");

                    //Hay algún error con la fecha de actualización
                    if (itemToAdd.Actualizacion == DateTime.MinValue)
                    {
                        itemToAdd.Actualizacion = GetValueDateTime(itemRow, "_ckd7g");
                    }

                    items.Add(itemToAdd);
                }

                _logger.Info("DataProviderGoogle.GetInfo", $"{items.Count} registros obtenidos.");
            }
            catch (Exception ex)
            {
                _logger.Error("DataProviderGoogle.GetInfo", ex.Message, ex);
            }
            return(items);
        }
        public void ImportToDb()
        {
            var items = new List <TramoImport>();

            try
            {
                string[] fileEntries = Directory.GetFiles(@"C:\Tempo\Files");
                foreach (var item in fileEntries)
                {
                    HSSFWorkbook hssfwb;
                    using (FileStream file = new FileStream(@"C:\Tempo\Files\" + item, FileMode.Open, FileAccess.Read))
                    {
                        hssfwb = new HSSFWorkbook(file);
                    }

                    ISheet sheet = hssfwb.GetSheet("rutas");
                    for (int row = 0; row <= sheet.LastRowNum; row++)
                    {
                        if (sheet.GetRow(row) == null)
                        {
                            continue;
                        }
                        if (sheet.GetRow(row).GetCell(0) == null)
                        {
                            continue;
                        }
                        if (sheet.GetRow(row).GetCell(0).StringCellValue == "Provincia")
                        {
                            continue;
                        }
                        if (sheet.GetRow(row).GetCell(0).StringCellValue == "")
                        {
                            continue;
                        }

                        TramoImport itemToAdd = new TramoImport();
                        itemToAdd.Provincia           = sheet.GetRow(row).GetCell(0).StringCellValue;
                        itemToAdd.Ruta                = sheet.GetRow(row).GetCell(1).StringCellValue;
                        itemToAdd.TramoNormalizado    = sheet.GetRow(row).GetCell(2).StringCellValue;
                        itemToAdd.TramoDesnormalizado = sheet.GetRow(row).GetCell(2).StringCellValue;
                        itemToAdd.Calzada             = sheet.GetRow(row).GetCell(3).StringCellValue;
                        itemToAdd.Detalle             = sheet.GetRow(row).GetCell(4).StringCellValue;
                        if (sheet.GetRow(row).GetCell(5) != null)
                        {
                            itemToAdd.Observaciones = sheet.GetRow(row).GetCell(5).StringCellValue;
                        }
                        if (sheet.GetRow(row).GetCell(6) != null)
                        {
                            itemToAdd.Actualizacion = sheet.GetRow(row).GetCell(6).StringCellValue.StrToDateTime();
                        }
                        if (sheet.GetRow(row).GetCell(7) != null)
                        {
                            itemToAdd.Coordenadas = sheet.GetRow(row).GetCell(7).StringCellValue;
                        }

                        //Normalizamos la información del tramos
                        itemToAdd.TramoNormalizado = NormalizerTramo.Normalize(itemToAdd.TramoNormalizado);

                        var tramoExiste = items.FirstOrDefault(x =>
                                                               x.Provincia.ToUpper() == itemToAdd.Provincia.ToUpper() &&
                                                               x.Ruta.ToUpper() == itemToAdd.Ruta.ToLower() &&
                                                               x.TramoNormalizado.ToUpper() == itemToAdd.TramoNormalizado.ToUpper());

                        if (tramoExiste == null)
                        {
                            items.Add(itemToAdd);
                        }
                        else
                        {
                            tramoExiste.Calzada       = itemToAdd.Calzada;
                            tramoExiste.Detalle       = itemToAdd.Detalle;
                            tramoExiste.Observaciones = itemToAdd.Observaciones;
                            tramoExiste.Actualizacion = itemToAdd.Actualizacion;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Error("ImportFromExcel.ImportToDb", ex.Message, ex);
            }

            //Grabamos en el repositorio que deseamos
            _downloader.SaveData(items);
        }