Пример #1
0
        private Dictionary <int, PollOptionInfo> GetOptionsWithVotes(User user)
        {
            Dictionary <int, PollOptionInfo> result = this.options.ToDictionary(kvp => kvp.Key, kvp => new PollOptionInfo {
                name = kvp.Value, votes = 0, voters = new List <int>(), selected = false
            });

            foreach (
                var vote
                in
                Vote.LoadByIds(
                    from stringId in Config.instance.mainConnection.LoadIdsByConditions(
                        Vote.TableSpec.instance,
                        new ComparisonCondition(
                            Vote.TableSpec.instance.getColumnSpec(Vote.TableSpec.FIELD_POLLID),
                            ComparisonType.EQUAL,
                            this.id.ToString()
                            ),
                        Diapasone.unlimited
                        ) select int.Parse(stringId)
                    )
                )
            {
                foreach (int optionId in vote.options)
                {
                    result[optionId].votes += 1;
                    if (this.isDetailed)
                    {
                        result[optionId].voters.Add(vote.userId);
                    }
                }
                if (user != null && vote.user.id == user.id)
                {
                    foreach (int optionId in vote.options)
                    {
                        result[optionId].selected = true;
                    }
                }
            }
            return(result);
        }