public void Handle(IncluirIngressoCommand cmd) { var ingresso = new Ingresso(cmd.Id, cmd.Preco, cmd.Tipo, cmd.Lote, cmd.EventoId); if (!ingresso.IsValid()) { NotificarValidacoesErro(ingresso.ValidationResult); return; } _eventoRepository.IncluirIngresso(ingresso); if (Commit()) { _mediator.PublicarEvento(new IngressoAdicionadoEvent(ingresso.Id, ingresso.Preco, ingresso.Tipo, ingresso.Lote, ingresso.EventoId)); } }
public void Handle(IncluirEventoCommand cmd) { var cidade = new Cidade(cmd.Endereco.Cidade.Id, cmd.Endereco.Cidade.Nome, cmd.Endereco.Cidade.EstadoId); var endereco = new Endereco(cmd.Endereco.Id, cmd.Endereco.Logradouro, cmd.Endereco.Numero, cmd.Endereco.Complemento, StringHelper.RemoverCaracteresEspeciais(cmd.Endereco.Cep), cmd.Endereco.Bairro, cidade); var evento = new Evento(cmd.Id, cmd.Nome, cmd.Descricao, cmd.SubDescricao, cmd.DescPatrocinadores, cmd.DataHoraInicio, cmd.DataHoraFim, "C", cmd.CategoriaId, cmd.EmpresaId, endereco); if (!evento.IsValid()) { NotificarValidacoesErro(evento.ValidationResult); return; } if (cmd.Ingressos == null || cmd.Ingressos.Count() == 0) { _mediator.PublicarEvento(new DomainNotification(cmd.MessageType, "Ingressos não encontrado.")); return; } if (cmd.Atracoes == null || cmd.Atracoes.Count() == 0) { _mediator.PublicarEvento(new DomainNotification(cmd.MessageType, "Atrações não encontradas.")); return; } _eventoRepository.Adicionar(evento); foreach (var ingresso in cmd.Ingressos) { var ing = new Ingresso(ingresso.Id, ingresso.Preco, ingresso.Tipo, ingresso.Lote, evento.Id); if (!ing.IsValid()) { NotificarValidacoesErro(ing.ValidationResult); return; } _eventoRepository.IncluirIngresso(ing); } foreach (var atracao in cmd.Atracoes) { var atracaoObj = new Atracao(atracao.Id, atracao.Nome, atracao.Estilo); if (!atracaoObj.IsValid()) { NotificarValidacoesErro(atracaoObj.ValidationResult); return; } _eventoRepository.IncluirAtracao(atracaoObj); _eventoRepository.IncluirAtracaoEvento(new AtracaoEvento(atracaoObj.Id, evento.Id)); } foreach (var foto in cmd.Fotos) { Foto fotoBanco = _eventoRepository.BuscarFotoPorId(foto.Id); fotoBanco.AtribuirEventoId(evento.Id); _eventoRepository.AtualizarFoto(fotoBanco); } if (Commit()) { _mediator.PublicarEvento(new EventoAdicionadoEvent(evento.Id, evento.Nome, evento.Descricao, evento.SubDescricao, evento.DescPatrocinadores, evento.DataHoraInicio, evento.DataHoraFim, evento.Situacao)); } }