Package br.com.buyFast.controller.adminController

Source Code of br.com.buyFast.controller.adminController.UserSystemController

package br.com.buyFast.controller.adminController;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import br.com.buyFast.model.Administrator;
import br.com.buyFast.model.Employee;
import br.com.buyFast.service.Facade;
import br.com.buyFast.service.ServiceException;
import br.com.buyFast.util.FacesUtil;

/**
* Classe responsável pelo controle de usuário do sistema.
*/
@Controller("userSystemController")
@Scope("session")
public class UserSystemController implements Serializable {

  /**
   * {@link Serializable}.
   */
  private static final long serialVersionUID = 1L;
 
  /**
   * Apresenta o log no sistema.
   */
  private Log logger = LogFactory.getLog(UserSystemController.class);

  /**
   * Representa a camada de serviço da aplicação.
   */
  @Resource
  private Facade facade;
 
  /**
   * Representa o usuário do sistema.
   */
  private Employee employee;
 
  /**
   * Utilizado para verificação do login.
   */
  private String login;
 
  /**
   * Utilizado para verificação de senha.
   */
  private String password;
 
  /**
   * Informa se é um usuário administrador.
   */
  private boolean admin;
 
  /**
   * Modelo de grid para apresentação de funcionário.
   */
  private DataModel dataModel;
 
  /**
   * Construtor.
   */
  public UserSystemController() {
    this.employee = new Employee();
    this.admin = false;
    this.password = null;
  }
 
  /**
   * Salvar funcionário do sistema.
   * @return
   */
  public String save() {
   
    if (!this.employee.getUser().equals(this.login)) {
      FacesUtil.mensErro("", FacesUtil.getMessage("userSystemControllerErroConfLogin"));
     
      return null;
    }
   
    if (!this.employee.getPassword().equals(this.password)) {
      FacesUtil.mensErro("", FacesUtil.getMessage("userSystemControllerErroConfPassword"));
     
      return null;
    }
   
    try {
      if (this.admin == true) {
        Administrator administrator = new Administrator();
        administrator.setName(this.employee.getName());
        administrator.setCpf(this.employee.getCpf());
        administrator.setEmail(this.employee.getEmail());
        administrator.setPassword(this.employee.getPassword());
        administrator.setSecondName(this.employee.getSecondName());
        administrator.setUser(this.employee.getUser());
        // Removendo o funcionário para termos certeza que será cadastrado como admin.
        facade.removeEmployee(this.employee);
        // Persistindo como Administrador.
        facade.saveAdmin(administrator);
      } else {
        if (employee instanceof Administrator) {
          Administrator admin = (Administrator) this.employee;
          facade.removeAdmin(admin);
          Employee emp = new Employee();
          emp.setName(this.employee.getName());
          emp.setCpf(this.employee.getCpf());
          emp.setEmail(this.employee.getEmail());
          emp.setPassword(this.employee.getPassword());
          emp.setSecondName(this.employee.getSecondName());
          emp.setUser(this.employee.getUser());
          facade.saveEmployee(emp);
        } else {
          if (this.employee.getId() == null) {
            facade.saveEmployee(this.employee);
          } else {
            facade.updateEmployee(this.employee);
          }
        }
      }
    } catch (ServiceException e) {
      logger.error(e);
      FacesUtil.mensErro("", FacesUtil.getMessage("userSystemControllerErroSaveEmployee"));
      return null;
    }
   
    this.employee = new Employee();
    this.login = "";
    this.password = "";
   
    FacesUtil.mensInfo("", FacesUtil.getMessage("userSystemControllerMessageSuccess"));
   
    return null;
  }

  /**
   * Editar funcionário do sistema.
   * @return
   */
  public String edit() {
    this.employee = (Employee) dataModel.getRowData();
    this.login = this.employee.getUser();
    this.password = this.employee.getPassword();
   
    if (this.employee instanceof Administrator) {
      this.admin = true;
    } else {
      this.admin = false;
    }
   
    return null;
  }
 
  /**
   * Remover funcionário do sistema.
   * @return
   */
  public String delete() {
    Object obj = dataModel.getRowData();
    try {
      if (obj instanceof Administrator) {
        Administrator administrator = (Administrator) obj;
        facade.removeAdmin(administrator);
      } else {
        Employee employee = (Employee) obj;
        facade.removeEmployee(employee);
      }
    } catch (ServiceException e) {
      logger.error(e);
      FacesUtil.mensErro("", FacesUtil.getMessage("userSystemControllerErrorRemover"));
    }
   
    FacesUtil.mensInfo("", FacesUtil.getMessage("userSystemControllerMessageRemoveSuccess"));
   
    return null;
  }
 
  /**
   * Obter todos os funcionários do sistema.
   * @return Todos os funcionários do sistema.
   */
  public DataModel getAllEmployee() {
    try {
      List<Employee> list = new ArrayList<Employee>();
      for (Employee employee : facade.getAllEmployee()) {
        if (employee instanceof Administrator) {
          // Administrador não entra na lista.
        } else {
          list.add(employee);
        }
      }
      dataModel = new ListDataModel(list);
      return dataModel;
    } catch (ServiceException e) {
      logger.error(e);
      FacesUtil.mensErro("", FacesUtil.getMessage("userSystemControllerErroSaveEmployee"));
    }
   
    dataModel = new ListDataModel();
    return dataModel;
  }
 
  /**
   * Obter todos os administradores do sistema.
   * @return Todos os administradores do sistema.
   */
  public DataModel getAllAdmin() {
    try {
      dataModel = new ListDataModel(facade.getAllAdministrator());
      return dataModel;
    } catch (ServiceException e) {
      logger.error(e);
      FacesUtil.mensErro("", FacesUtil.getMessage("userSystemControllerErroSaveEmployee"));
    }
   
    dataModel = new ListDataModel();
    return dataModel;
  }
 
  /**
   * Obter o funcionário do sistema.
   * @return O funcionário do sistema.
   */
  public Employee getEmployee() {
    return employee;
  }

  /**
   * Ajustar o funcionário do sistema.
   * @param employee O funcionário do sistema.
   */
  public void setEmployee(Employee employee) {
    this.employee = employee;
  }

  /**
   * Obter o login para verificação.
   * @return O login para verificação.
   */
  public String getLogin() {
    return login;
  }

  /**
   * Ajustar o login para verificação.
   * @param login O login para verificação.
   */
  public void setLogin(String login) {
    this.login = login;
  }

  /**
   * Obter a senha para verificação.
   * @return A senha para verificação.
   */
  public String getPassword() {
    return password;
  }

  /**
   * Ajustar a senha para verificação.
   * @param password A senha para verificação.
   */
  public void setPassword(String password) {
    this.password = password;
  }

  /**
   * Obter o modelo da tabela.
   * @return O modelo da tabela.
   */
  public DataModel getDataModel() {
    return dataModel;
  }

  /**
   * Ajustar o modelo da tabela.
   * @param dataModel O modelo da tabela.
   */
  public void setDataModel(DataModel dataModel) {
    this.dataModel = dataModel;
  }

  /**
   * Ajustar a camada de serviço da aplicação.
   * @param facade A camada de serviço da aplicação.
   */
  public void setFacade(Facade facade) {
    this.facade = facade;
  }

  /**
   * Informa se é um administrador.
   * @return <code>true</code> caso seja administrador do sistema. <code>false</code> caso contrário.
   */
  public boolean isAdmin() {
    return admin;
  }

  /**
   * Ajustar se é um administrador do sistema.
   * @param isAdmin <code>true</code> caso seja administrador do sistema. <code>false</code> caso contrário.
   */
  public void setAdmin(boolean admin) {
    this.admin = admin;
  }

}
TOP

Related Classes of br.com.buyFast.controller.adminController.UserSystemController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.