コード例 #1
0
            public async Task <AuthorCatalogViewModel> GetAuthorsCatalogAsync(string trainingProviderName, Specializations?specializations)
            {
                var coursesQuery = GetCoursesQueryForSpecializations(specializations);

                var authorsQuery = trainingProviderName != null
               ? CatalogContext.TrainingProviderAuthors
                                   .Where(x => x.TrainingProvider.Name == trainingProviderName &&
                                          x.AuthorCourses.Any(ca => coursesQuery.Any(q => q.Id == ca.CourseId)) && !x.IsDeleted)
               : CatalogContext.TrainingProviderAuthors
                                   .Where(x => x.AuthorCourses.Any(ca => coursesQuery.Any(q => q.Id == ca.CourseId)) && !x.IsDeleted);

                var catalogModel = await authorsQuery
                                   .Select(x => new CatalogEntryViewModel
                {
                    TrainingProvider = new TrainingProviderViewModel
                    {
                        Name         = x.TrainingProvider.Name,
                        LogoFileName = x.TrainingProvider.LogoFileName,
                        SiteUrl      = x.TrainingProvider.SiteUrl
                    },
                    Author = new TrainingProviderAuthorViewModel
                    {
                        FullName = x.FullName,
                        UrlName  = x.UrlName
                    }
                }).ToListAsync();

                if (!catalogModel.Any())
                {
                    return(null);
                }

                var catalog = catalogModel
                              .GroupBy(x => char.ToUpperInvariant(x.Author.LastName[0]), x => x)
                              .OrderBy(group => group.Key)
                              .AsEnumerable();

                var tokenCatalog = GetTokenCatalog();

                var authorCatalogViewModel = new AuthorCatalogViewModel
                {
                    Navigation = new NavigationViewModel
                    {
                        SelectedToken = trainingProviderName != null
                     ? trainingProviderName.ToTitleCaseInvariant()
                     : NavigationViewModel.ALLToken,
                        TokenCatalog = tokenCatalog
                    },

                    Catalog = catalog
                };

                return(authorCatalogViewModel);
            }
コード例 #2
0
         public async Task<AuthorCatalogViewModel> GetAuthorsCatalogAsync( string trainingProviderName, Specializations? specializations)
         {
            var coursesQuery = GetCoursesQueryForSpecializations(specializations);

            var authorsQuery = trainingProviderName != null
               ? CatalogContext.TrainingProviderAuthors
                  .Where(x => x.TrainingProvider.Name == trainingProviderName &&
                              x.AuthorCourses.Any(ca => coursesQuery.Any(q => q.Id == ca.CourseId)) && !x.IsDeleted)
               : CatalogContext.TrainingProviderAuthors
                  .Where(x => x.AuthorCourses.Any(ca => coursesQuery.Any(q => q.Id == ca.CourseId)) && !x.IsDeleted);

            var catalogModel = await authorsQuery
              .Select(x => new CatalogEntryViewModel
              {
                 TrainingProvider = new TrainingProviderViewModel
                 {
                    Name = x.TrainingProvider.Name,
                    LogoFileName = x.TrainingProvider.LogoFileName,
                    SiteUrl = x.TrainingProvider.SiteUrl
                 },
                 Author = new TrainingProviderAuthorViewModel
                 {
                    FullName = x.FullName,
                    UrlName = x.UrlName
                 }
              }).ToListAsync();

            if (!catalogModel.Any())
            {
               return null;
            }

            var catalog = catalogModel
               .GroupBy(x => char.ToUpperInvariant(x.Author.LastName[0]), x => x)
               .OrderBy(group => group.Key)
               .AsEnumerable();

            var tokenCatalog = GetTokenCatalog();

            var authorCatalogViewModel = new AuthorCatalogViewModel
            {
               Navigation = new NavigationViewModel
               {
                  SelectedToken = trainingProviderName != null
                     ? trainingProviderName.ToTitleCaseInvariant()
                     : NavigationViewModel.ALLToken,
                  TokenCatalog = tokenCatalog
               },
               
               Catalog = catalog
            };

            return authorCatalogViewModel;
         }