/// <summary> /// Сгенерировать ответы. /// </summary> /// <param name="input">Входной поток с вопросами.</param> /// <param name="output">Выходной поток для ответов.</param> /// <param name="answersGenerator">Генератор ответов.</param> private static void GenerateAnswers(TextReader input, TextWriter output, IWordCompletionsGenerator answersGenerator) { int questionsCount = int.Parse(input.ReadLine(), CultureInfo.CurrentCulture); for (int i = 0; i < questionsCount; i++) { string question = input.ReadLine(); foreach (IWordCompletion completion in answersGenerator.GetTenBestCompletions(question)) output.WriteLine(completion.Word); if (i != questionsCount - 1) output.WriteLine(); if (i % 1000 == 0) Logger.WriteVerbose(string.Format(CultureInfo.CurrentCulture, Resources.AnsweredQuestionsNumber, i)); } Logger.WriteVerbose(string.Format(CultureInfo.CurrentCulture, Resources.AllQuestionsAnswered)); }
/// <summary> /// Создать экземпляр класса клиента. /// </summary> /// <param name="clientSocket">Сокет для обмена командами с клиентом.</param> /// <param name="wordCompletionsGenerator">Генератор автодополнений слов.</param> public Client(Socket clientSocket, IWordCompletionsGenerator wordCompletionsGenerator) { this.clientSocket = clientSocket; this.wordCompletionsGenerator = wordCompletionsGenerator; BeginReceive(); }
/// <summary> /// Создать экземпляр класса сервера. /// </summary> /// <param name="wordCompletionsGenerator">Генератор вариантов автодополнения слов.</param> /// <param name="portNumber">Номер порта для сервера.</param> public Server(IWordCompletionsGenerator wordCompletionsGenerator, int portNumber) { this.wordCompletionsGenerator = wordCompletionsGenerator; this.portNumber = portNumber; }