public Task <Unit> Handle(RegisterOrganizerCommand message, CancellationToken cancellationToken)
        {
            var organizer = new Organizer(message.Id, message.Name, message.Email, message.DocumentId);

            if (!organizer.IsValid())
            {
                NotifyValidationError(organizer.ValidationResult);
                return(Task.FromResult(Unit.Value));
            }

            var organizerExists = _organizerRepository.Search(o => o.DocumentId == organizer.DocumentId || o.Email == organizer.Email);

            if (organizerExists.Any())
            {
                _mediator.PublishEvent(new DomainNotification(message.MessageType, "Document ID or Email already registered"));
            }

            _organizerRepository.Add(organizer);

            if (Commit())
            {
                _mediator.PublishEvent(new OrganizerRegisteredEvent(organizer.Id, organizer.Name, organizer.Email, organizer.DocumentId));
            }

            return(Task.FromResult(Unit.Value));
        }
Exemple #2
0
        public void Handle(RegisterOrganizerCommand message)
        {
            var organizador = new Organizer(message.Id, message.Name, message.Document, message.Email);

            if (!organizador.IsValid())
            {
                NotificarValidacoesErro(organizador.ValidationResult);
                return;
            }

            var organizadorExistente = _organizadorRepository.Search(o => o.Document == organizador.Document || o.Email == organizador.Email);

            if (organizadorExistente.Any())
            {
                _bus.RaiseEvent(new DomainNotification(message.MessageType, "CPF ou e-mail já utilizados"));
            }

            _organizadorRepository.Add(organizador);

            if (Commit())
            {
                _bus.RaiseEvent(new OrganizerRegisteredEvent(organizador.Id, organizador.Name, organizador.Document, organizador.Email));
            }
        }