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 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> 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; }