From e8756c4b9bf769514b219738111b2710f7baa518 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Wed, 27 Apr 2016 12:02:05 +0200 Subject: [PATCH] Continued a bit: - added additional check if the contact is really in the selectableContacts list - need to call EJB business method linkCustomer() (like for users, linkUser()) - customers don't have user profiles: customer != user --- .../PizzaAdminCustomerWebRequestBean.java | 10 +- .../customer/PizzaCustomerWebSessionBean.java | 6 + .../beans/user/PizzaUserWebSessionBean.java | 163 +++++++++--------- web/admin/customer/admin_customer_list.xhtml | 6 - 4 files changed, 97 insertions(+), 88 deletions(-) diff --git a/src/java/org/mxchange/pizzaapplication/beans/customer/PizzaAdminCustomerWebRequestBean.java b/src/java/org/mxchange/pizzaapplication/beans/customer/PizzaAdminCustomerWebRequestBean.java index 4bdd3fbe..e423bffb 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/customer/PizzaAdminCustomerWebRequestBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/customer/PizzaAdminCustomerWebRequestBean.java @@ -129,8 +129,14 @@ public class PizzaAdminCustomerWebRequestBean implements PizzaAdminCustomerWebRe Customer updatedCustomer; try { - // Add customer and return updated - updatedCustomer = this.adminCustomerBean.addCustomer(customer); + // Add/link customer and return updated + if (this.adminHelper.getContact() instanceof Contact) { + // Link customer + updatedCustomer = this.adminCustomerBean.linkCustomer(customer); + } else { + // Add new customer instance + updatedCustomer = this.adminCustomerBean.addCustomer(customer); + } } catch (final CustomerAlreadyRegisteredException | ContactAlreadyAddedException ex) { // Throw again throw new FaceletException(ex); diff --git a/src/java/org/mxchange/pizzaapplication/beans/customer/PizzaCustomerWebSessionBean.java b/src/java/org/mxchange/pizzaapplication/beans/customer/PizzaCustomerWebSessionBean.java index 1d910236..de955653 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/customer/PizzaCustomerWebSessionBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/customer/PizzaCustomerWebSessionBean.java @@ -148,8 +148,14 @@ public class PizzaCustomerWebSessionBean implements PizzaCustomerWebSessionContr } else if (event.getAddedCustomer().getCustomerId() < 1) { // Not valid throw new IllegalArgumentException(MessageFormat.format("event.addedCustomer.customerId={0} is not valid", event.getAddedCustomer().getCustomerId())); //NOI18N //NOI18N + } else if (!this.selectableContacts.contains(event.getAddedCustomer().getCustomerContact())) { + // Contact not in selectable list found + throw new IllegalStateException(MessageFormat.format("event.addedCustomer.customerId={0} is not in selectableContacts list.", event.getAddedCustomer().getCustomerContact().getContactId())); } + // Remove this contact from selectable list + assert (this.selectableContacts.remove(event.getAddedCustomer().getCustomerContact())) : "contact was not removed"; //NOI18N + // Call other method this.addCustomer(event.getAddedCustomer()); } diff --git a/src/java/org/mxchange/pizzaapplication/beans/user/PizzaUserWebSessionBean.java b/src/java/org/mxchange/pizzaapplication/beans/user/PizzaUserWebSessionBean.java index ce8c1b74..ec7f0e45 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/user/PizzaUserWebSessionBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/user/PizzaUserWebSessionBean.java @@ -165,6 +165,45 @@ public class PizzaUserWebSessionBean implements PizzaUserWebSessionController { } } + @Override + public void afterAdminAddedUserEvent (@Observes final AdminAddedUserEvent event) { + // Trace message + System.out.println(MessageFormat.format("ContactWebBean:afterAdminAddedUserEvent: event={0} - CALLED!", event)); //NOI18N + + // The event must be valid + if (null == event) { + // Throw NPE + throw new NullPointerException("event is null"); //NOI18N + } else if (event.getAddedUser() == null) { + // Throw NPE again + throw new NullPointerException("event.addedUser is null"); //NOI18N + } else if (event.getAddedUser().getUserId() == null) { + // userId is null + throw new NullPointerException("event.addedUser.userId is null"); //NOI18N + } else if (event.getAddedUser().getUserId() < 1) { + // Not avalid id + throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getAddedUser(), event.getAddedUser().getUserId())); //NOI18N + } else if (event.getAddedUser().getUserContact() == null) { + // userId is null + throw new NullPointerException("event.addedUser.userContact is null"); //NOI18N + } else if (event.getAddedUser().getUserContact().getContactId() == null) { + // userId is null + throw new NullPointerException("event.addedUser.userContact.contactId is null"); //NOI18N + } else if (event.getAddedUser().getUserContact().getContactId() < 1) { + // userId is null + throw new IllegalArgumentException(MessageFormat.format("event.addedUser.userContact.contactId={0} is not valid", event.getAddedUser().getUserContact().getContactId())); //NOI18N + } else if (!this.selectableContacts.contains(event.getAddedUser().getUserContact())) { + // Contact not in selectable list found + throw new IllegalStateException(MessageFormat.format("event.addedUser.userContact.contactId={0} is not in selectableContacts list.", event.getAddedUser().getUserContact().getContactId())); + } + + // Remove this contact from selectable list + assert (this.selectableContacts.remove(event.getAddedUser().getUserContact())) : "contact was not removed"; //NOI18N + + // Add user to local list + this.userList.add(event.getAddedUser()); + } + @Override public void afterRegistrationEvent (final @Observes UserRegisteredEvent event) { // Trace message @@ -216,42 +255,6 @@ public class PizzaUserWebSessionBean implements PizzaUserWebSessionController { System.out.println("UserWebBean:afterRegistration: EXIT!"); //NOI18N } - @Override - public void afterAdminAddedUserEvent (@Observes final AdminAddedUserEvent event) { - // Trace message - System.out.println(MessageFormat.format("ContactWebBean:afterAdminAddedUserEvent: event={0} - CALLED!", event)); //NOI18N - - // The event must be valid - if (null == event) { - // Throw NPE - throw new NullPointerException("event is null"); //NOI18N - } else if (event.getAddedUser() == null) { - // Throw NPE again - throw new NullPointerException("event.addedUser is null"); //NOI18N - } else if (event.getAddedUser().getUserId() == null) { - // userId is null - throw new NullPointerException("event.addedUser.userId is null"); //NOI18N - } else if (event.getAddedUser().getUserId() < 1) { - // Not avalid id - throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getAddedUser(), event.getAddedUser().getUserId())); //NOI18N - } else if (event.getAddedUser().getUserContact() == null) { - // userId is null - throw new NullPointerException("event.addedUser.userContact is null"); //NOI18N - } else if (event.getAddedUser().getUserContact().getContactId() == null) { - // userId is null - throw new NullPointerException("event.addedUser.userContact.contactId is null"); //NOI18N - } else if (event.getAddedUser().getUserContact().getContactId() < 1) { - // userId is null - throw new IllegalArgumentException(MessageFormat.format("event.addedUser.userContact.contactId={0} is not valid", event.getAddedUser().getUserContact().getContactId())); //NOI18N - } - - // Remove this contact from selectable list - assert(this.selectableContacts.remove(event.getAddedUser().getUserContact())) : "contact was not removed"; //NOI18N - - // Add user to local list - this.userList.add(event.getAddedUser()); - } - @Override public void afterUserLogin (final @Observes UserLoggedInEvent event) { // Trace message @@ -282,6 +285,27 @@ public class PizzaUserWebSessionBean implements PizzaUserWebSessionController { System.out.println(MessageFormat.format("UserWebBean:afterUserLogin: this.visibleUserList.size()={0} - EXIT!", this.visibleUserList.size())); //NOI18N } + @Override + public void afterUserUpdatedPersonalData (@Observes final UpdatedUserPersonalDataEvent event) { + // Check parameter + if (null == event) { + // Throw NPE + throw new NullPointerException("event is null"); //NOI18N + } else if (event.getUpdatedUser() == null) { + // Throw NPE again + throw new NullPointerException("event.updatedUser is null"); //NOI18N + } else if (event.getUpdatedUser().getUserId() == null) { + // ... and again + throw new NullPointerException("event.updatedUser.userId is null"); //NOI18N + } else if (event.getUpdatedUser().getUserId() < 1) { + // Invalid value + throw new IllegalArgumentException(MessageFormat.format("event.updatedUser.userId={0} is in valid", event.getUpdatedUser().getUserId())); //NOI18N + } + + // All fine, so update list + this.updateList(event.getUpdatedUser()); + } + @Override public List allUsers () { // Return it @@ -505,27 +529,6 @@ public class PizzaUserWebSessionBean implements PizzaUserWebSessionController { return isFound; } - @Override - public void afterUserUpdatedPersonalData (@Observes final UpdatedUserPersonalDataEvent event) { - // Check parameter - if (null == event) { - // Throw NPE - throw new NullPointerException("event is null"); //NOI18N - } else if (event.getUpdatedUser() == null) { - // Throw NPE again - throw new NullPointerException("event.updatedUser is null"); //NOI18N - } else if (event.getUpdatedUser().getUserId() == null) { - // ... and again - throw new NullPointerException("event.updatedUser.userId is null"); //NOI18N - } else if (event.getUpdatedUser().getUserId() < 1) { - // Invalid value - throw new IllegalArgumentException(MessageFormat.format("event.updatedUser.userId={0} is in valid", event.getUpdatedUser().getUserId())); //NOI18N - } - - // All fine, so update list - this.updateList(event.getUpdatedUser()); - } - @Override public boolean isRequiredChangePersonalDataSet () { return ((this.getUserProfileMode() != null) && @@ -601,29 +604,6 @@ public class PizzaUserWebSessionBean implements PizzaUserWebSessionController { return Collections.unmodifiableList(this.selectableContacts); } - /** - * Adds user's name and email address to bean's internal list. It also - * updates the public user list if the user has decided to ha } - *

- * @param user User instance - */ - private void addUserNameEmailAddress (final User user) { - // Make sure the entry is not added yet - if (this.userNameList.contains(user.getUserName())) { - // Abort here - throw new IllegalArgumentException(MessageFormat.format("User name {0} already added.", user.getUserName())); //NOI18N - } else if (this.contactController.isEmailAddressRegistered(user.getUserContact())) { - // Already added - throw new IllegalArgumentException(MessageFormat.format("Email address {0} already added.", user.getUserContact().getContactEmailAddress())); //NOI18N - } - - // Add user name - this.userNameList.add(user.getUserName()); - - // Add email addres - this.contactController.addEmailAddress(user.getUserContact().getContactEmailAddress()); - } - /** * Updates list with given user instance *

@@ -663,6 +643,29 @@ public class PizzaUserWebSessionBean implements PizzaUserWebSessionController { this.userList.add(user); } + /** + * Adds user's name and email address to bean's internal list. It also + * updates the public user list if the user has decided to ha } + *

+ * @param user User instance + */ + private void addUserNameEmailAddress (final User user) { + // Make sure the entry is not added yet + if (this.userNameList.contains(user.getUserName())) { + // Abort here + throw new IllegalArgumentException(MessageFormat.format("User name {0} already added.", user.getUserName())); //NOI18N + } else if (this.contactController.isEmailAddressRegistered(user.getUserContact())) { + // Already added + throw new IllegalArgumentException(MessageFormat.format("Email address {0} already added.", user.getUserContact().getContactEmailAddress())); //NOI18N + } + + // Add user name + this.userNameList.add(user.getUserName()); + + // Add email addres + this.contactController.addEmailAddress(user.getUserContact().getContactEmailAddress()); + } + /** * Clears this bean */ diff --git a/web/admin/customer/admin_customer_list.xhtml b/web/admin/customer/admin_customer_list.xhtml index 41439704..1b22d862 100644 --- a/web/admin/customer/admin_customer_list.xhtml +++ b/web/admin/customer/admin_customer_list.xhtml @@ -55,12 +55,6 @@ - - #{msg.ADMIN_LIST_CUSTOMER_PROFILE_MODE} - - - - #{msg.ADMIN_LIST_CUSTOMER_CREATED} -- 2.39.5