Example #1
0
        private void CreateAsyncProcess()
        {
            ProcessInfo processInfo = new ProcessInfo(_serverSession.SessionInfo);

            processInfo.DefaultIsolationLevel = DAE.IsolationLevel.Browse;
            if (!_stoppingAsync)
            {
                _asyncProcess = _serverSession.StartProcess(processInfo);
            }
            else
            {
                _asyncProcess = null;
            }
        }
Example #2
0
        public static void SequenceChange(Client.Session session, ISource source, bool shouldEnlist, DAE.Runtime.Data.IRow fromRow, DAE.Runtime.Data.IRow toRow, bool above, string script)
        {
            if (!String.IsNullOrEmpty(script) && source != null)
            {
                Guid enlistWithATID = Guid.Empty;

                if (shouldEnlist && source.DataView.Active && source.DataView.ApplicationTransactionServer != null)
                {
                    enlistWithATID = source.DataView.ApplicationTransactionServer.ApplicationTransactionID;
                }

                DAE.IServerProcess process = session.DataSession.ServerSession.StartProcess(new DAE.ProcessInfo(session.DataSession.ServerSession.SessionInfo));
                try
                {
                    if (enlistWithATID != Guid.Empty)
                    {
                        process.JoinApplicationTransaction(enlistWithATID, false);
                    }

                    // Prepare arguments
                    DAE.Runtime.DataParams paramsValue = new DAE.Runtime.DataParams();
                    foreach (DAE.Schema.Column column in fromRow.DataType.Columns)
                    {
                        paramsValue.Add(new DAE.Runtime.DataParam("AFromRow." + column.Name, column.DataType, DAE.Language.Modifier.In, fromRow[column.Name]));
                        paramsValue.Add(new DAE.Runtime.DataParam("AToRow." + column.Name, column.DataType, DAE.Language.Modifier.In, toRow[column.Name]));
                    }
                    paramsValue.Add(new DAE.Runtime.DataParam("AAbove", source.DataView.Process.DataTypes.SystemBoolean, DAE.Language.Modifier.In, above));

                    session.ExecuteScript(process, script, paramsValue);
                }
                finally
                {
                    session.DataSession.ServerSession.StopProcess(process);
                }

                source.DataView.Refresh();
            }
        }