diff options
Diffstat (limited to 'src/main/java/design')
4 files changed, 22 insertions, 12 deletions
diff --git a/src/main/java/design/ParPal.java b/src/main/java/design/ParPal.java index 6ea9872..8c15d59 100644 --- a/src/main/java/design/ParPal.java +++ b/src/main/java/design/ParPal.java @@ -3,9 +3,16 @@ package design; import design.controller.userinput.Action; import design.controller.userinput.menus.MainMenu; import design.controller.userinput.menus.SelectUser; +import design.runtime.Session; + +import java.time.LocalDateTime; public class ParPal { public static void main(String[] args) { + if (args.length >= 1) { + Session.setTimeOverride(LocalDateTime.parse(args[0])); + } + Action doAfter = () -> new MainMenu().present(); new SelectUser(doAfter).present(); } diff --git a/src/main/java/design/controller/userinput/menus/CourseSearch.java b/src/main/java/design/controller/userinput/menus/CourseSearch.java index 0d5efa6..9d67b51 100644 --- a/src/main/java/design/controller/userinput/menus/CourseSearch.java +++ b/src/main/java/design/controller/userinput/menus/CourseSearch.java @@ -21,6 +21,7 @@ import java.util.Scanner; public class CourseSearch extends Menu { private final CurrentSearchQuery query = CurrentSearchQuery.INSTANCE; private final PersonalDatabase personalDB = PersonalDatabase.INSTANCE; + private final Golfer golfer = Session.getCurrentGolfer(); @Override public String getTitle() { @@ -74,18 +75,10 @@ public class CourseSearch extends Menu { var name = String.format("%s, %s, Difficulty: %s, %s holes, %s total par", c.getName(), c.getLocation(), c.getDifficultyRating(), c.getHoleCount(), c.getTotalPar()); menuOptions.add(new MenuOption(name, () -> { - Golfer currentGolfer = Session.getCurrentGolfer(); - if (currentGolfer == null) { - // if we aren't logged in, notify the user. - System.out.println("\n\n !!! log into a golfer account to add courses to your profile. !!! \n\n"); - new MainMenu().present(); - return; - } - // add the course, try to save to DB. - currentGolfer.addCourse(c); + golfer.addCourse(c); try { - personalDB.updateGolfer(currentGolfer); + personalDB.updateGolfer(golfer); } catch (IOException e) { e.printStackTrace(); // not sure if we should format this prettier for the user if the DB fails. } diff --git a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java index aee6dd7..c824341 100644 --- a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java +++ b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java @@ -10,7 +10,6 @@ import design.model.Round; import design.model.holeplay.HolePlayContext; import design.persistence.PersonalDatabase; -import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Scanner; @@ -118,7 +117,7 @@ public class HolePlayMenu extends Menu { } // Starts round and sends user to HolePlayMenu Hole startHole = course.getHoles().get(startHoleNum - 1); - Round r = new Round(course, LocalDateTime.now(), startHole); + Round r = new Round(course, Session.getDateTime(), startHole); golfer.addRound(r); return r; } diff --git a/src/main/java/design/runtime/Session.java b/src/main/java/design/runtime/Session.java index fbf4b9c..59d31d8 100644 --- a/src/main/java/design/runtime/Session.java +++ b/src/main/java/design/runtime/Session.java @@ -2,8 +2,11 @@ package design.runtime; import design.model.Golfer; +import java.time.LocalDateTime; + public final class Session { private static Golfer currentGolfer; + private static LocalDateTime timeOverride; public static Golfer getCurrentGolfer() { return currentGolfer; @@ -12,4 +15,12 @@ public final class Session { public static void setCurrentGolfer(Golfer currentGolfer) { Session.currentGolfer = currentGolfer; } + + public static LocalDateTime getDateTime() { + return timeOverride != null ? timeOverride : LocalDateTime.now(); + } + + public static void setTimeOverride(LocalDateTime timeOverride) { + Session.timeOverride = timeOverride; + } } |
