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); } }
public async Task <HttpStatusCode> PostUserAchievement(PostUserAchievementDto input) { UserAchievement userAchievement = new UserAchievement { UserId = input.UserId, AchievementId = input.AchievementId, Completed = input.Completed, Progress = input.Progress }; await _mimoDbContext.UserAchievements.AddAsync(userAchievement); await _mimoDbContext.SaveChangesAsync(); return(HttpStatusCode.OK); }
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); }