/// <summary>
        /// Displays a dialog prompting the user for connection details. The isNewConnection
        /// parameter will be true if the user is creating a new connection rather than editing an
        /// existing connection. This should return true if the user clicked OK. If it returns false,
        /// any changes to the IConnectionInfo object will be rolled back.</summary>
        public override bool ShowConnectionDialog(IConnectionInfo pCxInfo, bool pIsNewConnection)
        {
            VelocityDBProperties lProp;
            if (pIsNewConnection)
            {
                lProp = new VelocityDBProperties(pCxInfo)
                {
                    Host = Dns.GetHostName(),
                    WindowsAuth = false,
                    PessimisticLocking = false
                };
            }
            else 
              lProp = new VelocityDBProperties(pCxInfo);
            bool? result = new ConnectionDialog(pCxInfo).ShowDialog();
            if (result != true)
              return false;

            // This function, as well as GetSchemaAndBuildAssembly, runs on a separeted appdomain. But different from 
            // GetSchemaAndBuildAssembly, pCxInfo gets persisted if true is returned. So this is the best (found) place to create
            // a list of dependencies.
            
            // Save already loaded assemblies.
            SchemaInfo lSchema = SchemaExtractor.Extract(lProp.ClassesFilenamesArray, lProp.DependencyFilesArray);
            SessionInfo lSessionInfo = new SessionInfo()
            {
                DBFolder = lProp.DBFolder,
                Host = lProp.Host,
                PessimisticLocking = lProp.PessimisticLocking,
                SessionType = lProp.SessionType,
                WindowsAuth = lProp.WindowsAuth
            };

            VelocityDBAccessBuilder lBuilder = new VelocityDBAccessBuilder(lSchema, lSessionInfo);
            lBuilder.BuildAssembly(new AssemblyName("DummyName"), "DummyName", "DummyName", false);

            lProp.ActualDepencies = lSchema.LoadedAssemblies;
            return true;
        }
 public VelocityDBBuilder(VelocityDBDynamicDriver pDriver, VelocityDBProperties pProperties)
 {
     schema = SchemaExtractor.Extract(pProperties.ClassesFilenamesArray, pProperties.DependencyFilesArray);
     sessionInfo = new SessionInfo()
     {
         DBFolder = pProperties.DBFolder,
         Host = pProperties.Host,
         PessimisticLocking = pProperties.PessimisticLocking,
         SessionType = pProperties.SessionType,
         WindowsAuth = pProperties.WindowsAuth
     };
 }
 public VelocityDBAccessBuilder(SchemaInfo pSchema, SessionInfo pSessionInfo)
 {
   schema = pSchema;
   sessionInfo = pSessionInfo;
 }