public async Task <IWordsDetector> GetWordsDetectorAsync(WordDetectorType type)
        {
            var wordDetector = (IWordsDetector)_serviceProvider.GetService(typeof(IWordsDetector));

            switch (type)
            {
            case WordDetectorType.Stopwords:
                if (_stopwordsDetector == null)
                {
                    await wordDetector.LoadAsync(_sourceProvider.GetSourceProvider().StopWords);

                    _stopwordsDetector = wordDetector;
                }
                return(_stopwordsDetector);

            case WordDetectorType.Cursewords:
                if (_cursewordsDetector == null)
                {
                    await wordDetector.LoadAsync(_sourceProvider.GetSourceProvider().CurseWords);

                    _cursewordsDetector = wordDetector;
                }
                return(_cursewordsDetector);

            default:
                throw new ArgumentException();
            }
        }
예제 #2
0
        public async Task Init()
        {
            _stopWordsDetector = await _wordDetectorFactory.GetWordsDetectorAsync(WordDetectorType.Stopwords);

            _curseWordsDetector = await _wordDetectorFactory.GetWordsDetectorAsync(WordDetectorType.Cursewords);

            DectectorData = DectectorData ?? await _detectorDataProvider.GetSmallTalksDetectorDataFromSourceAsync(_sourceProvider.GetSourceProvider());
        }