using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using MSAdminUsuarios.Context; using MSAdminUsuarios.Models; namespace MSAdminUsuarios.Controllers { [Route("[controller]")] [ApiController] public class UsuariosTempController : ControllerBase { private readonly ModelContext _context; private readonly ILogger _logger; private ErrorModel _errorModel; public UsuariosTempController(ModelContext context, ILogger logger) { _context = context; _logger = logger; _errorModel = new ErrorModel(); } [HttpGet] public async Task Get() { _errorModel = new ErrorModel(); try { List externos = await _context.USUARIOSTEMP.OrderBy(q => q.NU_PK_USUTMP).ToListAsync(); return Ok(externos); } catch (Exception) { _errorModel.error = true; _errorModel.cuerpo.Add("Error con la base de datos."); return BadRequest(_errorModel); } } [HttpPost] public async Task Post(USUARIOSTEMP nuevo) { _errorModel = new ErrorModel(); try { if (nuevo == null) { _errorModel.error = true; _errorModel.cuerpo.Add("No se envió solicitud."); return Conflict(_errorModel); } _context.USUARIOSTEMP.Add(nuevo); await _context.SaveChangesAsync(); _errorModel.error = false; _errorModel.cuerpo.Add("Solicitud de usuario temporal guardado correctamente."); return Ok(_errorModel); } catch (Exception) { _errorModel.error = true; _errorModel.cuerpo.Add("Error con la base de datos."); return BadRequest(_errorModel); } } [HttpPatch] public async Task Patch(USUARIOSTEMP editado) { _errorModel = new ErrorModel(); try { if (editado == null) { _errorModel.error = true; _errorModel.cuerpo.Add("No se envió solicitud."); return Conflict(_errorModel); } USUARIOSTEMP? existente = await _context.USUARIOSTEMP.FirstOrDefaultAsync(ut => ut.NU_PK_USUTMP == editado.NU_PK_USUTMP); if (existente == null) { _errorModel.error = true; _errorModel.cuerpo.Add("Diseño no encontrado."); return Conflict(_errorModel); } _context.Entry(existente).CurrentValues.SetValues(editado); await _context.SaveChangesAsync(); _errorModel.error = false; _errorModel.cuerpo.Add("Solicitud de usuario temporal guardado correctamente."); return Ok(_errorModel); } catch (Exception) { _errorModel.error = true; _errorModel.cuerpo.Add("Error con la base de datos."); return BadRequest(_errorModel); } } } }