Hexagonal pattern: Introduce lottery utils class
This commit is contained in:
parent
6aa58e8ae6
commit
b030cd4eba
@ -65,7 +65,7 @@ public class LotteryAdministration {
|
|||||||
LotteryNumbers numbers = LotteryNumbers.createRandom();
|
LotteryNumbers numbers = LotteryNumbers.createRandom();
|
||||||
Map<LotteryTicketId, LotteryTicket> tickets = getAllSubmittedTickets();
|
Map<LotteryTicketId, LotteryTicket> tickets = getAllSubmittedTickets();
|
||||||
for (LotteryTicketId id : tickets.keySet()) {
|
for (LotteryTicketId id : tickets.keySet()) {
|
||||||
LotteryTicketCheckResult result = new LotteryTicketChecker(repository).checkTicketForPrize(id, numbers);
|
LotteryTicketCheckResult result = LotteryUtils.checkTicketForPrize(repository, id, numbers);
|
||||||
if (result.getResult().equals(LotteryTicketCheckResult.CheckResult.WIN_PRIZE)) {
|
if (result.getResult().equals(LotteryTicketCheckResult.CheckResult.WIN_PRIZE)) {
|
||||||
boolean transferred = wireTransfers.transferFunds(LotteryConstants.PRIZE_AMOUNT,
|
boolean transferred = wireTransfers.transferFunds(LotteryConstants.PRIZE_AMOUNT,
|
||||||
LotteryConstants.SERVICE_BANK_ACCOUNT, tickets.get(id).getPlayerDetails().getBankAccount());
|
LotteryConstants.SERVICE_BANK_ACCOUNT, tickets.get(id).getPlayerDetails().getBankAccount());
|
||||||
|
@ -72,6 +72,6 @@ public class LotteryService {
|
|||||||
* Check if lottery ticket has won
|
* Check if lottery ticket has won
|
||||||
*/
|
*/
|
||||||
public LotteryTicketCheckResult checkTicketForPrize(LotteryTicketId id, LotteryNumbers winningNumbers) {
|
public LotteryTicketCheckResult checkTicketForPrize(LotteryTicketId id, LotteryNumbers winningNumbers) {
|
||||||
return new LotteryTicketChecker(repository).checkTicketForPrize(id, winningNumbers);
|
return LotteryUtils.checkTicketForPrize(repository, id, winningNumbers);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,20 +27,18 @@ import com.iluwatar.hexagonal.database.LotteryTicketRepository;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Lottery ticket checker
|
* Lottery utilities
|
||||||
*/
|
*/
|
||||||
public class LotteryTicketChecker {
|
public class LotteryUtils {
|
||||||
|
|
||||||
private final LotteryTicketRepository repository;
|
private LotteryUtils() {
|
||||||
|
|
||||||
public LotteryTicketChecker(LotteryTicketRepository repository) {
|
|
||||||
this.repository = repository;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if lottery ticket has won
|
* Checks if lottery ticket has won
|
||||||
*/
|
*/
|
||||||
public LotteryTicketCheckResult checkTicketForPrize(LotteryTicketId id, LotteryNumbers winningNumbers) {
|
public static LotteryTicketCheckResult checkTicketForPrize(LotteryTicketRepository repository, LotteryTicketId id,
|
||||||
|
LotteryNumbers winningNumbers) {
|
||||||
Optional<LotteryTicket> optional = repository.findById(id);
|
Optional<LotteryTicket> optional = repository.findById(id);
|
||||||
if (optional.isPresent()) {
|
if (optional.isPresent()) {
|
||||||
if (optional.get().getNumbers().equals(winningNumbers)) {
|
if (optional.get().getNumbers().equals(winningNumbers)) {
|
Loading…
x
Reference in New Issue
Block a user