public async Task Handle(SolicitacaoLocacaoAprovadaEvent message, CancellationToken cancellationToken) { Solicitacao solicitacaoParaAprovar = await _solicitacaoRepository.ObterPorId(message.SolicitacaoId); solicitacaoParaAprovar.Aprovar(); Locacao novaLocacao = new Locacao(solicitacaoParaAprovar.Id, solicitacaoParaAprovar.UsuarioLocatarioId, solicitacaoParaAprovar.EmpresaId, solicitacaoParaAprovar.QuadraId, solicitacaoParaAprovar.TempoTotalLocacaoSolicitado, message.InformacoesTempoQuadra); _locacaoRepository.AdicionarLocacao(novaLocacao); _solicitacaoRepository.AtualizarSolicitacao(solicitacaoParaAprovar); if (await _locacaoRepository.Commit()) { await _mediatr.Publish(new LocacaoCriadaEvent(novaLocacao.Id)); } }
public async Task <ValidationResult> Handle(SolicitarCancelamentoLocacaoCommand message, CancellationToken cancellationToken) { if (!message.IsValid()) { return(message.ValidationResult); } Solicitacao solicitacaoParaCancelar = await _solicitacaoRepository.ObterPorId(message.SolicitacaoId); if (solicitacaoParaCancelar is null) { return(await NotifyAndReturn("Solicitação não encontrada.")); } solicitacaoParaCancelar.AguardarCancelamento(); _solicitacaoRepository.AtualizarSolicitacao(solicitacaoParaCancelar); return(await SaveAndPublish(new SolicitacaoCancelamentoLocacaoEnviadaEvent(solicitacaoParaCancelar.Id, solicitacaoParaCancelar.EmpresaId))); }