private async Task HandleCourseAchievement(int userId, List <Achievement> achievementsForUser, Course course) { List <Course> coursesForUser = await courseRepo.GetCompletedCoursesForUser(userId); if (!coursesForUser.Contains(course)) { await InsertUserCourse(userId, course.CourseId); Achievement achievementForCourseCompleted = await achievementService.GetAchievementForCourseCompleted(course.CourseId); if (achievementForCourseCompleted != null && !achievementsForUser.Contains(achievementForCourseCompleted)) { await achievementService.InsertUserAchievement(userId, achievementForCourseCompleted.AchievementId); } } }