From 0351dbb56044171cd0c18e2bcdda9cd9bf66f36f Mon Sep 17 00:00:00 2001 From: Jeremy Vercillo Date: Wed, 16 Jan 2019 21:52:18 -0800 Subject: [PATCH 1/3] Feedback pages user work. - If a user has already submitted feedback it will seed the page with what they submitted last time. - When they resubmit it will update instead of duplicating. - Shows user that submitted each piece of feedback in author view - Aggregates all feedback in author view --- ServerCore/DataModel/Feedback.cs | 2 +- ServerCore/Pages/Puzzles/Feedback.cshtml | 20 ++++++++- ServerCore/Pages/Puzzles/Feedback.cshtml.cs | 2 +- .../Pages/Puzzles/SubmitFeedback.cshtml | 4 +- .../Pages/Puzzles/SubmitFeedback.cshtml.cs | 45 +++++++++++++++---- 5 files changed, 60 insertions(+), 13 deletions(-) diff --git a/ServerCore/DataModel/Feedback.cs b/ServerCore/DataModel/Feedback.cs index 9d9e3af3..f4846cde 100644 --- a/ServerCore/DataModel/Feedback.cs +++ b/ServerCore/DataModel/Feedback.cs @@ -11,7 +11,7 @@ public class Feedback [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int ID { get; set; } public Puzzle Puzzle { get; set; } - public User Submitter {get; set;} + public PuzzleUser Submitter {get; set;} public DateTime SubmissionTime { get; set; } public string WrittenFeedback { get; set; } public int Difficulty { get; set; } diff --git a/ServerCore/Pages/Puzzles/Feedback.cshtml b/ServerCore/Pages/Puzzles/Feedback.cshtml index 3c501dd6..e782643d 100644 --- a/ServerCore/Pages/Puzzles/Feedback.cshtml +++ b/ServerCore/Pages/Puzzles/Feedback.cshtml @@ -8,11 +8,29 @@ ViewData["PlayRoute"] = "../Puzzles/SubmitFeedback"; ViewData["RoutingPuzzleId"] = ViewContext.RouteData.Values["puzzleId"]; Layout = "_puzzleManagementLayout.cshtml"; - var id = ViewContext.RouteData.Values["id"]; + + var sumFun = 0.0; + var sumDiff = 0.0; + var count = 0; + foreach (var item in Model.Feedbacks) { + sumFun += item.Fun; + sumDiff += item.Difficulty; + count++; + } + sumFun /= count; + sumDiff /= count; }

@Html.DisplayFor(model => model.Puzzle.Name): Feedback

+
+

Avg Fun Rating: @sumFun

+
+

Avg Difficulty Rating: @sumDiff

+
+ +
+ diff --git a/ServerCore/Pages/Puzzles/Feedback.cshtml.cs b/ServerCore/Pages/Puzzles/Feedback.cshtml.cs index c07c9a02..fa37d7b0 100644 --- a/ServerCore/Pages/Puzzles/Feedback.cshtml.cs +++ b/ServerCore/Pages/Puzzles/Feedback.cshtml.cs @@ -29,7 +29,7 @@ public FeedbackModel(PuzzleServerContext serverContext, UserManager public async Task OnGetAsync(int puzzleId) { - Feedbacks = await _context.Feedback.Where((f) => f.Puzzle.ID == puzzleId).ToListAsync(); + Feedbacks = await _context.Feedback.Where((f) => f.Puzzle.ID == puzzleId).Include("Submitter").ToListAsync(); Puzzle = await _context.Puzzles.Where((p) => p.ID == puzzleId).FirstOrDefaultAsync(); if (Puzzle == null) diff --git a/ServerCore/Pages/Puzzles/SubmitFeedback.cshtml b/ServerCore/Pages/Puzzles/SubmitFeedback.cshtml index 2cc6a0e2..26a37177 100644 --- a/ServerCore/Pages/Puzzles/SubmitFeedback.cshtml +++ b/ServerCore/Pages/Puzzles/SubmitFeedback.cshtml @@ -26,7 +26,7 @@
- +