From 45475372e51be949809fad3052d776fb7b03fb3c Mon Sep 17 00:00:00 2001
From: Nicolas Fley <nicolas.fley@student.ecp.fr>
Date: Thu, 27 Apr 2017 16:43:33 +0200
Subject: [PATCH] uncommited modif

---
 .gitignore                      |  2 +-
 src/Core/ActiveUserContext.java | 20 +++++++++++++++++++
 src/Core/MyFoodora.java         | 35 +++++++++++++++------------------
 src/User/ListUser.java          |  6 +++---
 src/User/User.java              | 21 +++++++++++++-------
 5 files changed, 54 insertions(+), 30 deletions(-)
 create mode 100644 src/Core/ActiveUserContext.java

diff --git a/.gitignore b/.gitignore
index 239de2d..5d223ad 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,4 @@
 /src/provisoire/
 /rapport/
 .*
-!.gitignore
\ No newline at end of file
+!.gitignore
diff --git a/src/Core/ActiveUserContext.java b/src/Core/ActiveUserContext.java
new file mode 100644
index 0000000..497c8fb
--- /dev/null
+++ b/src/Core/ActiveUserContext.java
@@ -0,0 +1,20 @@
+package Core;
+
+import User.User;
+
+public class ActiveUserContext {
+	
+	User activeUser;
+
+	public ActiveUserContext(MyFoodora foodora) {
+		// TODO Auto-generated constructor stub
+	}
+	
+	public User getUser(){
+		return activeUser;
+	}
+	public void setActiveUser(User u){
+		activeUser = u;
+	}
+
+}
diff --git a/src/Core/MyFoodora.java b/src/Core/MyFoodora.java
index dccd139..bf0cfe6 100644
--- a/src/Core/MyFoodora.java
+++ b/src/Core/MyFoodora.java
@@ -55,16 +55,20 @@ public class MyFoodora {
 	}
 	
 	/** CUSTOM **/
-	public int getTypeOfUser(String usernameTest, String passwordTest){
-		if(this.getListCustomer().isContainingCorrectLogin(usernameTest, passwordTest))
-			return User.CUSTOMER;
-		if(this.getListCourier().isContainingCorrectLogin(usernameTest, passwordTest))
-			return User.COURIER;
-		if(this.getListRestaurant().isContainingCorrectLogin(usernameTest, passwordTest))
-			return User.RESTAURANT;
-		if(this.getListManager().isContainingCorrectLogin(usernameTest, passwordTest))
-			return User.MANAGER;
-		return User.UNKNOWN;
+	public User getUserByLogin(String usernameTest, String passwordTest){
+		User u = this.getListCustomer().getUserByLogin(usernameTest, passwordTest);
+		if(u != null)
+			return u;
+		u = this.getListCourier().getUserByLogin(usernameTest, passwordTest);
+		if(u != null)
+			return u;
+		u = this.getListRestaurant().getUserByLogin(usernameTest, passwordTest);
+		if(u != null)
+			return u;
+		u = this.getListManager().getUserByLogin(usernameTest, passwordTest);
+		if(u != null)
+			return u;
+		return null;
 	}
 	
 	/** CUSTOM GETTER AND SETTER **/
@@ -124,15 +128,8 @@ public class MyFoodora {
 	public static void main(String[] args) throws ExceptionUnknownMealType, ExceptionUnknownDishType, ExceptionUnknownStartegyType {
 		// TODO Auto-generated method stub
 		MyFoodora myFoodora = new MyFoodora();
-		FactoryDish dishFactory = new FactoryDish();
-		FactoryMeal mealFactory = new FactoryMeal();
-		Dish d1 = dishFactory.createDish("MainDish", "French Fries", "Vegan", 3.0);
-		Dish d2 = dishFactory.createDish("MainDish", "French Fries", "Vegan", 3.0);
-		Meal m1 = mealFactory.createMeal("HalfMeal");
-		Meal m2 = mealFactory.createMeal("HalfMeal");
-		//myFoodora.listRestaurant.add();
-		System.out.println(d1.equals(d2));
-		System.out.println(m1.equals(m2));
+		ActiveUserContext activeUser = new ActiveUserContext(myFoodora);
+		activeUser.setActiveUser(User.login(myFoodora));
 	}
 	public double getLastMonthIncome() {
 		// TODO Auto-generated method stub
diff --git a/src/User/ListUser.java b/src/User/ListUser.java
index 6f5ca36..8a434a8 100644
--- a/src/User/ListUser.java
+++ b/src/User/ListUser.java
@@ -9,12 +9,12 @@ public class ListUser<T extends User>{
 	
 	/** CUSTOM **/
 
-	public boolean isContainingCorrectLogin(String username, String password){
+	public User getUserByLogin(String username, String password){
 		for(User u : listUser){
 			if(u.isLoginCorrect(username,password))
-				return true;
+				return u;
 		}
-		return false;
+		return null;
 	}
 	public void addUser(T e){
 		listUser.add(e);
diff --git a/src/User/User.java b/src/User/User.java
index eaff9e7..6eeffcb 100644
--- a/src/User/User.java
+++ b/src/User/User.java
@@ -44,19 +44,15 @@ public abstract class User implements Comparable<User> {
 		this.password = password;
 		this.adress = adress;
 		this.activated = activated;
+		
 	}
 
 	/** CUSTOM **/
 	
-	public void register(MyFoodora foodora){
+	public static User login(MyFoodora foodora){
 		String usernameTest = Input.string("Please writte your username");
 		String passwordTest = Input.string("Please writte your password");
-		this.typeOfUser = foodora.getTypeOfUser(usernameTest, passwordTest);
-		if(this.typeOfUser == User.UNKNOWN){
-			this.isLogged=false;
-		}else{
-			this.isLogged=true;
-		}
+		return foodora.getUserByLogin(usernameTest, passwordTest);
 	}
 	public boolean isLoginCorrect(String username, String password) {
 		if(this.username == username && this.password == password)
@@ -71,6 +67,17 @@ public abstract class User implements Comparable<User> {
 		return username.compareTo(u.getUsername());
 	}
 	
+	@Override
+	public boolean equals(Object other){
+		if(other instanceof User){
+			User u = (User) other;
+			if(this.id == u.getId()){
+				return true;
+			}
+		}
+		return false;
+	}
+	
 	@Override
 	public String toString() {
 		return "User [id=" + id + ", phoneNumber=" + phoneNumber + ", name=" + name + ", username=" + username
-- 
GitLab