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 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); }