OnGetAsync(int puzzleId)
+ {
+ Puzzle = await _context.Puzzles.Where(p => p.ID == puzzleId).FirstOrDefaultAsync();
+
+ if (Puzzle == null)
+ {
+ return NotFound("Puzzle does not exist.");
+ }
+
+ Team team = await UserEventHelper.GetTeamForPlayer(_context, Event, LoggedInUser);
+ int solvedPuzzleCount = 0;
+
+ switch(Puzzle.PieceMetaUsage)
+ {
+ case PieceMetaUsage.EntireEvent:
+ solvedPuzzleCount = await _context.PuzzleStatePerTeam.Where(ps => ps.Team == team && ps.SolvedTime != null && ps.Puzzle.SolveValue >= 10).CountAsync();
+ break;
+
+ case PieceMetaUsage.GroupOnly:
+ solvedPuzzleCount = await _context.PuzzleStatePerTeam.Where(ps => ps.Team == team && ps.SolvedTime != null && ps.Puzzle.SolveValue >= 10 && ps.Puzzle.Group == Puzzle.Group).CountAsync();
+ break;
+
+ default:
+ return NotFound("Puzzle does not support the simple meta view.");
+ }
+
+ EarnedPieces = await _context.Pieces.Where(p => p.PuzzleID == puzzleId && p.ProgressLevel <= solvedPuzzleCount).OrderBy(p => p.ProgressLevel).ToListAsync();
+
+ return Page();
+ }
+ }
+}
diff --git a/ServerCore/Pages/Puzzles/Edit.cshtml b/ServerCore/Pages/Puzzles/Edit.cshtml
index 43cdef67..27df9c08 100644
--- a/ServerCore/Pages/Puzzles/Edit.cshtml
+++ b/ServerCore/Pages/Puzzles/Edit.cshtml
@@ -148,6 +148,10 @@
+
+
+
+