コード例 #1
0
        public async Task <UserWithAchievementsVM> GetFriendWithAchievementsAsync(Guid userId, Guid friendId, bool isAdmin)
        {
            var friendWithAchievements = await _friendRepository.GetFriendAsync(userId, friendId, isAdmin);

            var achievementsVM = _mapper.Map <IEnumerable <UserAchievementVM> >(friendWithAchievements.Achievements);

            var groupedByCategoryAchievements = achievementsVM.
                                                GroupBy(a => a.Category.FirstToLower()).
                                                ToDictionary(
                kv => kv.Key,
                kv => kv.AsEnumerable().GroupBy(_ => _.Type.FirstToLower()).
                ToDictionary(_ => _.Key, _ => _.Select(__ => __.Value)));

            var groupedAchievementsVM = new GroupedUserAchievementsVM()
            {
                GroupedAchievements = groupedByCategoryAchievements,
                Any = groupedByCategoryAchievements.SelectMany(kv => kv.Value).Any()
            };

            return(new UserWithAchievementsVM(
                       groupedAchievementsVM,
                       _mapper.Map <UserVM>(friendWithAchievements.User)));
        }
コード例 #2
0
 public UserWithAchievementsVM(GroupedUserAchievementsVM achievements, UserVM user)
 {
     Achievements = achievements;
     User         = user;
 }