public async Task <IActionResult> PutEntrada(int id, EntradaRegistrationDTO entrada) { if (id != entrada.IdEntrada) { return(BadRequest()); } Entrada entradaR = new Entrada() { IdEntrada = entrada.IdEntrada, IdEntidad = entrada.IdEntidad, Titulo = entrada.Titulo, Texto = entrada.Texto, IdUsuario = entrada.IdUsuario, CreatedAt = entrada.CreatedAt, UpdatedAt = DateTime.Now }; _context.Entry(entradaR).State = EntityState.Modified; if (entrada.ListaCategorias != null && entrada.ListaCategorias.Count > 0) { var entradas = _context.EntradaCategorias.Where(x => x.IdEntrada == id).AsEnumerable(); _context.EntradaCategorias.RemoveRange(entradas); foreach (int i in entrada.ListaCategorias) { if (await _context.Categorias.FirstOrDefaultAsync(x => x.IdCategoria == i) != null) { var entradaCategoria = new EntradaCategoria { IdCategoria = i, IdEntrada = entrada.IdEntrada }; _context.EntradaCategorias.Add(entradaCategoria); } } } try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EntradaExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <Entrada> > PostEntrada(EntradaRegistrationDTO entradaDTO) { if (entradaDTO.ListaCategorias == null || entradaDTO.ListaCategorias.Count == 0) { return(BadRequest("Se necesitan de una o más categorias")); } var clientTexto = new HttpClient(); var queryStringTexto = HttpUtility.ParseQueryString(string.Empty); // Request headers clientTexto.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "399faba124ec4fbfbef082c9f76267e3"); // Request parameters queryStringTexto["classify"] = "true"; var uriTexto = "https://miactlan.cognitiveservices.azure.com/contentmoderator/moderate/v1.0/ProcessText/Screen?" + queryStringTexto; HttpResponseMessage responseTexto; string textoAEvaluar = entradaDTO.Titulo + " " + entradaDTO.Texto; responseTexto = await clientTexto.PostAsync(uriTexto, new StringContent(textoAEvaluar, Encoding.UTF8, "text/plain")); var responseTextoText = await responseTexto.Content.ReadAsStringAsync(); var resultTexto = JsonConvert.DeserializeObject <TextApiResponse>(responseTextoText); if (resultTexto.Terms.Count > 0) { return(BadRequest("El texto contiene palabras ofensivas.")); } Entrada entrada = new Entrada() { Titulo = entradaDTO.Titulo, Texto = entradaDTO.Texto, IdEntidad = entradaDTO.IdEntidad, IdUsuario = entradaDTO.IdUsuario, CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now }; _context.Entradas.Add(entrada); await _context.SaveChangesAsync(); foreach (int i in entradaDTO.ListaCategorias) { if (await _context.Categorias.FirstOrDefaultAsync(x => x.IdCategoria == i) != null) { var entradaCategoria = new EntradaCategoria { IdCategoria = i, IdEntrada = entrada.IdEntrada }; _context.EntradaCategorias.Add(entradaCategoria); } } await _context.SaveChangesAsync(); return(Ok(entrada)); }