示例#1
0
        public int Create(ProvinciaDto dto)
        {
            int result = default(int);

            try
            {
                string          key         = NormalizerKey.Normalize(dto.Nombre);
                ProvinciaEntity provinciaDb = _dbContext.ProvinciaDataSet.FirstOrDefault(x => x.Key == key);
                if (provinciaDb != null)
                {
                    return(result);
                }

                provinciaDb = MapDtoToEntity.Map(dto);
                _dbContext.ProvinciaDataSet.Add(provinciaDb);
                _dbContext.SaveChanges();

                result = provinciaDb.IdProvincia;
            }
            catch (DbEntityValidationException ex)
            {
                foreach (var eve in ex.EntityValidationErrors)
                {
                    foreach (var ve in eve.ValidationErrors)
                    {
                        _logger.Error("ServiceProvincia.CreateOrUpdate", $"PropertyName: {ve.PropertyName} - ErrorMessage: {ve.ErrorMessage}", ex);
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Error("ServiceProvincia.Create", ex.Message, ex);
            }
            return(result);
        }
        public IHttpActionResult GetAllByRuta(int idRuta)
        {
            IEnumerable <ProvinciaDto>      provincias   = _serviceProvincia.GetAllByRuta(idRuta);
            IEnumerable <DropDownItemModel> provinciasVM = MapDtoToViewModel.Map(provincias);

            provinciasVM = provinciasVM.Where(x => NormalizerKey.Normalize(x.Nombre) != "bahia-blanca");
            Result result = new Result(provinciasVM);

            return(result.CreateResponse(this));
        }
        public IHttpActionResult GetAllInfo()
        {
            IEnumerable <ProvinciaDto> provincias   = _serviceProvincia.GetAll(false);
            IEnumerable <InfoMapModel> provinciasVM = MapDtoToViewModel.MapInfo(provincias);

            provinciasVM = provinciasVM.Where(x => NormalizerKey.Normalize(x.Nombre) != "bahia-blanca");
            Result result = new Result(provinciasVM);

            return(result.CreateResponse(this));
        }
        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 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.");
        }