Hexagonal pattern: Improve error handling in console lottery

This commit is contained in:
Ilkka Seppälä 2016-09-14 22:18:42 +03:00
parent 3cf2b34d2a
commit c4c5e78e50

View File

@ -79,17 +79,21 @@ public class ConsoleLottery {
PlayerDetails details = PlayerDetails.create(email, account, phone); PlayerDetails details = PlayerDetails.create(email, account, phone);
System.out.println("Give 4 comma separated lottery numbers?"); System.out.println("Give 4 comma separated lottery numbers?");
String numbers = readString(scanner); String numbers = readString(scanner);
String[] parts = numbers.split(","); try {
Set<Integer> chosen = new HashSet<>(); String[] parts = numbers.split(",");
for (int i = 0; i < 4; i++) { Set<Integer> chosen = new HashSet<>();
chosen.add(Integer.parseInt(parts[i])); for (int i = 0; i < 4; i++) {
} chosen.add(Integer.parseInt(parts[i]));
LotteryNumbers lotteryNumbers = LotteryNumbers.create(chosen); }
LotteryTicket lotteryTicket = LotteryTicket.create(new LotteryTicketId(), details, lotteryNumbers); LotteryNumbers lotteryNumbers = LotteryNumbers.create(chosen);
Optional<LotteryTicketId> id = service.submitTicket(lotteryTicket); LotteryTicket lotteryTicket = LotteryTicket.create(new LotteryTicketId(), details, lotteryNumbers);
if (id.isPresent()) { Optional<LotteryTicketId> id = service.submitTicket(lotteryTicket);
System.out.println("Submitted lottery ticket with id: " + id.get()); if (id.isPresent()) {
} else { System.out.println("Submitted lottery ticket with id: " + id.get());
} else {
System.out.println("Failed submitting lottery ticket - please try again.");
}
} catch (Exception e) {
System.out.println("Failed submitting lottery ticket - please try again."); System.out.println("Failed submitting lottery ticket - please try again.");
} }
} else if (cmd.equals("4")) { } else if (cmd.equals("4")) {
@ -97,19 +101,23 @@ public class ConsoleLottery {
String id = readString(scanner); String id = readString(scanner);
System.out.println("Give the 4 comma separated winning numbers?"); System.out.println("Give the 4 comma separated winning numbers?");
String numbers = readString(scanner); String numbers = readString(scanner);
String[] parts = numbers.split(","); try {
Set<Integer> winningNumbers = new HashSet<>(); String[] parts = numbers.split(",");
for (int i = 0; i < 4; i++) { Set<Integer> winningNumbers = new HashSet<>();
winningNumbers.add(Integer.parseInt(parts[i])); for (int i = 0; i < 4; i++) {
} winningNumbers.add(Integer.parseInt(parts[i]));
LotteryTicketCheckResult result = service.checkTicketForPrize( }
new LotteryTicketId(Integer.parseInt(id)), LotteryNumbers.create(winningNumbers)); LotteryTicketCheckResult result = service.checkTicketForPrize(
if (result.getResult().equals(LotteryTicketCheckResult.CheckResult.WIN_PRIZE)) { new LotteryTicketId(Integer.parseInt(id)), LotteryNumbers.create(winningNumbers));
System.out.println("Congratulations! The lottery ticket has won!"); if (result.getResult().equals(LotteryTicketCheckResult.CheckResult.WIN_PRIZE)) {
} else if (result.getResult().equals(LotteryTicketCheckResult.CheckResult.NO_PRIZE)) { System.out.println("Congratulations! The lottery ticket has won!");
System.out.println("Unfortunately the lottery ticket did not win."); } else if (result.getResult().equals(LotteryTicketCheckResult.CheckResult.NO_PRIZE)) {
} else { System.out.println("Unfortunately the lottery ticket did not win.");
System.out.println("Such lottery ticket has not been submitted."); } else {
System.out.println("Such lottery ticket has not been submitted.");
}
} catch (Exception e) {
System.out.println("Failed checking the lottery ticket - please try again.");
} }
} else if (cmd.equals("5")) { } else if (cmd.equals("5")) {
exit = true; exit = true;