Ejemplo n.º 1
0
 public RegistrarEventoCommand(
     string nome,
     string descricaoCurta,
     string descricaoLonga,
     DateTime dataInicio,
     DateTime dataFim,
     bool gratuito,
     decimal valor,
     bool online,
     string nomeEmpresa,
     Guid organizadorId,
     Guid categoriaId,
     IncluirEnderecoEventoCommand endereco
     )
 {
     Nome           = nome;
     DescricaoCurta = descricaoCurta;
     DescricaoLonga = descricaoLonga;
     DataInicio     = dataInicio;
     DataFim        = dataFim;
     Gratuito       = gratuito;
     Valor          = valor;
     Online         = online;
     NomeEmpresa    = nomeEmpresa;
     OrganizadorId  = organizadorId;
     CategoriaId    = categoriaId;
     Endereco       = endereco;
 }
        public Task <bool> Handle(IncluirEnderecoEventoCommand message, CancellationToken cancellationToken)
        {
            var endereco = new Endereco(message.Id, message.Logradouro, message.Numero, message.Complemento, message.Bairro, message.CEP, message.Cidade, message.Estado, message.EventoId.Value);

            if (!endereco.EhValido())
            {
                NotificarValidacoesErro(endereco.ValidationResult);
                return(Task.FromResult(false));
            }

            var evento = _eventoRepository.ObterPorId(message.EventoId.Value);

            evento.TornarPresencial();

            _eventoRepository.Atualizar(evento);
            _eventoRepository.AdicionarEndereco(endereco);

            if (Commit())
            {
                _mediator.PublicarEvento(new EnderecoEventoAdicionadoEvent(endereco.Id, endereco.Logradouro, endereco.Numero, endereco.Complemento, endereco.Bairro, endereco.CEP, endereco.Cidade, endereco.Estado, endereco.EventoId.Value));
            }

            return(Task.FromResult(true));
        }