private void Initialize(ManagedInstanceDirective directive = null)
        {
            Directives = directive ?? new ManagedInstanceDirective();

            Log.Logger.Debug("Instance initialized with {@directive}", Directives);

            Information = new Information(this);
            Statistics = new Statistic(this);
            Synchronization = new Synchronization(this);

            Announcers = new AnnouncerCollection();
            Folders = new FoldersCollection();
            Errors = new ErrorCollection();

            PossibleEndpoints = new RestEndpointCollection();

            Id = Guid.NewGuid();

            ConfigureThreads();
            ConfigureStateMachine();
        }
        private void Initialize(ManagedInstanceDirective directive = null)
        {
            Directives = directive ?? new ManagedInstanceDirective();

            Log.Logger.Debug("Instance initialized with {@directive}", Directives);

            Information     = new Information(this);
            Statistics      = new Statistic(this);
            Synchronization = new Synchronization(this);

            Announcers = new AnnouncerCollection();
            Folders    = new FoldersCollection();
            Errors     = new ErrorCollection();

            PossibleEndpoints = new RestEndpointCollection();

            Id = Guid.NewGuid();

            ConfigureThreads();
            ConfigureStateMachine();
        }
        public AnnouncerEventHandler(AnnouncerCollection collection)
        {
            _collection = collection;

            _collection.CollectionChanged += OnCollectionChanged;
        }
        public AnnouncerEventHandler(AnnouncerCollection collection)
        {
            _collection = collection;

            _collection.CollectionChanged += OnCollectionChanged;
        }