public async Task <SuneduTitulo> Obtener(string dni) { var entidad = default(SuneduTitulo); var sql = "SELECT Dni, Datos, Creado, Actualizado FROM SuneduTitulo WHERE Dni = @dni"; using (var conexion = new SqlConnection(_configuracion.CadenaConexion)) { using var comando = new SqlCommand(sql, conexion); comando.Parameters.AddWithValue("@dni", dni); conexion.Open(); using var reader = await comando.ExecuteReaderAsync(System.Data.CommandBehavior.CloseConnection); while (reader.Read()) { entidad = new SuneduTitulo() { Dni = reader.GetString(reader.GetOrdinal("Dni")), Datos = reader.GetString(reader.GetOrdinal("Datos")), Creado = reader.GetDateTime(reader.GetOrdinal("Creado")), Actualizado = reader.GetDateTime(reader.GetOrdinal("Actualizado")) }; } } return(entidad); }
public async Task Insertar(SuneduTitulo entidad) { var sql = "INSERT INTO SuneduTitulo(Dni, Datos, Creado, Actualizado) VALUES(@dni, @datos, @creado, @actualizado) "; using var conexion = new SqlConnection(_configuracion.CadenaConexion); using var comando = new SqlCommand(sql, conexion); comando.Parameters.AddWithValue("@datos", entidad.Datos); comando.Parameters.AddWithValue("@creado", entidad.Creado); comando.Parameters.AddWithValue("@actualizado", entidad.Actualizado); comando.Parameters.AddWithValue("@dni", entidad.Dni); conexion.Open(); await comando.ExecuteNonQueryAsync(); }
public async Task Actualizar(SuneduTitulo entidad) { var sql = "UPDATE SuneduTitulo SET Datos = @datos, Creado = @creado, Actualizado = @actualizado WHERE Dni = @dni"; using var conexion = new SqlConnection(_configuracion.CadenaConexion); using var comando = new SqlCommand(sql, conexion); comando.Parameters.AddWithValue("@datos", entidad.Datos); comando.Parameters.AddWithValue("@creado", entidad.Creado); comando.Parameters.AddWithValue("@actualizado", entidad.Actualizado); comando.Parameters.AddWithValue("@dni", entidad.Dni); conexion.Open(); await comando.ExecuteNonQueryAsync(); }
public async Task <OperacionDto <List <TituloSuneduDto> > > ListarTitulos(PeticionTituloSuneduDto peticion) { var resultados = await ObtenerDeCache(peticion.Dni); bool fueDeCache = true; if (string.IsNullOrWhiteSpace(resultados)) { resultados = ObtenerResultado(peticion); fueDeCache = false; } if (string.IsNullOrWhiteSpace(resultados)) { return(new OperacionDto <List <TituloSuneduDto> >(CodigosOperacionDto.NoExiste, "No se encontró información")); } if (!string.IsNullOrWhiteSpace(resultados) && resultados.ToLower().Contains("captcha es incorrecto".ToLower())) { return(new OperacionDto <List <TituloSuneduDto> >(CodigosOperacionDto.CaptchaIncorrecto, "No se puede acceder a la info")); } var datoGuardar = new StringBuilder(resultados); resultados = resultados.Replace("\t", ""); resultados = resultados.Replace("<b>", ""); resultados = resultados.Replace(@"\u00d1", "Ñ"); resultados = resultados.Replace(@"\u00c1", "Á"); resultados = resultados.Replace(@"\u00c9", "É"); resultados = resultados.Replace(@"\u00cd", "Í"); resultados = resultados.Replace(@"\u00d3", "Ó"); resultados = resultados.Replace(@"\u00da", "Ú"); resultados = resultados.Substring(1, resultados.Length - 2).Replace("\\", ""); var infoScraper = JsonConvert.DeserializeObject <List <TituloScraperDto> >(resultados); if (infoScraper == null) { return(new OperacionDto <List <TituloSuneduDto> >(CodigosOperacionDto.NoExiste, "No se encontró información")); } if (!fueDeCache) { var entidad = await _suneduTituloDao.Obtener(peticion.Dni); if (entidad == null) { entidad = new SuneduTitulo() { Dni = peticion.Dni, Datos = datoGuardar.ToString() }; await _suneduTituloDao.Insertar(entidad); } else { entidad.Datos = datoGuardar.ToString(); entidad.Actualizado = DateTime.UtcNow; await _suneduTituloDao.Actualizar(entidad); } } return(new OperacionDto <List <TituloSuneduDto> >(infoScraper.Select(e => new TituloSuneduDto() { FechaDiploma = e.DiplFec, Institucion = e.Univ, NombreCompleto = e.Nombre, Titulo = e.TituloRev }).ToList())); }