예제 #1
0
                }                 // ctor

                public void Clear()
                {
                    if (connection != null)
                    {
                        if (connection.IsConnected)
                        {
                            connection.Dispose();
                        }
                        connection = null;
                    }
                }                 // proc Clear
예제 #2
0
        /// <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
예제 #3
0
                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
예제 #4
0
            }             // 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
예제 #5
0
 /// <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
예제 #6
0
 /// <summary>Create a data manipulation session.</summary>
 /// <param name="connection"></param>
 /// <returns></returns>
 public virtual PpsDataTransaction CreateTransaction(IPpsConnectionHandle connection)
 => throw new NotImplementedException();
예제 #7
0
 /// <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();
예제 #8
0
 /// <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);
예제 #9
0
        }         // proc InitializeSchemaCore

        #endregion

        /// <summary></summary>
        /// <param name="connection"></param>
        /// <returns></returns>
        public override PpsDataTransaction CreateTransaction(IPpsConnectionHandle connection)
        => new SqlDataTransaction(this, connection);
예제 #10
0
 public SqlDataTransaction(PpsSqlDataSource dataSource, IPpsConnectionHandle connectionHandle)
     : base(dataSource, connectionHandle)
 {
 }             // ctor
예제 #11
0
 /// <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);
예제 #12
0
        }         // proc CreateSelectorTokenAsync

        /// <summary></summary>
        /// <param name="connection"></param>
        /// <returns></returns>
        public override PpsDataTransaction CreateTransaction(IPpsConnectionHandle connection)
        => throw new NotSupportedException();