/// <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); }
/// <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); }