public Envelope <TPayload> Create <TPayload>(string[] topics, TPayload payload, IReadOnlyDictionary <string, string> metadata = null)
        {
            long id       = _idGenerator.GenerateNext();
            var  envelope = new Envelope <TPayload>(_originBusId, id, topics, payload);

            SetMetadata(metadata, envelope);
            return(envelope);
        }
Example #2
0
        public void Add(User user, AbstractValidator <User> validator)
        {
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            ValidationResult results = validator.Validate(user);

            if (!results.IsValid)
            {
                throw new ValidationException(results.Errors);
            }

            user.Id = idGenerator.GenerateNext();
            userStorage.Add(user);

            SendNotificationToAllSlaves(new Message()
            {
                Type = Command.Add,
                User = user
            });
        }