public async Task <IDictionary <string, int> > CalcUserWeightsAsync(int userCount) { var result = new Dictionary <string, int>(); var answerWeights = _answerRepository.CalcAnswerWeights(userCount); int index = 0; foreach (var answerWeight in answerWeights) { User user = null; if (answerWeight.UserId != null) { user = await _userRepository.GetUserByIdAsync(answerWeight.UserId); } result[user?.Name ?? $"unknown {++index}"] = answerWeight.Weight; } // var allAnswers = _storage.GetAllAnswers(); // // foreach (var answer in allAnswers) // { // if (!result.ContainsKey(answer.PartitionKey)) // { // result[answer.PartitionKey] = 0; // } // // scenarioStore.TryGetValue(answer.ScenarioId, out var scenario); // var weight = scenario // ?.Collection // ?.FirstOrDefault(x => string.Equals(x.Id, answer.PuzzleId, StringComparison.CurrentCultureIgnoreCase)) // ?.Weight; // result[answer.PartitionKey] += weight ?? 0; // } return(result); }