Example #1
0
        public async Task <MatchingResponse> Simulate(MatchingRequest request, bool addTestData)
        {
            string[] sentences = await _languageService.GetRandomSentences(request.Language, request.SentenceCount);

            string[] words = await _languageService.GetRandomWords(request.Language, request.WordCount);

            var response = new MatchingResponse()
            {
                Summaries = new MatchingSummary[request.Matcher.Length]
            };

            if (addTestData)
            {
                response.Sentences = sentences;
                response.Words     = words;
            }

            var sentencesEq = sentences.Select((sentence) => IMatcher <char> .ConvertFromString(sentence)).ToArray();
            var wordsEq     = words.Select((word) => IMatcher <char> .ConvertFromString(word)).ToArray();

            //SPAWN IN NEW THREAD AND THEN AWAIT FINISH
            for (int mI = 0; mI < response.Summaries.Length; mI++)
            {
                response.Summaries[mI] = new MatchingSummary()
                {
                    Matcher = request.Matcher[mI]
                };
                GetMatcherResponse(sentencesEq, wordsEq, response.Summaries[mI]);
            }

            return(response);
        }