Exemplo n.º 1
0
        public void Handle(OrganizerRegistrationCommand message)
        {
            var organizer = new Organizer(message.Id, message.SIN, message.Name, message.Email);

            if (!organizer.IsValid())
            {
                NotifyValidationError(organizer.ValidationResult);
                return;
            }

            var existOrganizer = _organizerRepository.Find(o => o.SIN == organizer.SIN || o.Email == organizer.Email);

            if (existOrganizer.Any())
            {
                _bus.RaiseEvent(new DomainNotification(message.MessageType, "SIN or E-mail already exists"));
            }

            _organizerRepository.Add(organizer);

            //TODO: Add to repository

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