public async Task AddUserToCourse(string id, GoUser user) { var course = this.coursesRepository.All().FirstOrDefault(x => x.Id == id); var userCourse = new CoursesUsers { ParticipantId = user.Id, Participant = user, CourseId = course.Id, Course = course }; if (this.coursesUsersRepository.All().FirstOrDefault(x => x.ParticipantId == user.Id && x.CourseId == course.Id) == null && course.MaxCountParticipants > this.coursesUsersRepository.All().Where(x => x.CourseId == course.Id).Count() && DateTime.Now < course.StartDate) { await this.coursesUsersRepository.AddAsync(userCourse); await this.coursesUsersRepository.SaveChangesAsync(); } }
public static async Task Seed(IServiceProvider provider, GoDbContext context) { if (!context.CoursesUsers.Any()) { var allCourses = context.Courses.ToList(); foreach (var course in allCourses) { var countParticipans = new Random().Next(1, course.MaxCountParticipants); for (int k = 0; k < countParticipans; k++) { var statusUser = new Random().Next(1, 3); var randomUser = context.Users.OrderBy(x => Guid.NewGuid()).First(); var courseUser = new CoursesUsers { ParticipantId = randomUser.Id, Participant = randomUser, CourseId = course.Id, Course = course, StatusUser = StatusParticitant.Unsuccessfully }; var userExist = context.CoursesUsers .FirstOrDefault(x => x.CourseId == course.Id && x.ParticipantId == randomUser.Id); if (userExist == null) { await context.CoursesUsers.AddAsync(courseUser); await context.SaveChangesAsync(); } } } } }