public async Task OnGetAsync() { Org = await _context.Orgs .Include(o => o.Mods) .ThenInclude(m => m.Latest) .ThenInclude(v => v.VersionNumber) .Include(o => o.Members) .ThenInclude(m => m.User) .ThenInclude(u => u.ShadowOrg) .FirstOrDefaultAsync(o => o.Slug == OrgSlug); ViewData["BreadcrumbNode"] = new RazorPageBreadcrumbNode("/Users/Details", Org.DisplayName) { RouteValues = new { UserSlug = OrgSlug } }; }
public async Task OnGetAsync() { if (string.IsNullOrWhiteSpace(Target)) { ViewData["BreadcrumbNode"] = new RazorPageBreadcrumbNode("/Mods", "Mods"); } else { var targetDisplayName = await _context.Targets .Where(t => t.Slug == Target) .Include(t => t.Latest) .Select(t => t.Latest.DisplayName) .SingleAsync(); var targetsNode = new RazorPageBreadcrumbNode("/Targets/Index", "Targets") { OverwriteTitleOnExactMatch = true }; var targetNode = new RazorPageBreadcrumbNode($"/Targets/Details", targetDisplayName) { OverwriteTitleOnExactMatch = true, Parent = targetsNode, RouteValues = new { targetSlug = Target } }; var modsNode = new RazorPageBreadcrumbNode("/Mods", "Mods") { OverwriteTitleOnExactMatch = true, Parent = targetNode }; ViewData["BreadcrumbNode"] = modsNode; } Mods = await GetFilteredMods(); }
public async Task <IActionResult> OnGetAsync() { IQueryable <ModVersion> query = _context.ModVersions .Include(v => v.Mod).ThenInclude(m => m.Owner) .Include(v => v.VersionNumber) .Include(v => v.ModDependencies) .ThenInclude(d => d.Dependency).ThenInclude(m => m.Owner) .Include(v => v.ModDependencies) .ThenInclude(d => d.Dependency).ThenInclude(m => m.Latest) .Include(v => v.ModDependencies) .ThenInclude(d => d.MinVersion).ThenInclude(v => v.VersionNumber) .Include(v => v.ModDependencies) .ThenInclude(d => d.MaxVersion).ThenInclude(v => v.VersionNumber) .Where(v => v.Mod.Owner.Slug == OwnerSlug && v.Mod.Slug == ModSlug) .OrderByVersion(); if (!string.IsNullOrEmpty(VersionNumber)) { query = query.FindExactVersion(VersionNumber); } ModVersion = await query.FirstOrDefaultAsync(); if (string.IsNullOrEmpty(VersionNumber)) { _logger.LogDebug( $"No version specified, picking {ModVersion.VersionNumber} from {string.Join(", ", query.Select(v => v.VersionNumber))}"); } if (ModVersion == null) { _logger.LogInformation($"No modversion found for {OwnerSlug}/{ModSlug}@{VersionNumber}"); return(NotFound()); } var canViewUnpublished = (await _authorizationService.AuthorizeAsync(User, ModVersion.Mod, Operation.Read)) .Succeeded; if (ModVersion.IsActive == false && !canViewUnpublished) { return(NotFound()); } CreateAtString = ModVersion.CreatedAt.ToString("o"); Dependents = new DependencyList() { Dependencies = await _context.ModDependencies .Include(d => d.Dependent) .ThenInclude(v => v.Mod) .ThenInclude(m => m.Owner) .Include(d => d.Dependent) .ThenInclude(v => v.VersionNumber) .Include(d => d.Dependency) .Where(d => d.DependencyId == ModVersion.Id) .ToListAsync(), ShowDependent = true, ShowDependency = false }; Dependencies = new DependencyList() { Dependencies = ModVersion.Dependencies, ShowDependent = false }; var versionNumbers = await _context.ModVersions .Where(v => v.ModId == ModVersion.ModId) .Include(v => v.VersionNumber) .OrderByVersion() .Select(v => ModVersionToDropdownListItem(v)).ToListAsync(); ViewData["ModVersions"] = versionNumbers; ModVersionIndex = versionNumbers.FindIndex(n => n.VersionNumber.StartsWith(ModVersion.VersionNumber)); var ownerNode = new RazorPageBreadcrumbNode("/Users/Details", ModVersion.Mod.Owner.DisplayName) { OverwriteTitleOnExactMatch = true, RouteValues = new { userSlug = ModVersion.Mod.Owner.Slug } }; var modNode = new RazorPageBreadcrumbNode("/Mods/Details", ModVersion.DisplayName) { OverwriteTitleOnExactMatch = true, Parent = ownerNode }; ViewData["BreadcrumbNode"] = modNode; ViewData["Title"] = ModVersion.DisplayName; return(Page()); }