public long UpdateRouting(TramoDto dto) { long result = _service.UpdateRouting(dto); SimpleCache.CleanCache(); return(result); }
public static List <CoordenadaModel> GetListCoordenadas(this TramoDto dto) { var result = new List <CoordenadaModel>(); if (string.IsNullOrEmpty(dto.Coordenadas)) { return(result); } string[] coordSplit = dto.Coordenadas.Split('/'); foreach (var itemCoordenada in coordSplit) { if (itemCoordenada.Split(',').Length != 2) { continue; } var coordenadaToAdd = new CoordenadaModel(); coordenadaToAdd.Latitud = itemCoordenada.Split(',')[0]; coordenadaToAdd.Longitud = itemCoordenada.Split(',')[1]; result.Add(coordenadaToAdd); } return(result); }
public long CreateOrUpdate(TramoDto dto) { long result = _service.CreateOrUpdate(dto); SimpleCache.CleanCache(); return(result); }
public long UpdateRouting(TramoDto dto) { long result = default(long); try { TramoEntity tramoDb = _dbContext.TramoDataSet.FirstOrDefault(x => x.IdTramo == dto.IdTramo); if (tramoDb != null) { tramoDb.JsonRouting = dto.JsonRouting; _dbContext.SaveChanges(); } result = tramoDb.IdTramo; } catch (DbEntityValidationException ex) { foreach (var eve in ex.EntityValidationErrors) { foreach (var ve in eve.ValidationErrors) { _logger.Error("ServiceTramo.UpdateRouting", $"PropertyName: {ve.PropertyName} - ErrorMessage: {ve.ErrorMessage}", ex); } } } catch (Exception ex) { _logger.Error("ServiceTramo.CreateOrUpdate", ex.Message, ex); } return(result); }
public long CreateOrUpdate(TramoDto dto) { long result = default(long); try { using (var dbContext = new VialidadContext()) { TramoEntity tramoDb = dbContext.TramoDataSet.AsNoTracking().FirstOrDefault(x => x.IdProvincia == dto.IdProvincia && x.IdRuta == dto.IdRuta && x.TramoNormalizado.ToUpper() == dto.TramoNormalizado.ToUpper()); if (tramoDb == null) { tramoDb = MapDtoToEntity.Map(dto); tramoDb.FechaAlta = DateTime.Now; tramoDb.Activo = false; dbContext.TramoDataSet.Add(tramoDb); } else { tramoDb.IdCalzada = dto.IdCalzada; tramoDb.Detalle = dto.Detalle; tramoDb.Observaciones = dto.Observaciones; tramoDb.FechaActualizacion = dto.FechaActualizacion; tramoDb.TramoDesnormalizado = dto.TramoDesnormalizado; var exist = dbContext.Set <TramoEntity>().Find(tramoDb.IdTramo); if (exist != null) { dbContext.Entry <TramoEntity>(exist).CurrentValues.SetValues(tramoDb); } } dbContext.SaveChanges(); result = tramoDb.IdTramo; } } catch (DbEntityValidationException ex) { foreach (var eve in ex.EntityValidationErrors) { foreach (var ve in eve.ValidationErrors) { _logger.Error("ServiceTramo.CreateOrUpdate", $"PropertyName: {ve.PropertyName} - ErrorMessage: {ve.ErrorMessage}", ex); } } } catch (Exception ex) { _logger.Error("ServiceTramo.CreateOrUpdate", ex.Message, ex); } return(result); }
public static List <ReferenciaModel> GetListReferencias(this TramoDto dto, IEnumerable <ReferenciaDto> referencias) { var result = new List <ReferenciaModel>(); var detalleFull = $"{dto.Detalle} {dto.Observaciones}"; detalleFull = NormalizerKey.Normalize(detalleFull); foreach (var itemReferencia in referencias) { if (string.IsNullOrEmpty(itemReferencia.PalabrasClaves)) { continue; } var keys = itemReferencia.PalabrasClaves.Split('|'); foreach (var itemKey in keys) { if (!detalleFull.Contains(itemKey)) { continue; } var referenciaExists = result.FirstOrDefault(x => x.ImageName == itemReferencia.Imagen); if (referenciaExists == null) { var imageName = itemReferencia.Imagen; if (imageName.EndsWith(".png")) { imageName = imageName.Split('.')[0]; imageName = $"{imageName}_transparent.png"; } var imagePath = $"images/referencias/{itemReferencia.Tipo.ToLower()}/{imageName}"; var referenciaToAdd = new ReferenciaModel(); referenciaToAdd.ImageName = itemReferencia.Imagen; referenciaToAdd.ImagePath = imagePath; referenciaToAdd.ImageDesc = itemReferencia.Nombre; referenciaToAdd.ImageWidth = itemReferencia.Ancho; referenciaToAdd.ImageHeight = itemReferencia.Alto; result.Add(referenciaToAdd); } else if (!referenciaExists.ImageDesc.Contains(itemReferencia.Nombre)) { referenciaExists.ImageDesc = $"{referenciaExists.ImageDesc} - {itemReferencia.Nombre}"; } } } return(result); }
public static string GetColorFechaActualizacion(this TramoDto dto) { string color = "#00AF2A"; if (dto.FechaActualizacion < DateTime.Now.AddDays(-20)) { color = "#FF0000"; } else if (dto.FechaActualizacion < DateTime.Now.AddDays(-10)) { color = "#FFA600"; } return(color); }
public IHttpActionResult GetRouting(string profile, string coordinates, bool overview = false, bool alternatives = false, bool steps = false, string hints = "") { coordinates = coordinates.Replace(";", "/").Trim(); TramoDto tramo = _serviceTramo.GetByCoordinates(coordinates); string jsonRouting = (tramo != null) ? tramo.JsonRouting : string.Empty; JObject jsonObj = null; if (!string.IsNullOrEmpty(jsonRouting)) { jsonObj = JObject.Parse(jsonRouting); } Result result = new Result(jsonObj); return(result.CreateResponse(this)); }
public static string GetColorRuta(this TramoDto dto) { var _replaces = new Dictionary <string, string>(); _replaces.Add("Á", "A"); _replaces.Add("É", "E"); _replaces.Add("Í", "I"); _replaces.Add("Ó", "O"); _replaces.Add("Ú", "U"); var _keyWords = new Dictionary <string, List <string> >(); _keyWords.Add("#00AF2A", new List <string>() { "NORMAL", "TRANSITABLE", "BUENO", "PRECAUCION", "SIN DEMARCACION", "INCOMPLETO", "NIEBLA", "HUMEDA", "LLUVIA", "PRECIPITACIONES" }); //_keyWords.Add("#FFE000", new List<string>() { "PRECAUCION", "SIN DEMARCACION", "INCOMPLETO", "NIEBLA", "HUMEDA", "LLUVIA", "PRECIPITACIONES" }); _keyWords.Add("#FFA600", new List <string>() { "REGULAR", "DETERIORADA", "POCEADA", "BACHES", "MALO", "CORTE PARCIAL", "COMPROMETIDO", "MAXIMA PRECAUCION", "DESVIO", "ALERTA" }); _keyWords.Add("#FF0000", new List <string>() { "INTRANSITABLE", "INTERRUMPIDA", "CLAUSURADA", "4X4" }); //"HUELLONES" string desc = dto.Detalle.ToUpper(); foreach (var itemReplace in _replaces) { desc = desc.Replace(itemReplace.Key, itemReplace.Value); } string color = "#00AF2A"; foreach (var itemKeyWord in _keyWords) { foreach (var item in itemKeyWord.Value) { if (desc.Contains(item)) { color = itemKeyWord.Key; } } } return(color); }
public static TramoEntity Map(TramoDto entidadDto) { var entity = new TramoEntity(); entity.IdTramo = entidadDto.IdTramo; entity.IdProvincia = entidadDto.IdProvincia; entity.IdRuta = entidadDto.IdRuta; entity.IdCalzada = entidadDto.IdCalzada; entity.TramoNormalizado = entidadDto.TramoNormalizado; entity.TramoDesnormalizado = entidadDto.TramoDesnormalizado; entity.Coordenadas = entidadDto.Coordenadas; entity.Detalle = entidadDto.Detalle; entity.Observaciones = entidadDto.Observaciones; entity.FechaActualizacion = entidadDto.FechaActualizacion; entity.Orden = entidadDto.Orden; return(entity); }
public static TramoModel Map(TramoDto entidadDto) { var model = new TramoModel(); model.IdTramo = entidadDto.IdTramo; model.IdProvincia = entidadDto.IdProvincia; model.IdRuta = entidadDto.IdRuta; model.IdCalzada = entidadDto.IdCalzada; model.Tramo = entidadDto.TramoNormalizado.ToTitleCase(); model.Detalle = entidadDto.Detalle.ToTitleCase(); model.Observaciones = entidadDto.Observaciones.ToTitleCase(); model.FechaActualizacion = entidadDto.FechaActualizacion.GetValueOrDefault(DateTime.MinValue).ToString("dd/MM/yyyy HH:mm"); model.Orden = entidadDto.Orden; model.Coordenadas = entidadDto.GetListCoordenadas(); //model.Referencias = entidadDto.GetListReferencias(); model.ColorRuta = entidadDto.GetColorRuta(); model.ColorFechaActualizacion = entidadDto.GetColorFechaActualizacion(); return(model); }
private void NormalizeInfoVM(IEnumerable <TramoDto> tramos, IEnumerable <TramoModel> tramosVM) { IList <TramoModel> result = new List <TramoModel>(); IEnumerable <ProvinciaDto> provincias = _serviceProvincia.GetAll(false); IEnumerable <RutaDto> rutas = _serviceRuta.GetAll(false); IEnumerable <CalzadaDto> calzadas = _serviceCalzada.GetAll(false); IEnumerable <ReferenciaDto> referencias = _serviceReferencia.GetAll(); foreach (var itemTramoVM in tramosVM) { TramoDto tramoDto = tramos.SingleOrDefault(x => x.IdTramo == itemTramoVM.IdTramo); if (tramoDto == null) { continue; } itemTramoVM.Provincia = provincias.SingleOrDefault(x => x.Id == itemTramoVM.IdProvincia)?.Nombre; itemTramoVM.Ruta = rutas.SingleOrDefault(x => x.Id == itemTramoVM.IdRuta)?.Nombre; itemTramoVM.Calzada = calzadas.SingleOrDefault(x => x.Id == itemTramoVM.IdCalzada)?.Nombre; itemTramoVM.Referencias = tramoDto.GetListReferencias(referencias); } }
public TramoDto GetByCoordinates(string coordinates) { TramoDto result = null; try { TramoEntity tramo = _dbContext.TramoDataSet .OrderByDescending(x => x.FechaActualizacion) .ThenBy(x => x.Orden) .FirstOrDefault(x => x.Coordenadas == coordinates && x.Activo); if (tramo != null) { result = MapEntityToDto.Map(tramo); } } catch (Exception ex) { _logger.Error("ServiceTramo.GetByCoordinates", ex.Message, ex); } return(result); }
public override void SaveData(List<TramoImport> info) { var provincias = _serviceProvincia.GetAll(false); var rutas = _serviceRuta.GetAll(false); var calzadas = _serviceCalzada.GetAll(false); foreach (var itemTramo in info) { if (string.IsNullOrEmpty(itemTramo.TramoDesnormalizado)) continue; try { //Verificamos información de la provincia var provinciaKey = NormalizerKey.Normalize(itemTramo.Provincia); if (provinciaKey == "bahia-blanca") provinciaKey = "buenos-aires"; var provinciaDto = provincias.SingleOrDefault(x => x.Key == provinciaKey); if (provinciaDto == null) { provinciaDto = new ProvinciaDto(); provinciaDto.Nombre = itemTramo.Provincia; provinciaDto.Key = provinciaKey; provinciaDto.Id = _serviceProvincia.Create(provinciaDto); } //Verificamos información de la ruta var rutaKey = NormalizerKey.Normalize(itemTramo.Ruta); var rutaDto = rutas.SingleOrDefault(x => x.Key == rutaKey); if (rutaDto == null) { rutaDto = new RutaDto(); rutaDto.Nombre = itemTramo.Ruta; rutaDto.Key = rutaKey; rutaDto.Id = _serviceRuta.Create(rutaDto); } //Verificamos información de la calzada var calzadaKey = NormalizerKey.Normalize(itemTramo.Calzada); if (calzadaKey.StartsWith("pavimento-flexible")) calzadaKey = "pavimento-flexible"; var calzadaDto = calzadas.SingleOrDefault(x => x.Key == calzadaKey); if (calzadaDto == null) { if (!string.IsNullOrEmpty(itemTramo.Calzada)) { calzadaDto = new CalzadaDto(); calzadaDto.Nombre = itemTramo.Calzada; calzadaDto.Key = calzadaKey; calzadaDto.Id = _serviceCalzada.Create(calzadaDto); } else { //Valor default calzadaDto = new CalzadaDto(); calzadaDto.Id = 1; } } //Mapeamos dto TramoDto tramoDto = new TramoDto(); tramoDto.IdProvincia = provinciaDto.Id; tramoDto.IdRuta = rutaDto.Id; tramoDto.IdCalzada = calzadaDto.Id; tramoDto.TramoNormalizado = itemTramo.TramoNormalizado; tramoDto.TramoDesnormalizado = itemTramo.TramoDesnormalizado; tramoDto.Detalle = itemTramo.Detalle; tramoDto.Observaciones = itemTramo.Observaciones; tramoDto.FechaActualizacion = itemTramo.Actualizacion; tramoDto.Coordenadas = itemTramo.Coordenadas; //Grabamos información del tramo _serviceTramo.CreateOrUpdate(tramoDto); } catch (Exception ex) { _logger.Error("DownloadDb.SaveData", ex.Message, ex); } } _logger.Info("DownloadDb.SaveData", $"{info.Count} registros grabados."); }