summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/design/ParPal.java7
-rw-r--r--src/main/java/design/controller/userinput/menus/CourseSearch.java13
-rw-r--r--src/main/java/design/controller/userinput/menus/HolePlayMenu.java3
-rw-r--r--src/main/java/design/runtime/Session.java11
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;
+ }
}