package com.processpuzzle.application.administration.control;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import com.processpuzzle.application.configuration.domain.ProcessPuzzleContext;
import com.processpuzzle.application.control.control.CommandDispatcher;
import com.processpuzzle.application.control.control.CommandInterface;
import com.processpuzzle.user_session.domain.UserRequestManager;
import com.processpuzzle.user_session.domain.UserSession;
import com.processpuzzle.util.domain.OPDomainStrings;
public class ShowDatabaseAdminCommand implements CommandInterface {
public static String COMMAND_NAME = "ShowDatabaseAdmin";
public void init( CommandDispatcher dispatcher ) {}
public String getName() {
return COMMAND_NAME;
}
public String execute( CommandDispatcher dispatcher ) throws Exception {
UserSession userSession = (UserSession) ((HttpServletRequest) dispatcher.getRequest()).getSession().getAttribute(
OPDomainStrings.LOGGED_USER_ATTRIBUTE_NAME_IN_SESSION );
if( userSession != null ){
Collection<?> loggedInUsers = (Collection<?>) dispatcher.getServletContext().getAttribute( "loggedInUsers" );
if( loggedInUsers.size() == 1 ){
dispatcher.getServletContext().setAttribute( "haltApplication", "true" );
// dispatcher.getServletContext().setAttribute("maintainerUserId", userSession.getId().toString());
ProcessPuzzleContext applicationContext = UserRequestManager.getInstance().getApplicationContext();
File file = new File( (String) applicationContext.getProperty( ProcessPuzzleContext.UPLOADED_FILES_FOLDER ) + "\\"
+ OPDomainStrings.BACKUP_DIR_NAME + "\\" );
if( file.exists() && file.isDirectory() ){
ArrayList<String[]> versionList = new ArrayList<String[]>();
File[] files = file.listFiles();
if( (files != null) && (files.length > 0) ){
for( int i = 0; i < files.length; i++ ){
File[] files1 = files[i].listFiles();
for( int j = 0; j < files1.length; j++ ){
String[] str = new String[2];
str[0] = files[i].getName();
str[1] = files1[j].getName();
versionList.add( str );
}
}
}
DatabaseAdminHelper helper = new DatabaseAdminHelper();
helper.retreiveDatas( versionList );
dispatcher.getRequest().setAttribute( "helper", helper );
}
}else{
dispatcher.getRequest().setAttribute( "messageKey", "tooManySignedInUser" );
return "/ProcessInstantiation/SystemAdministration/SystemAdministrationMessage.jsp";
}
return "/ProcessInstantiation/SystemAdministration/DatabaseAdmin.jsp";
}
dispatcher.getRequest().setAttribute( "messageKey", "notLoggedIn" );
return "/ProcessInstantiation/SystemAdministration/SystemAdministrationMessage.jsp";
}
}