コード例 #1
0
        public static Dictionary <Guid, DailyStandingUser> DetermineStanding(
            this List <Place> _places,
            Guid _dailyStandingGuid,
            Dictionary <Guid, DailyStandingUser> _standings = null)
        {
            if (_standings == null)
            {
                _standings = new Dictionary <Guid, DailyStandingUser>();
            }

            int position = 1;

            foreach (var place in _places)
            {
                foreach (var userStat in place.UsersAtThisPosition)
                {
                    DailyStandingUser dsu;
                    if (_standings.ContainsKey(userStat.UserGuid))
                    {
                        dsu = _standings[userStat.UserGuid];
                    }
                    else
                    {
                        dsu                     = new DailyStandingUser();
                        dsu.Guid                = Guid.NewGuid();
                        dsu.UserGuid            = userStat.UserGuid;
                        dsu.DisplayName         = userStat.DisplayName;
                        dsu.ParentGuid          = _dailyStandingGuid;
                        dsu.Active              = true;
                        dsu.ApprovedTagPosition = 0;
                        dsu.ApprovedTagCount    = 0;
                        dsu.NewHydrantPosition  = 0;
                        dsu.NewHydrantCount     = 0;

                        _standings.Add(dsu.UserGuid, dsu);
                    }

                    if (place.SortedBy == UserStatSortColumn.NewHydrant)
                    {
                        dsu.NewHydrantCount    = place.Score;
                        dsu.NewHydrantPosition = position;
                    }
                    else if (place.SortedBy == UserStatSortColumn.ApprovedTags)
                    {
                        dsu.ApprovedTagCount    = place.Score;
                        dsu.ApprovedTagPosition = position;
                    }
                }

                position += place.UsersAtThisPosition.Count;
            }


            return(_standings);
        }
コード例 #2
0
        public void Persist(DailyStandingUser _dailyStandingUser)
        {
            DailyStandingUserDAO dao = new DailyStandingUserDAO(MongoDB);

            dao.Persist(_dailyStandingUser);
        }