public async Task <IActionResult> Get(string cpfAluno) { // para atender os requisitos de segurança atribui o id do usuário ao comando GerarMatriculaCommand command = new GerarMatriculaCommand(cpfAluno, User.Identity.Name); // realiza a lógica da geração e gravação do ra no banco var result = (GerarMatriculaCommandResult)await _matriculaHandler.Handle(command); // se houve alguma inconsitência if (!result.Success) { return(BadRequest(result)); } // caso matricula gerada e gravada no banco posta a mensagem no barramento // para que o serviço de integração a consuma IntegrarMatriculaCommand integrarMatriculaCommand = new IntegrarMatriculaCommand(); var matriculaQueryResult = (BuscarMatriculaQueryResult)result.Data; integrarMatriculaCommand.Id = matriculaQueryResult.Id; integrarMatriculaCommand.DataHora = matriculaQueryResult.DataHora.ToString(); integrarMatriculaCommand.Cpf = matriculaQueryResult.Cpf; integrarMatriculaCommand.Ra = matriculaQueryResult.Ra; integrarMatriculaCommand.IsAtivo = matriculaQueryResult.IsAtivo; integrarMatriculaCommand.OrigemIntegracao = ORIGEM_INTEGRACAO; integrarMatriculaCommand.IdUsuarioEmail = User.Identity.Name;; await _busClient.PublishAsync(integrarMatriculaCommand); return(Ok(result)); }
public CommandResult Create( [FromBody] CreateMatriculaCommand command, [FromServices] MatriculaHandler handler, [FromServices] IPagamentoRepository pagrepository ) { if (pagrepository.GetAll(command.IdAluno).Count() == 0) { return new CommandResult() { Data = command, Message = "Não há pagamentos para o aluno", Sucess = false } } ; return((CommandResult)handler.Handle(command)); }