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