package jp.co.ulsystems.xmldb.logic

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import ListInput;

import com.neocore.httpclient.SessionManagedNeoConnection;

public class SelectListLogic {
   private String queryResultsXml = null;
   SelectListInput input = null;

   public ListSearchLogic(HttpServletRequest request,HttpServletResponse response) throws Exception {
      queryResultsXml = null;
      input.evaluateParams(request);
   }
   
   public void execute(){
      SessionManagedNeoConnection session = null;
      try{
         //XQuery式の構築
         String query = "for $data in /ND/document-content/body/presentation sortby (integer(root(.)//DocID/text()))" +
            " let $customer := $data//frame[@name='お客様名']//text()" +
            ",$title := $data//frame[@name='提案タイトル']//text()" +
            ",$date := $data//frame[@name='提案日']//text()" +
            ",$location := $data//frame[@name='営業拠点']//text()" +
            ",$charge := $data//frame[@name='担当営業名']//text()" +
            ",$system := $data//frame[@name='提案機種']//text()" +
            ",$estimate := $data//frame[@name='見積もり金額']//text()" +
            input.createWhere() +
            " return" +
            "<result>" +
            "<customer>{string($customer)}</customer>" +
            "<title>{string($title)}</title>" +
            "<date>{string($date)}</date>" +
            "<location>{string($location)}</location>" +
            "<charge>{string($charge)}</charge>" +
            "<system>{string($system)}</system>" +
            "<estimate>{string($estimate)}</estimate>" +
            "</result>";

         // XQueryを使用し検索を実行する
         // XMLDBとのセッションを確立
         SessionManagedNeoConnection session =
            new SessionManagedNeoConnection("localhost",7701);
         session.login("Administrator","admin");

         // 検索の実行
         queryResultsXml = session.queryXML(query);
         // XMLDBからログアウト
         session.logout ();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}