} // ctor public void Clear() { if (connection != null) { if (connection.IsConnected) { connection.Dispose(); } connection = null; } } // proc Clear
/// <summary></summary> /// <param name="connection"></param> /// <param name="selectorName"></param> /// <returns></returns> public virtual PpsDataSelector CreateSelector(IPpsConnectionHandle connection, string selectorName) { // support own view definitions var view = Application.GetViewDefinition(selectorName, false); if (view.SelectorToken.DataSource == this) { return(view.SelectorToken.CreateSelector(connection)); } else // return nothing { return(null); } } // func CreateSelector
public PooledConnection(IPpsConnectionHandle connection) { if (connection == null) { throw new ArgumentNullException(nameof(connection)); } dataSourceName = connection.DataSource.Name; createdAt = Environment.TickCount; connection.Disposed += (sender, e) => Clear(); this.connection = connection; } // ctor
} // proc InitializeColumnsAsync public PpsDataSelector CreateSelector(IPpsConnectionHandle connection, string alias, bool throwException = true) { PpsDataSelector ret = null; if (String.IsNullOrEmpty(path)) { ret = InvokeCreateSelector((PpsSysConnectionHandle)connection, dataSource.application, throwException); } else { if (!dataSource.application.FirstChildren <DEConfigItem>( c => String.Compare(c.Name, path, StringComparison.OrdinalIgnoreCase) == 0, c => ret = InvokeCreateSelector((PpsSysConnectionHandle)connection, c, throwException) )) { if (throwException) { throw new ArgumentOutOfRangeException($"Path '{path}' not found."); } return(null); } } return(ret); } // func CreateSelector
/// <summary></summary> /// <param name="dataSource"></param> /// <param name="connection"></param> public PpsDataTransaction(PpsDataSource dataSource, IPpsConnectionHandle connection) { this.dataSource = dataSource ?? throw new ArgumentNullException(nameof(dataSource)); this.connection = connection ?? throw new ArgumentNullException(nameof(connection)); } // ctor
/// <summary>Create a data manipulation session.</summary> /// <param name="connection"></param> /// <returns></returns> public virtual PpsDataTransaction CreateTransaction(IPpsConnectionHandle connection) => throw new NotImplementedException();
/// <summary>Create a synchronization session for the client.</summary> /// <param name="connection"></param> /// <param name="lastSyncronizationStamp"></param> /// <param name="leaveConnectionOpen"></param> /// <returns></returns> public virtual PpsDataSynchronization CreateSynchronizationSession(IPpsConnectionHandle connection, long lastSyncronizationStamp, bool leaveConnectionOpen) => throw new NotImplementedException();
/// <summary></summary> /// <param name="connection"></param> /// <param name="lastSyncronizationStamp"></param> /// <param name="leaveConnectionOpen"></param> /// <returns></returns> public override PpsDataSynchronization CreateSynchronizationSession(IPpsConnectionHandle connection, long lastSyncronizationStamp, bool leaveConnectionOpen) => new SqlSynchronizationTransaction(Application, (IPpsSqlConnectionHandle)connection, lastSyncronizationStamp, leaveConnectionOpen);
} // proc InitializeSchemaCore #endregion /// <summary></summary> /// <param name="connection"></param> /// <returns></returns> public override PpsDataTransaction CreateTransaction(IPpsConnectionHandle connection) => new SqlDataTransaction(this, connection);
public SqlDataTransaction(PpsSqlDataSource dataSource, IPpsConnectionHandle connectionHandle) : base(dataSource, connectionHandle) { } // ctor
/// <summary></summary> /// <param name="connection"></param> /// <param name="lastSyncronizationStamp"></param> /// <param name="leaveConnectionOpen"></param> /// <returns></returns> public override PpsDataSynchronization CreateSynchronizationSession(IPpsConnectionHandle connection, long lastSyncronizationStamp, bool leaveConnectionOpen = false) => new PpsDataSynchronization(application, connection, leaveConnectionOpen);
} // proc CreateSelectorTokenAsync /// <summary></summary> /// <param name="connection"></param> /// <returns></returns> public override PpsDataTransaction CreateTransaction(IPpsConnectionHandle connection) => throw new NotSupportedException();