예제 #1
0
        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);
        }