Added all major features
Added the feature to import a csv file containing the current storage, added a feature to list all products from storage and search from them.main
parent
42aae21ede
commit
73ef7ea19c
|
@ -16,16 +16,75 @@ public class OnlineShopSystem {
|
||||||
loadProducts(filePath);
|
loadProducts(filePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String listAllProducts(){
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
for (Product product : storage){
|
||||||
|
String name = product.getName();
|
||||||
|
String description = product.getDescription();
|
||||||
|
|
||||||
|
sb.append(String.format("%s - %s \n", name, description));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<String> getSearchResult(String searchQueue){
|
||||||
|
ArrayList<Product> matchingProducts = new ArrayList<>();
|
||||||
|
|
||||||
|
for (Product product : storage){
|
||||||
|
if (product.getName().contains(searchQueue) || product.getDescription().contains(searchQueue)){
|
||||||
|
matchingProducts.add(product);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.printf("amount matches: %d \n", matchingProducts.size());
|
||||||
|
|
||||||
|
ArrayList<String> matchingStrings = new ArrayList<>();
|
||||||
|
|
||||||
|
if (matchingProducts.isEmpty()) {
|
||||||
|
matchingStrings.add(String.format("No matches for your search: %s \n", searchQueue));
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
sb.append(String.format("%d match(es) found: \n", matchingProducts.size()));
|
||||||
|
for (Product product : matchingProducts){
|
||||||
|
|
||||||
|
sb.append(String.format("%s - %s \n", product.getName(), product.getDescription()));
|
||||||
|
sb.append(String.format("Price: %d€, Weight: %dg, Stock: %d", product.getWeight(), product.getWeight(), product.getBestand()));
|
||||||
|
|
||||||
|
matchingStrings.add(sb.toString());
|
||||||
|
sb = new StringBuilder();
|
||||||
|
}
|
||||||
|
|
||||||
|
return matchingStrings;
|
||||||
|
}
|
||||||
|
|
||||||
private void loadProducts(String filePath) throws FileNotFoundException {
|
private void loadProducts(String filePath) throws FileNotFoundException {
|
||||||
Scanner sc = new Scanner(new File(filePath));
|
Scanner sc = new Scanner(new File(filePath));
|
||||||
|
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
|
|
||||||
while (sc.hasNextLine()) {
|
while (sc.hasNextLine()) {
|
||||||
String product = sc.nextLine();
|
String product = sc.nextLine();
|
||||||
|
|
||||||
|
if (counter == 0){
|
||||||
|
counter ++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
String[] rows = product.split(";");
|
||||||
|
rows[2] = rows[2].replaceAll(",", ".");
|
||||||
|
rows[3] = rows[3].substring(0, rows[3].indexOf(","));
|
||||||
|
rows[4] = rows[4].substring(0, rows[4].indexOf(","));
|
||||||
|
|
||||||
|
Product currentProduct = new Product(rows[0], rows[1], Float.parseFloat(rows[2]), Integer.parseInt(rows[3]), Integer.parseInt(rows[4]));
|
||||||
|
|
||||||
|
storage.add(currentProduct);
|
||||||
|
|
||||||
counter ++;
|
counter ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package tui;
|
package tui;
|
||||||
|
|
||||||
|
import domain.Product;
|
||||||
import fassade.OnlineShopSystem;
|
import fassade.OnlineShopSystem;
|
||||||
|
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
public class TUI {
|
public class TUI {
|
||||||
|
@ -16,9 +18,8 @@ public class TUI {
|
||||||
try {
|
try {
|
||||||
new TUI();
|
new TUI();
|
||||||
} catch ( FileNotFoundException e){
|
} catch ( FileNotFoundException e){
|
||||||
// resources/productList.csv
|
System.out.print("Storage list couldn't be loaded. \n");
|
||||||
System.out.printf("Storage list couldn't be loaded. \n");
|
System.out.print("Cancelling. \n\n");
|
||||||
System.out.printf("Cancelling. \n\n");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,8 +29,11 @@ public class TUI {
|
||||||
String filePath = welcomeMessage();
|
String filePath = welcomeMessage();
|
||||||
|
|
||||||
shop = new OnlineShopSystem(filePath);
|
shop = new OnlineShopSystem(filePath);
|
||||||
|
itemListing();
|
||||||
|
|
||||||
|
while (true){
|
||||||
|
itemSearch();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String welcomeMessage(){
|
private String welcomeMessage(){
|
||||||
|
@ -37,4 +41,22 @@ public class TUI {
|
||||||
System.out.print("Please input the product list location: ");
|
System.out.print("Please input the product list location: ");
|
||||||
return sc.nextLine();
|
return sc.nextLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void itemListing(){
|
||||||
|
System.out.print("We have this items in our storage: \n\n");
|
||||||
|
System.out.println(shop.listAllProducts());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void itemSearch(){
|
||||||
|
System.out.print("What are you looking for? \n");
|
||||||
|
System.out.print("> ");
|
||||||
|
String searchQueue = sc.nextLine();
|
||||||
|
|
||||||
|
ArrayList<String> searchResults = shop.getSearchResult(searchQueue);
|
||||||
|
|
||||||
|
for (String result : searchResults) {
|
||||||
|
System.out.println(result);
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue