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(); } }
public async Task Init() { _stopWordsDetector = await _wordDetectorFactory.GetWordsDetectorAsync(WordDetectorType.Stopwords); _curseWordsDetector = await _wordDetectorFactory.GetWordsDetectorAsync(WordDetectorType.Cursewords); DectectorData = DectectorData ?? await _detectorDataProvider.GetSmallTalksDetectorDataFromSourceAsync(_sourceProvider.GetSourceProvider()); }