private static List <long> LoadFlowBySP(string spName, DataParamList dataParams, KeyFlexFieldStru struc, string sequenceBy, int count) { List <long> list = new List <long>(); DataSet set = null; Transaction current = Transaction.Current; try { TransactionOptions options = new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted }; Transaction.Current = new CommittableTransaction(options); using (SqlConnection connection = new SqlConnection(DatabaseManager.ConnectionString)) { DataAccessor.RunSP(connection, spName, dataParams, out set); ((CommittableTransaction)Transaction.Current).Commit(); } } catch (Exception) { ((CommittableTransaction)Transaction.Current).Rollback(); } finally { Transaction.Current = current; } if ((((set != null) && (set.Tables.Count != 0)) && (set.Tables[0].Rows.Count > 0)) && (set.Tables[0].Rows.Count == 1)) { DataRow row = set.Tables[0].Rows[0]; long num = 0L; long num2 = -1L; if (!((row[0] == null) || (row[0] is DBNull))) { num = Convert.ToInt64(row[0]); } if (!((row[1] == null) || (row[1] is DBNull))) { num2 = Convert.ToInt64(row[1]); } if (num2 >= num) { for (long i = num; i <= num2; i += 1L) { list.Add(i); } } } if (list.Count != count) { throw new KFFFlowNoException(struc.Name, sequenceBy, count.ToString()); } return(list); }
internal List <long> LoadFlowNos(string sequenceBy, int count, long UserDefineNumber, KeyFlexFieldStru fieldStru) { List <long> list = new List <long>(); string spName = "Base_KFFLoadFlowNew"; long iD = fieldStru.ID; if (!FlexFieldFlow.Finder.IsExists("KeyFlexFieldStru=@KeyFlexFieldStru and Code=@SequenceBy", new OqlParam[] { new OqlParam(fieldStru.ID), new OqlParam(sequenceBy) })) { iD = KeyGenerator.NewValue(); } DataParamList dataParams = new DataParamList(); dataParams.Add(DataParamFactory.CreateInput("SN", iD, DbType.Int64)); dataParams.Add(DataParamFactory.CreateInput("Struc", fieldStru.ID, DbType.Int64)); dataParams.Add(DataParamFactory.CreateInput("SequenceBy", sequenceBy, DbType.String)); dataParams.Add(DataParamFactory.CreateInput("Count", count, DbType.Int32)); dataParams.Add(DataParamFactory.CreateOutput("ErrorInfo", DbType.String)); dataParams.Add(DataParamFactory.CreateInput("UserFlow", UserDefineNumber, DbType.Int64)); return(LoadFlowBySP(spName, dataParams, fieldStru, sequenceBy, count)); }