Beispiel #1
0
        public void Handle(AtualizarEventoCommand message)
        {
            var eventoAtual = _eventoRepository.GetById(message.Id);

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

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

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

            _eventoRepository.Update(evento);

            if (Commit())
            {
                _bus.RaiseEvent(new EventoAtualizadoEvent(message.Id, message.Nome,
                                                          message.DescricaoCurta, message.DescricaoLonga, message.DataInicio,
                                                          message.DataFim, message.Gratuito, message.Valor, message.Online,
                                                          message.NomeDaEmpresa));
            }
        }
Beispiel #2
0
        public void Handle(RegistrarEventoCommand message)
        {
            var endereco = new Endereco(message.Id, message.Endereco.Logradouro, message.Endereco.Numero,
                                        message.Endereco.Complemento, message.Endereco.Bairro, message.Endereco.CEP, message.Endereco.Cidade,
                                        message.Endereco.Estado, message.Id);

            var evento = EventoFactory.NovoEventoCompleto(message.Id, message.Nome,
                                                          message.DescricaoCurta, message.DescricaoLonga, message.DataInicio,
                                                          message.DataFim, message.Gratuito, message.Valor, message.Online,
                                                          message.NomeDaEmpresa, message.OrganizadorId, endereco, message.CategoriaId);

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

            // Validações de Negócio
            _eventoRepository.Add(evento);

            // Persistência
            if (Commit())
            {
                _bus.RaiseEvent(new EventoRegistradoEvent(evento.Id, evento.Nome,
                                                          evento.DataInicio, evento.DataFim, evento.Gratuito, evento.Valor,
                                                          evento.Online, evento.NomeDaEmpresa));
            }
        }
Beispiel #3
0
        public void Handle(AtualizarEventoCommand message)
        {
            //TODO: Obter duas vezes o evento????????
            if (!EventoExistente(message.Id, message.MessageType))
            {
                return;
            }

            var eventoAtual = _eventoRepository.ObterPorId(message.Id);

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

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

            //TODO: pq não está na entity do evento? Nãi é ele a responsavel por saber o que é obrigatorio por ela ou não?
            if (!evento.Online && evento.Endereco is null) //TODO: == NULL RETORNO SEMPRE TRUE
            {
                _bus.RaiseEvent(new DomainNotification(message.MessageType, "Não é possível atualizar um evento sem informar o endereço"));
                return;
            }

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

            _eventoRepository.Atualizar(evento);

            if (Commit())
            {
                //Notificar processo concluido
                _bus.RaiseEvent(new EventoAtualizadoEvent(
                                    evento.Id,
                                    evento.Nome,
                                    evento.DescricaoCurta,
                                    evento.DescricaoLonga,
                                    evento.DataInicio,
                                    evento.DateFinal,
                                    evento.Gratuito,
                                    evento.Valor,
                                    evento.Online,
                                    evento.NomeEmpresa));
            }
        }
Beispiel #4
0
        public void Handle(RegistrarEventoCommand message)
        {
            var endereco = new Endereco(message.Endereco.Id, message.Endereco.Logradouro, message.Endereco.Numero, message.Endereco.Complemento, message.Endereco.Bairro, message.Endereco.CEP, message.Endereco.Cidade, message.Endereco.Estado, message.Endereco.EventoId);
            var evento   = EventoFactory.NovoEventoCompleto(message.Id, //TODO Precisa???
                                                            message.Nome,
                                                            message.DataInicio,
                                                            message.DateFinal,
                                                            message.Gratuito,
                                                            message.Valor,
                                                            message.Online,
                                                            message.NomeEmpresa,
                                                            message.OrganizadorId,
                                                            endereco,
                                                            message.CategoriaId);

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

            // TODO:
            //Validações de negocio!
            //valida se já existe um evento com o nome igual, mesma data...
            //Organizador pode registrar o evento?

            //Persistencia
            _eventoRepository.Adicionar(evento);

            if (Commit())
            {
                //Notificar processo concluido
                _bus.RaiseEvent(new EventoRegistradoEvent(
                                    evento.Id,
                                    evento.Nome,
                                    evento.DataInicio,
                                    evento.DateFinal,
                                    evento.Gratuito,
                                    evento.Valor,
                                    evento.Online,
                                    evento.NomeEmpresa));
            }
        }