コード例 #1
0
        public async Task <List <UserAchievementDto> > GetAllUserAchievements(int userId)
        {
            var userAchievements = await _mimoDbContext.UserAchievements
                                   .Include(ua => ua.AchievementFk)
                                   .Include(ua => ua.AchievementFk.AchievementTypeFk)
                                   .Where(ua => ua.UserId == userId)
                                   .ToListAsync();

            List <UserAchievementDto> userAchievementDtos = new List <UserAchievementDto>();

            foreach (var userAchievement in userAchievements)
            {
                UserAchievementDto userAchievementDto = new UserAchievementDto
                {
                    AchievementId       = userAchievement.AchievementId,
                    AchievementTypeName = userAchievement.AchievementFk.AchievementTypeFk.AchievementTypeName,
                    Completed           = userAchievement.Completed,
                    Id       = userAchievement.Id,
                    Progress = userAchievement.Progress,
                    UserId   = userAchievement.UserId
                };

                userAchievementDtos.Add(userAchievementDto);
            }

            return(userAchievementDtos);
        }
コード例 #2
0
        private async Task <HttpStatusCode> UpdateLessonCountAchievement(AchievementDto achievementDto, int userId, List <UserAchievementDto> userAchievementDtos)
        {
            UserAchievementDto lessonCountUserAchievementDto = userAchievementDtos
                                                               .Where(uad => uad.AchievementId == achievementDto.Id)
                                                               .FirstOrDefault();

            if (lessonCountUserAchievementDto == null)
            {
                PostUserAchievementDto postUserAchievementDto = new PostUserAchievementDto
                {
                    AchievementId = achievementDto.Id,
                    Completed     = achievementDto.RequiredCount == 1,
                    Progress      = 1,
                    UserId        = userId
                };

                return(await _userAchievementsService.PostUserAchievement(postUserAchievementDto));
            }
            else
            {
                await _userAchievementsService.ProgressUserAchievement(achievementDto, userId);

                return(HttpStatusCode.OK);
            }
        }
コード例 #3
0
        private async Task <HttpStatusCode> HandleNewUserAchievement(AchievementDto achievementDto, int userId, List <UserAchievementDto> userAchievementDtos)
        {
            UserAchievementDto userAchievementDto = userAchievementDtos
                                                    .Where(uad => uad.AchievementId == achievementDto.Id)
                                                    .FirstOrDefault();

            if (userAchievementDto == null)
            {
                PostUserAchievementDto postUserAchievementDto = new PostUserAchievementDto
                {
                    AchievementId = achievementDto.Id,
                    Completed     = false,
                    Progress      = 0,
                    UserId        = userId
                };

                return(await _userAchievementsService.PostUserAchievement(postUserAchievementDto));
            }

            return(HttpStatusCode.OK);
        }