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)); } }
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)); } }
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)); } }
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)); } }