diff --git a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/AdminResource.java b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/AdminResource.java index c5f6c1364..486924e98 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/AdminResource.java +++ b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/AdminResource.java @@ -16,6 +16,7 @@ import javax.servlet.http.HttpServletRequest; import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.Response; +import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -68,16 +69,16 @@ public class AdminResource extends AbstractResource { @FormParam("type") String type, @FormParam("start") int start, @FormParam("end") int end, - @FormParam("packCollection") String packCollection, + @FormParam("product") String product, @Context HttpServletRequest request) throws Exception { validateAdmin(request); - DefaultCardCollection collection = new DefaultCardCollection(); - List packs = getItems(packCollection); - for (String pack : packs) - collection.addItem(pack, 1); + DefaultCardCollection leagueCollection = new DefaultCardCollection(); + Map productItems = getProductItems(product); + for (Map.Entry productItem : productItems.entrySet()) + leagueCollection.addItem(productItem.getKey(), productItem.getValue()); - _leagueDao.addLeague(name, type, collection, start, end); + _leagueDao.addLeague(name, type, leagueCollection, start, end); return "OK"; } @@ -104,8 +105,7 @@ public class AdminResource extends AbstractResource { @POST public String addLeagueProduct( @FormParam("leagueType") String leagueType, - @FormParam("packProduct") String packProduct, - @FormParam("cardProduct") String cardProduct, + @FormParam("product") String product, @FormParam("skipBaseCollection") String skipBaseCollection, @Context HttpServletRequest request) throws Exception { validateAdmin(request); @@ -116,21 +116,15 @@ public class AdminResource extends AbstractResource { DefaultCardCollection items = new DefaultCardCollection(); - List packs = getItems(packProduct); - List cards = getItems(cardProduct); - - for (String pack : packs) - items.addItem(pack, 1); - for (String card : cards) - items.addItem(card, 1); + Map productItems = getProductItems(product); + for (Map.Entry productItem : productItems.entrySet()) + items.addItem(productItem.getKey(), productItem.getValue()); if (skipBaseCollection == null || !skipBaseCollection.equals("true")) { MutableCardCollection baseCollection = league.getBaseCollection(); - for (String pack : packs) - baseCollection.addItem(pack, 1); - for (String card : cards) - baseCollection.addItem(card, 1); + for (Map.Entry productItem : productItems.entrySet()) + baseCollection.addItem(productItem.getKey(), productItem.getValue()); _leagueDao.setBaseCollectionForLeague(league, baseCollection); } @@ -138,10 +132,8 @@ public class AdminResource extends AbstractResource { for (Map.Entry playerCollection : playerCollections.entrySet()) { int playerId = playerCollection.getKey(); MutableCardCollection collection = playerCollection.getValue(); - for (String pack : packs) - collection.addItem(pack, 1); - for (String card : cards) - collection.addItem(card, 1); + for (Map.Entry productItem : productItems.entrySet()) + collection.addItem(productItem.getKey(), productItem.getValue()); Player player = _playerDao.getPlayer(playerId); _collectionDao.setCollectionForPlayer(player, leagueType, collection); _deliveryService.addPackage(player, leagueType, items); @@ -154,21 +146,16 @@ public class AdminResource extends AbstractResource { @POST public String addItems( @FormParam("collectionType") String collectionType, - @FormParam("packProduct") String packProduct, - @FormParam("cardProduct") String cardProduct, + @FormParam("product") String product, @FormParam("players") String players, @Context HttpServletRequest request) throws Exception { validateAdmin(request); DefaultCardCollection items = new DefaultCardCollection(); - List packs = getItems(packProduct); - List cards = getItems(cardProduct); - - for (String pack : packs) - items.addItem(pack, 1); - for (String card : cards) - items.addItem(card, 1); + Map productItems = getProductItems(product); + for (Map.Entry productItem : productItems.entrySet()) + items.addItem(productItem.getKey(), productItem.getValue()); List playerNames = getItems(players); @@ -176,10 +163,8 @@ public class AdminResource extends AbstractResource { Player player = _playerDao.getPlayer(playerName); MutableCardCollection collection = getPlayerCollection(player, collectionType); - for (String pack : packs) - collection.addItem(pack, 1); - for (String card : cards) - collection.addItem(card, 1); + for (Map.Entry productItem : productItems.entrySet()) + collection.addItem(productItem.getKey(), productItem.getValue()); _collectionDao.setCollectionForPlayer(player, collectionType, collection); _deliveryService.addPackage(player, collectionType, items); } @@ -204,6 +189,20 @@ public class AdminResource extends AbstractResource { return result; } + private Map getProductItems(String values) { + Map result = new HashMap(); + for (String item : values.split("\n")) { + item = item.trim(); + if (item.length() > 0) { + final String[] itemSplit = item.split("x", 2); + if (itemSplit.length != 2) + throw new RuntimeException("Unable to parse the items"); + result.put(itemSplit[1].trim(), Integer.parseInt(itemSplit[0].trim())); + } + } + return result; + } + private League getLeagueByType(String leagueType) { for (League league : _leagueDao.getActiveLeagues()) if (league.getType().equals(leagueType)) diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/admin.html b/gemp-lotr/gemp-lotr-web/src/main/webapp/admin.html index 922b7bc74..1483561cc 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/admin.html +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/admin.html @@ -20,7 +20,7 @@ Format:
Start:
End:
- Packs:
+ Product:
@@ -40,8 +40,7 @@
Type:
- Packs:
- Cards:
+ Product:
Skip base collection:
@@ -52,8 +51,7 @@
Type:
- Packs:
- Cards:
+ Product:
Players: