Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
        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();
                        }
                    }
                }
            }
        }