Exemplo n.º 1
0
        /// <summary>
        /// ポイントランキングの取得
        /// </summary>
        /// <returns>   none</returns>
        public IEnumerable<MyPageGroupMemberModel> GetRanking(long groupId, int targetYear, int targetMonth, MyPageGroupMemberModel[] members = null, long loginMemberId = 0)
        {
            var result = new List<MyPageGroupMemberModel>();

            if (members == null)
            {
                members = this.GetGroupMembers(groupId, loginMemberId).ToArray();

                //グループ会員のランキング情報を取得
                pointInfoService.GetMembersWithOnlinePoints(members, targetYear, targetMonth);
            }

            foreach (var member in members)
            {
                var monthlyResults = (from mr in dbContext.MonthlyResults
                                      where mr.MemberID == member.MemberId
                                      && mr.ReleVantYear == targetYear
                                      && mr.ReleVantMonth == targetMonth
                                      select mr);

                //[SportsID]ごとにレコードがあるのでサマッている
                if (monthlyResults != null)
                {
                    foreach (var monthlyResult in monthlyResults)
                    {
                        member.ExpectNumber += monthlyResult.ExpectNumber;
                        member.CorrectPoint += monthlyResult.ExpectNumber * monthlyResult.CorrectPercent;
                    }
                }

                result.Add(member);
            }

            return result.Take(MyPageGroupDetailsViewModel.RANKING_TOP_NUM);
        }
Exemplo n.º 2
0
 /// <summary>
 /// ポイントランキングの取得
 /// </summary>
 /// <returns>   none</returns>
 public IEnumerable<MyPageGroupMemberModel> GetRanking(long groupId, int year, int month, MyPageGroupMemberModel[] members = null, long loginMemberId = 0)
 {
     return this.groupInfoService.GetRanking(groupId, year, month, members);
 }