[ResponseCache(CacheProfileName = "Home")] // L'output html prodotto da questa action può essere messo in cache. La duration si misura in secondi public async Task <IActionResult> Index([FromServices] ICachedCourseService courseService) //FromServices istruisce il controller a cercare l'istanza nei services, per una corretta dependency injection { HomeListViewModel homeListViewModel = new HomeListViewModel { BestCourses = await courseService.GetBestCourseAsync(), MostRecentCourses = await courseService.GetMostRecentCourseAsync() }; ViewData["Title"] = "E-Learning Demo"; return(View(homeListViewModel)); }
public async Task <IActionResult> Index([FromServices] ICachedCourseService courseService) { ViewData["Title"] = "Benvenuto su MyCourse!"; List <CourseViewModel> bestRatingCourses = await courseService.GetBestRatingCoursesAsync(); List <CourseViewModel> mostRecentCourses = await courseService.GetMostRecentCoursesAsync(); HomeViewModel viewModel = new HomeViewModel { BestRatingCourses = bestRatingCourses, MostRecentCourses = mostRecentCourses }; return(View(viewModel)); }
//permetterà la visualizzazione dei corsi maggiormente piaciuti //con [FromServices] permette di dare la giusta indicazione al model binder, che //l'istanza ICachedCourseService deve essere cercata tra i servizi registrati per la dependency injection public async Task <IActionResult> Index([FromServices] ICachedCourseService courseService) { ViewData["Title"] = "Benvenuto su MyCourse"; //otteniamo solo una lista, cioé l'elenco di tutti i corsi (ma limitato al dato inserito in appsettings.json) List <CourseViewModel> bestRatingCourses = await courseService.GetBestRatingCoursesAsync(); List <CourseViewModel> mostRecentCourses = await courseService.GetMostRecentCoursesAsync(); HomeViewModel viewModel = new HomeViewModel { BestRatingCourses = bestRatingCourses, MostRecentCourses = mostRecentCourses }; return(View(viewModel)); }
public CoursesController(ICachedCourseService courseService) { this.courseService = courseService; }
public CourseLimitRequirementHandler(IHttpContextAccessor httpContextAccessor, ICachedCourseService courseService) { this.courseService = courseService; this.httpContextAccessor = httpContextAccessor; }
public CourseSubscriberRequirementHandler(IHttpContextAccessor httpContextAccessor, ICachedCourseService courseService, ILessonService lessonService) { this.courseService = courseService; this.lessonService = lessonService; this.httpContextAccessor = httpContextAccessor; }
public CoursesController(ICachedCourseService courseService) //dipendenza del CoursesController dal Course service (senza questo non potrebbe funzionare) { this.courseService = courseService; }