public static async Task <int> Handle(CreatePersonaCommand request, ITestNetDbContext _context, CancellationToken cancellationToken) { if (request.Cedula != "" && _context.Personas.Where(p => p.Cedula == request.Cedula).Any()) { throw new PersonaExistsException(request.Nombre, request.Cedula); } if (request.EmpleoId > 0 && !_context.Empleos.Where(e => e.Id == request.EmpleoId).Any()) { throw new NotFoundException("Empleo", request.EmpleoId); } var entity = new Persona { Nombre = request.Nombre, Apellido = request.Apellido, Cedula = request.Cedula, Direccion = request.Direccion, EmpleoId = request.EmpleoId }; await _context.Personas.AddAsync(entity); await _context.SaveChangesAsync(cancellationToken); return(entity.Id); }
public static async Task <int> Handle(UpdatePersonaCommand request, ITestNetDbContext _context, CancellationToken cancellationToken) { var entity = await _context.Personas.FindAsync(request.Id); if (entity == null) { throw new NotFoundException("Persona", request.Id); } if (request.EmpleoId > 0 && !_context.Empleos.Where(e => e.Id == request.EmpleoId).Any()) { throw new NotFoundException("Empleo", request.EmpleoId); } entity.Nombre = request.Nombre; entity.Apellido = request.Apellido; entity.Direccion = request.Direccion; entity.EmpleoId = request.EmpleoId; await _context.SaveChangesAsync(cancellationToken); return(request.Id); }