Esempio n. 1
0
            public async Task <CourseCatalogViewModel> GetAddedCoursesForDateAsync(DateTime addDate, string trainingProviderName, string userId,
                                                                                   Specializations?specializations)
            {
                var userSpecializationList = GetUserSpecializationList(specializations);

                var courseQuery = UpdateContext.UpdateEvents
                                  .Where(x => DbFunctions.TruncateTime(x.StartedOn) == DbFunctions.TruncateTime(addDate) &&
                                         x.TrainingProvider.Name == trainingProviderName &&
                                         x.CoursesUpdates.Any(cu => cu.OperationType == OperationType.Add))
                                  .SelectMany(x => x.CoursesUpdates)
                                  .Where(x => x.OperationType == OperationType.Add)
                                  .Select(x => x.Course)
                                  .Where(x => !x.IsDeleted &&
                                         (!userSpecializationList.Any() ||
                                          x.CourseSpecializations.Any(cs => userSpecializationList.Contains(cs.Specialization))));

                var courses = await ProjectToCourseCatalogEntry(courseQuery, userId).ToListAsync();

                if (courses.Any())
                {
                    var courseList = new CourseCatalogViewModel
                    {
                        CourseListFor = CourseListFor.Author,
                        Courses       = courses
                    };

                    return(courseList);
                }

                return(null);
            }
Esempio n. 2
0
            public async Task <CourseCatalogViewModel> GetCoursesForAuthorAsync(string authorUrlName, string trainingProviderName, string userId,
                                                                                Specializations?specializations)
            {
                var authorIdentity = await CatalogContext.TrainingProviderAuthors
                                     .Where(x => x.UrlName == authorUrlName &&
                                            x.TrainingProvider.Name == trainingProviderName &&
                                            !x.IsDeleted)
                                     .Select(x => new { x.AuthorId, x.TrainingProviderId })
                                     .SingleOrDefaultAsync();

                if (authorIdentity == null)
                {
                    return(null);
                }

                var courseQuery = GetCoursesQueryForSpecializations(specializations);

                courseQuery = courseQuery.Where(x => x.CourseAuthors.Any(ca => ca.AuthorId == authorIdentity.AuthorId) &&
                                                x.TrainingProviderId == authorIdentity.TrainingProviderId);

                var courses = await ProjectToCourseCatalogEntry(courseQuery, userId).ToListAsync();

                if (courses.Any())
                {
                    var courseList = new CourseCatalogViewModel
                    {
                        CourseListFor = CourseListFor.Author,
                        Courses       = courses
                    };

                    return(courseList);
                }

                return(null);
            }
Esempio n. 3
0
            public CourseCatalogViewModel GetCourseCatalog(string trainingProviderName)
            {
                var tokenCatalog = GetTokenCatalog();

                var selectedToken = !string.IsNullOrWhiteSpace(trainingProviderName) &&
                                    tokenCatalog.Contains(trainingProviderName, StringComparer.OrdinalIgnoreCase)
               ? trainingProviderName.ToTitleCaseInvariant()
               : NavigationViewModel.ALLToken;

                var courseCatalogViewModel = new CourseCatalogViewModel
                {
                    Navigation = new NavigationViewModel
                    {
                        SelectedToken = selectedToken,
                        TokenCatalog  = tokenCatalog
                    }
                };

                return(courseCatalogViewModel);
            }
Esempio n. 4
0
            public async Task <CourseCatalogViewModel> GetCoursesForCategoryAsync(string trainingProviderName, string categoryUrlName,
                                                                                  string userId, Specializations?specializations)
            {
                var courseQuery = GetCoursesQueryForSpecializations(specializations);

                courseQuery = courseQuery.Where(x => x.Category.UrlName == categoryUrlName &&
                                                !x.Category.IsDeleted &&
                                                x.TrainingProvider.Name == trainingProviderName);

                var courses = await ProjectToCourseCatalogEntry(courseQuery, userId).ToListAsync();

                if (courses.Any())
                {
                    var courseList = new CourseCatalogViewModel
                    {
                        CourseListFor = CourseListFor.Category,
                        Courses       = courses
                    };

                    return(courseList);
                }

                return(null);
            }
         public CourseCatalogViewModel GetCourseCatalog(string trainingProviderName)
         {
            var tokenCatalog = GetTokenCatalog();

            var selectedToken = !string.IsNullOrWhiteSpace(trainingProviderName) &&
                                tokenCatalog.Contains(trainingProviderName, StringComparer.OrdinalIgnoreCase)
               ? trainingProviderName.ToTitleCaseInvariant()
               : NavigationViewModel.ALLToken;

            var courseCatalogViewModel = new CourseCatalogViewModel
            {
               Navigation = new NavigationViewModel
               {
                  SelectedToken = selectedToken,
                  TokenCatalog = tokenCatalog
               }
            };

            return courseCatalogViewModel;
         }
         public async Task<CourseCatalogViewModel> GetAddedCoursesForDateAsync(DateTime addDate, string trainingProviderName, string userId,
            Specializations? specializations)
         {
            var userSpecializationList = GetUserSpecializationList(specializations);

            var courseQuery = UpdateContext.UpdateEvents
               .Where(x => DbFunctions.TruncateTime(x.StartedOn) == DbFunctions.TruncateTime(addDate) &&
                           x.TrainingProvider.Name == trainingProviderName &&
                           x.CoursesUpdates.Any(cu => cu.OperationType == OperationType.Add))
               .SelectMany(x => x.CoursesUpdates)
               .Where(x => x.OperationType == OperationType.Add)
               .Select(x => x.Course)
               .Where(x => !x.IsDeleted &&
                           (!userSpecializationList.Any() ||
                            x.CourseSpecializations.Any(cs => userSpecializationList.Contains(cs.Specialization))));

            var courses = await ProjectToCourseCatalogEntry(courseQuery, userId).ToListAsync();

            if (courses.Any())
            {
               var courseList = new CourseCatalogViewModel
               {
                  CourseListFor = CourseListFor.Author,
                  Courses = courses
               };

               return courseList;
            }

            return null;
         }
         public async Task<CourseCatalogViewModel> GetCoursesForAuthorAsync(string authorUrlName, string trainingProviderName, string userId,
            Specializations? specializations)
         {
            var authorIdentity = await CatalogContext.TrainingProviderAuthors
               .Where(x => x.UrlName == authorUrlName &&
                           x.TrainingProvider.Name == trainingProviderName &&
                           !x.IsDeleted)
               .Select(x => new { x.AuthorId, x.TrainingProviderId })
               .SingleOrDefaultAsync();

            if (authorIdentity == null)
            {
               return null;
            }

            var courseQuery = GetCoursesQueryForSpecializations(specializations);

            courseQuery = courseQuery.Where(x => x.CourseAuthors.Any(ca => ca.AuthorId == authorIdentity.AuthorId) &&
            x.TrainingProviderId == authorIdentity.TrainingProviderId);

            var courses = await ProjectToCourseCatalogEntry(courseQuery, userId).ToListAsync();

            if (courses.Any())
            {
               var courseList = new CourseCatalogViewModel
               {
                  CourseListFor = CourseListFor.Author,
                  Courses = courses
               };

               return courseList;
            }

            return null;
         }
         public async Task<CourseCatalogViewModel> GetCoursesForCategoryAsync(string trainingProviderName, string categoryUrlName,
            string userId, Specializations? specializations)
         {
            var courseQuery = GetCoursesQueryForSpecializations(specializations);

            courseQuery = courseQuery.Where(x => x.Category.UrlName == categoryUrlName &&
                                                 !x.Category.IsDeleted &&
                                                 x.TrainingProvider.Name == trainingProviderName);

            var courses = await ProjectToCourseCatalogEntry(courseQuery, userId).ToListAsync();

            if (courses.Any())
            {
               var courseList = new CourseCatalogViewModel
               {
                  CourseListFor = CourseListFor.Category,
                  Courses = courses
               };

               return courseList;
            }

            return null;
         }