Ejemplo n.º 1
0
        public async Task <List <CourseDTO> > GetAsync(bool include = false)
        {
            //if (include)
            //var entities = await _dbReadService.GetAsync<TSource>();
            var courses = await _dbReadService.GetQuery <Course>()
                          .Include(c => c.Instructor)
                          .ToListAsync();

            return(_mapper.Map <List <CourseDTO> >(courses));
        }
Ejemplo n.º 2
0
        public async void GetCourseAsync()
        {
            /*     var userCourse = await _db.SingleAsync<UserCourse>(
             *             expression: uc => uc.UserId.Equals(userId) && uc.CourseId.Equals(courseId));
             *
             *         if (userCourse == null) return default;
             *
             *         var course = await _db.SingleAsync<Course>(c => c.Id.Equals(courseId),
             *              include: true);      */

            var courseId = 1;
            await _dbReadService.GetQuery <Course>(c => c.Id.Equals(courseId))
            .Select(c => c.Instructor).LoadAsync();               // load course's instructor
        }
Ejemplo n.º 3
0
        public async Task <Course> GetCourseAsync(string userId, int courseId) // produces two simple sql queries
        {
            await _dbReadService.GetQuery <Module>()                           // load course's modules
            .Where(c => c.CourseId.Equals(courseId))
            .LoadAsync();

            await _dbReadService.GetQuery <Video>() // load course's videos
            .Where(v => v.CourseId.Equals(courseId))
            .LoadAsync();

            await _dbReadService.GetQuery <Download>() // load course's Downloads
            .Where(v => v.CourseId.Equals(courseId))
            .LoadAsync();

            var userCourse = await _dbReadService.GetQuery <UserCourse>() // one row sql query result
                             .Where(uc => uc.UserId.Equals(userId) && uc.CourseId.Equals(courseId))
                             .Include(c => c.Course)                      // load course
                             .ThenInclude(c => c.Instructor)              // load course's instructor
                             .FirstOrDefaultAsync();

            return(userCourse?.Course ?? default);
        }
        private async Task FillViewDataAsync(string userId)
        {
            var user = await _dbReadService.SingleAsync <VODUser>(u => u.Id.Equals(userId));

            Customer = new UserDTO {
                Id = user.Id, Email = user.Email
            };

            Courses = await _dbReadService.GetQuery <UserCourse>()//produces compact sql query
                      .Where(uc => uc.UserId.Equals(userId))
                      .Select(uc => uc.Course)
                      .ToListAsync();

            var userCourseIds = Courses.Select(uc => uc.Id);

            var availableCourses = await _dbReadService.GetAsync <Course>(
                c => !userCourseIds.Contains(c.Id));

            AvailableCourses = availableCourses.ToSelectList("Id", "Title");
        }