public void Handle(AtualizarEventoCommand message)
        {
            if (!EventoExistente(message.Id, message.MessageType))
            {
                return;
            }

            var evento = EventoModel.EventoFactory.NovoEventoCompleto(message.Id, message.Nome, message.DescricaoCurta,
                                                                      message.DescricaoLonga, message.DataInicio, message.DataFim, message.Gratuito, message.Valor,
                                                                      message.Online, message.NomeEmpresa, null);

            if (!EventoValido(evento))
            {
                return;
            }

            _eventoRepository.Update(evento);

            if (Commit())
            {
                _bus.RaiseEvent(new EventoAtualizadoEvent(evento.Id, evento.Nome, evento.DescricaoCurta,
                                                          evento.DescricaoLonga, evento.DataInicio, evento.DataFim, evento.Gratuito, evento.Valor,
                                                          evento.Online, evento.NomeEmpresa));
            }
        }
        public void Handle(AtualizarEventoCommand message)
        {
            var eventoAtual = _eventoRepository.ObterPorId(message.Id);

            if (!EventoExistente(message.Id, message.MessageType))
            {
                return;
            }


            //TODO: Validar se o evento pertence a pessoa que esta editando.


            var evento = Evento.EventoFactory.NovoEventoCompleto(message.Id, message.Nome, message.DescricaoCurta, message.DescricaoLonga, message.DataInicio, message.DataFim,
                                                                 message.Gratuito, message.Valor, message.Online, message.NomeEmpresa, message.OrganizadorId, eventoAtual.Endereco, message.CategoriaId);

            if (!EventoValido(evento))
            {
                return;
            }

            _eventoRepository.Atualizar(evento);

            if (Commit())
            {
                _bus.RaiseEvent(new EventoAtualizadoEvent(evento.Id, evento.Nome, evento.DescricaoCurta, evento.DescricaoLonga, evento.DataInicio, evento.DataFim, evento.Gratuito, evento.Valor, evento.Online, evento.NomeEmpresa));
            }
        }
        public void Handle(AtualizarEventoCommand message)
        {
            //verifica se evento existe
            if (!EventoExistente(message.Id, message.MessageType))
            {
                return;
            }

            //recebe o comando e tranforma na entidade
            //trabalhar com Factory pois permite melhor flexibilização na construção da classe
            var evento = Evento.EventoFactory.NovoEventoCompleto(message.Id, message.Nome, message.DescricaoCurta,
                                                                 message.DescricaoLonga, message.DataInicio, message.DataFim,
                                                                 message.Gratuito, message.Valor, message.OnLine, message.NomeEmpresa, null);

            if (!EventoValido(evento))
            {
                return;
            }

            _eventoRepository.Atualizar(evento);

            //se evento foi atualizado com sucesso
            if (Commit())
            {
                _bus.RaiseEvent(new EventoAtualizadoEvent(evento.Id, evento.Nome, evento.DescricaoCurta, evento.DescricaoLonga,
                                                          evento.DataInicio, evento.DataFim, evento.Gratuito, evento.Valor,
                                                          evento.Online, evento.NomeEmpresa));
            }
        }
        public Task Handle(AtualizarEventoCommand Message, CancellationToken cancellationToken)
        {
            var eventoAtual = _eventoRepository.ObterPorId(Message.Id);

            if (!EventoExistente(Message.Id, Message.MessageType))
            {
                return(Task.FromResult(Unit.Value));
            }

            if (eventoAtual.OrganizadorId != _user.GetUserId())
            {
                _mediator.PublicarEvento(new DomainNotification(Message.MessageType, "Evento não pertence ao Organizador"));
                return(Task.FromResult(Unit.Value));
            }

            var evento = Evento.EventoFactory.NovoEventoCompleto(Message.Id,
                                                                 Message.Nome,
                                                                 Message.DescricaoCurta,
                                                                 Message.DescricaoLonga,
                                                                 Message.DataInicio,
                                                                 Message.DataFim,
                                                                 Message.Gratuito,
                                                                 Message.Valor,
                                                                 Message.Online,
                                                                 Message.NomeEmpresa,
                                                                 Message.OrganizadorId, eventoAtual.Endereco, Message.CategoriaId);

            if (!evento.Online && evento.Endereco == null)
            {
                _mediator.PublicarEvento(new DomainNotification(Message.MessageType, "Não é possível atualizar um evento sem informar um endereço"));
                return(Task.FromResult(Unit.Value));
            }

            if (!EventoValido(evento))
            {
                return(Task.FromResult(Unit.Value));
            }

            _eventoRepository.Atualizar(evento);

            if (Commit())
            {
                _mediator.PublicarEvento(new EventoAtualizadoEvent(evento.Id,
                                                                   evento.Nome,
                                                                   evento.DescricaoCurta,
                                                                   evento.DescricaoLonga,
                                                                   evento.DataInicio,
                                                                   evento.DataFim,
                                                                   evento.Gratuito,
                                                                   evento.Valor,
                                                                   evento.Online,
                                                                   evento.NomeEmpresa));
            }

            return(Task.FromResult(Unit.Value));
        }
Beispiel #5
0
        public void Handle(AtualizarEventoCommand message)
        {
            var eventoAtual = _eventoRepository.ObterPorId(message.Id);

            if (!EventoExistente(message.Id, message.MessageType))
            {
                return;
            }

            if (eventoAtual.OrganizadorId != _user.GetUserId())
            {
                _bus.RaiseEvent(new DomainNotification(message.MessageType, "Evento não pertence ao Organizador."));
                return;
            }

            var evento = Evento.EventoFactory.NovoEventoCompleto(message.Id,
                                                                 message.Nome,
                                                                 message.DescricaoCurta,
                                                                 message.DescricaoLonga,
                                                                 message.DataInicio,
                                                                 message.DataFim,
                                                                 message.Gratuito,
                                                                 message.Valor,
                                                                 message.Online,
                                                                 message.NomeEmpresa,
                                                                 message.OrganizadorId,
                                                                 eventoAtual.Endereco,
                                                                 message.CategoriaId);

            if (!evento.Online && evento.Endereco == null)
            {
                _bus.RaiseEvent(new DomainNotification(message.MessageType, "Não é possível atualizar um evento online sem informar o endereço."));
            }

            if (!EventoValido(evento))
            {
                return;
            }

            _eventoRepository.Atualizar(evento);

            if (Commit())
            {
                _bus.RaiseEvent(new EventoAtualizadoEvent(evento.Id, evento.Nome, evento.DescricaoCurta, evento.DescricaoLonga, evento.DataInicio, evento.DataFim, evento.Gratuito, evento.Valor, evento.Online, evento.NomeEmpresa));
            }
        }
        public Task Handle(AtualizarEventoCommand message, CancellationToken cancellationToken)
        {
            var eventoAtual = _eventoRepository.ObterPorId(message.Id);

            if (!EventoExistente(message.Id, message.MessageType))
            {
                return(Task.CompletedTask);
            }

            // To Do: Validar se o evento pertence a pessoa que está editando. Usuário logado é diferente do usuário criador do evento, portanto não posso alterar
            // Com o GetUserId vc garante pegar o usuário que está de fato conectado no momento
            if (eventoAtual.OrganizadorId != _user.GetUserId())
            {
                _mediator.PublicarEvento(new DomainNotification(message.MessageType, "Evento não pertence ao Organizador"));
                return(Task.CompletedTask);
            }

            var evento = Evento.EventoFactory.NovoEventoCompleto(message.Id, message.Nome, message.DescricaoCurta,
                                                                 message.DescricaoLonga, message.DataInicio, message.DataFim, message.Gratuito, message.Valor,
                                                                 message.Online, message.NomeEmpresa, message.OrganizadorId, eventoAtual.Endereco, message.CategoriaId);

            if (!evento.Online && evento.Endereco == null)
            {
                _mediator.PublicarEvento(new DomainNotification(message.MessageType, "Não é possível atualizar um evento sem informar o endereço"));
                return(Task.CompletedTask);
            }

            if (!EventoValido(evento))
            {
                return(Task.CompletedTask);
            }

            _eventoRepository.Atualizar(evento);

            if (Commit())
            {
                _mediator.PublicarEvento(new EventoAtualizadoEvent(evento.Id, evento.Nome, evento.DescricaoCurta, evento.DescricaoLonga, evento.DataInicio, evento.DataFim, evento.Gratuito, evento.Valor, evento.Online, evento.NomeEmpresa));
            }

            return(Task.CompletedTask);
        }
        public Task <bool> Handle(AtualizarEventoCommand message, CancellationToken cancellationToken)
        {
            var eventoAtual = _eventoRepository.ObterPorId(message.Id);

            if (!EventoExiste(message.Id, message.MessageType))
            {
                return(Task.FromResult(false));
            }

            if (eventoAtual.OrganizadorId != _user.GetUserId()) // Recupera o usuário logado
            {
                _mediator.PublicarEvento(new DomainNotification(message.MessageType, "Evento não pertence ao Organizador!"));
                return(Task.FromResult(false));
            }

            var evento = Evento.EventoFactory.NovoEvento(message.Id, message.Nome, message.DescricaoCurta, message.DescricaoLonga,
                                                         message.DataInicio, message.DataFim, message.Gratuito, message.Valor,
                                                         message.Online, message.NomeEmpresa, message.OrganizadorId, eventoAtual.Endereco, message.CategoriaId);

            if (!evento.Online && evento.Endereco == null)
            {
                _mediator.PublicarEvento(new DomainNotification(message.MessageType, "Não é possível atualizar um evento presencial sem informar o endereço!"));
                return(Task.FromResult(false));
            }

            if (!EventoValido(evento))
            {
                return(Task.FromResult(false));
            }

            _eventoRepository.Atualizar(evento);

            if (Commit())
            {
                _mediator.PublicarEvento(new EventoAtualizadoEvent(evento.Id, evento.Nome));
            }

            return(Task.FromResult(true));
        }
Beispiel #8
0
 public void Handle(AtualizarEventoCommand message)
 {
     throw new NotImplementedException();
 }
Beispiel #9
0
        public void Handle(AtualizarEventoCommand message)
        {
            var eventoAtual = _eventoRepository.ObterPorId(message.Id);

            // Verifica se há evento com o ID informado
            if (!EventoExistente(message.Id, message.MessageType))
            {
                return;
            }

            // Verifica se o evento que estou editando é meu mesmo
            if (eventoAtual.OrganizadorId != _user.GetUserId())
            {
                _bus.RaiseEvent(new DomainNotification(message.MessageType, "Evento não pertence ao Organizador!"));
                return;
            }

            var evento = Evento.EventoFactory.NovoEventoCompleto(
                message.Id,
                message.Nome,
                message.DescricaoCurta,
                message.DescricaoLonga,
                message.DataInicio,
                message.DataFim,
                message.Gratuito,
                message.Valor,
                message.Online,
                message.NomeEmpresa,
                message.OrganizadorId,
                eventoAtual.Endereco,
                message.CategoriaId
                );

            if (!evento.Online && evento.Endereco.Equals(null))
            {
                _bus.RaiseEvent(new DomainNotification(message.MessageType, "Não é possível atualizar o evento sem informar o endereço."));
                return;
            }

            // Valida evento
            if (!EventoValido(evento))
            {
                return;
            }

            // Faz o update(atualização) do evento
            _eventoRepository.Atualizar(evento);

            // Lança o evento se tudo estiver correto
            if (Commit())
            {
                _bus.RaiseEvent(new EventoAtualizadoEvent(
                                    evento.Id,
                                    evento.Nome,
                                    evento.DescricaoCurta,
                                    evento.DescricaoLonga,
                                    evento.DataInicio,
                                    evento.DataFim,
                                    evento.Gratuito,
                                    evento.Valor,
                                    evento.Online,
                                    evento.NomeEmpresa
                                    ));
            }
        }