29 lines
819 B
C#
29 lines
819 B
C#
using Flashsharp.Auth;
|
|
using Flashsharp.Data;
|
|
using Flashsharp.Domain;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
|
|
|
namespace Flashsharp.Pages.Courses;
|
|
|
|
public sealed class DetailsModel(Store store) : PageModel
|
|
{
|
|
public CourseSummary Course { get; private set; } = null!;
|
|
|
|
public IReadOnlyList<LessonSummary> Lessons { get; private set; } = [];
|
|
|
|
public async Task<IActionResult> OnGetAsync(long id, CancellationToken cancellationToken)
|
|
{
|
|
var userId = User.GetUserId();
|
|
var course = await store.GetCourseAsync(id, userId, cancellationToken);
|
|
if (course is null)
|
|
{
|
|
return NotFound();
|
|
}
|
|
|
|
Course = course;
|
|
Lessons = await store.ListLessonsAsync(id, userId, cancellationToken);
|
|
return Page();
|
|
}
|
|
}
|