Пример #1
0
        public async Task Test()
        {
            _counter.Set(1);
            _valid.Set(true);
            var checker = new MockPostsChecker(TimeSpan.FromMilliseconds(20));

            checker.OnCheck.Subscribe(OnCheck);

            var manager = new PostsWatcher(
                TimeSpan.FromMilliseconds(10),
                checker);

            manager.StartWatch();
            while (true)
            {
                if (_counter.Get() == 3 || !_valid.Get())
                {
                    break;
                }
                await Task.Delay(_delay);
            }
        }
Пример #2
0
        private void AddMediaManagerComponents(IServiceCollection services)
        {
            IPostOperationValidator validator = new PostOperationValidator();

            services.AddSingleton(validator);

            IProvidersOperator @operator = new ProvidersOperator();

            services.AddSingleton(@operator);

            IPostsChecker postsChecker = new PostsChecker(validator, @operator);

            services.AddSingleton(postsChecker);

            var intervalSeconds = Convert.ToDouble(
                Configuration["MediaManager:WatchIntervalSeconds"]);

            IPostsWatcher postsWatcher = new PostsWatcher(
                TimeSpan.FromSeconds(intervalSeconds),
                postsChecker);

            services.AddSingleton(postsWatcher);
        }