public OperationResult createSubLotByTokenVendor(long numberOfTokensInLot, string tokenParamsID, string subLotID, DateTime expirationDate, out long numberOfSeeds) { IDbCommand _cmdInfo = null; IDbCommand _cmdBuild = null; numberOfSeeds = -1L; string _lotNumber = BaseFunctions.GenerateSupplierLotNumber(numberOfTokensInLot.ToString(), null); OperationResult result; try { base.ConnectionString = DBConnectionString.ExpandSAFCore(); _cmdInfo = base.CreateCommand("CheckAvailableSeedsByTokenParamsID", CommandType.StoredProcedure); _cmdInfo.Parameters.Add(base.AddParameter("@Param0", tokenParamsID)); base.Connection.Open(); numberOfSeeds = (long)((int)_cmdInfo.ExecuteScalar()); if (numberOfSeeds < numberOfTokensInLot) { SAFLOGGER.Write(SAFLOGGER.LOGGEREventID.WARNING, "SAFCORE", new string[] { "http://sfexpand.SAFCore.TokensDAO.softfinanca.com/createSubLotByTokenVendor", OperationResult.TokenVendorSeedNotAvaliable.ToString() }); result = OperationResult.TokenVendorSeedNotAvaliable; } else { _cmdBuild = base.CreateCommand("CreateSupplierSubLot", CommandType.StoredProcedure); _cmdBuild.Parameters.Add(base.AddParameter("@Param0", _lotNumber)); _cmdBuild.Parameters.Add(base.AddParameter("@Param1", expirationDate)); _cmdBuild.Parameters.Add(base.AddParameter("@Param2", tokenParamsID)); _cmdBuild.Parameters.Add(base.AddParameter("@top", (int)numberOfTokensInLot)); numberOfSeeds = (long)_cmdBuild.ExecuteNonQuery(); result = OperationResult.Success; } } catch (Exception ex) { SAFLOGGER.Write(SAFLOGGER.LOGGEREventID.EXCEPTION, "SAFCORE", new string[] { "http://sfexpand.SAFCore.TokensDAO.softfinanca.com/", Assembly.GetExecutingAssembly().FullName.ToString(), ex.ToString() }); result = OperationResult.Error; } finally { if (_cmdInfo != null) { _cmdInfo.Dispose(); } if (_cmdBuild != null) { _cmdBuild.Dispose(); } base.CloseConnection(); } return(result); }
public OperationResult createSubLotByTokenVendor(long numberOfTokensInLot, string tokenParamsID, string subLotID, DateTime expirationDate, out long numberOfSeeds) { IDbCommand dbCommand = null; IDbCommand dbCommand2 = null; numberOfSeeds = -1L; string value = BaseFunctions.GenerateSupplierLotNumber(numberOfTokensInLot.ToString(), null); OperationResult result; try { base.ConnectionString = DBConnectionString.ExpandSAFCore(); base.Connection.Open(); dbCommand = base.CreateCommand("CheckAvailableSeedsByTokenParamsID", CommandType.StoredProcedure); dbCommand.Parameters.Add(base.AddParameter("@Param0", tokenParamsID)); numberOfSeeds = (long)((int)dbCommand.ExecuteScalar()); if (numberOfSeeds < numberOfTokensInLot) { result = OperationResult.TokenVendorSeedNotAvaliable; } else { dbCommand2 = base.CreateCommand("CreateSupplierSubLot", CommandType.StoredProcedure); dbCommand2.Parameters.Add(base.AddParameter("@Param0", value)); dbCommand2.Parameters.Add(base.AddParameter("@Param1", expirationDate)); dbCommand2.Parameters.Add(base.AddParameter("@Param2", tokenParamsID)); dbCommand2.Parameters.Add(base.AddParameter("@top", (int)numberOfTokensInLot)); numberOfSeeds = (long)dbCommand2.ExecuteNonQuery(); result = OperationResult.Success; } } catch (Exception ex) { LOGGER.Write(LOGGER.LogCategory.ERROR, "SF.Expand.SAF.Core.TokensDAO::createNewTokenVendorSubLot[]" + Environment.NewLine + ex.ToString(), null); result = OperationResult.Error; } finally { if (dbCommand != null) { dbCommand.Dispose(); } if (dbCommand2 != null) { dbCommand2.Dispose(); } base.CloseConnection(); } return(result); }
public static void Generate(string seedType, string _fname, int tThreads, long tSeeds, bool showProcessing, bool generateMatrix) { DateTime now = DateTime.Now; ArrayList arrayList = new ArrayList(); Thread[] array = new Thread[tThreads]; long num = tSeeds / (long)tThreads; long num2 = tSeeds % (long)tThreads; Thread.Sleep(new Random().Next(1, 9)); int num3; int num4; ThreadPool.GetAvailableThreads(out num3, out num4); string text = BaseFunctions.GenerateSupplierLotNumber(tSeeds.ToString(), null); TokenTypeBaseParams tokenTypeBaseParams = new TokenParamsDAO().loadTokenBaseParams(seedType); generateMatrix = (tokenTypeBaseParams.MovingFactorType == TokenMovingFactorType.TransactionAuthenticationNumber); for (int i = 0; i < array.Length; i++) { array[i] = new Thread(new ParameterizedThreadStart(GenerateSeeds.buildSeeds)); array[i].Start(new object[] { tokenTypeBaseParams, (i == 0) ? (num + num2) : num, text, i.ToString(), arrayList, generateMatrix }); } bool flag; do { flag = true; for (int j = 0; j < array.Length; j++) { if (array[j].IsAlive) { Thread.Sleep(1000); flag = false; break; } } }while (!flag); Console.WriteLine(GenerateSeeds.SyncronizeAllFiles(tThreads, _fname, text, generateMatrix) ? (_fname + " created suceffuly") : (_fname + " not created! ERROR!")); Console.WriteLine("Processing completed on [" + DateTime.Now.Subtract(now).ToString() + "]"); }
public static void Generate(string seedType, string _fname, int tThreads, long tSeeds, bool showProcessing, bool generateMatrix) { int intAvailableThreads; int intAvailableIoAsynThreds; DateTime _initProc = DateTime.Now; ArrayList _vSerial = new ArrayList(); Thread[] m_Threads = new Thread[tThreads]; long _processLoad = tSeeds / tThreads; long __processLoad = tSeeds % tThreads; Thread.Sleep(new Random().Next(1, 9)); //induce entropy ThreadPool.GetAvailableThreads(out intAvailableThreads, out intAvailableIoAsynThreds); string _supplierLotNumber = BaseFunctions.GenerateSupplierLotNumber(tSeeds.ToString(), null); TokenTypeBaseParams _tkTypeBaseParams = new TokenParamsDAO().loadTokenBaseParams(seedType); generateMatrix = _tkTypeBaseParams.MovingFactorType == TokenMovingFactorType.TransactionAuthenticationNumber ? true : false; for (int i = 0; i < m_Threads.Length; i++) { m_Threads[i] = new Thread(new ParameterizedThreadStart(buildSeeds)); m_Threads[i].Start(new object[] { (object)_tkTypeBaseParams, (object)(i == 0 ? _processLoad + __processLoad : _processLoad), (object)_supplierLotNumber, (object)i.ToString(), (object)_vSerial, (object)generateMatrix }); } while (true) { bool _fl = true; for (int i1 = 0; i1 < m_Threads.Length; i1++) { if (m_Threads[i1].IsAlive) { Thread.Sleep(1000); _fl = false; break; } } if (_fl) { break; } } Console.WriteLine(SyncronizeAllFiles(tThreads, _fname, _supplierLotNumber, generateMatrix) ? _fname + " created suceffuly" : _fname + " not created! ERROR!"); Console.WriteLine("Processing completed on [" + DateTime.Now.Subtract(_initProc).ToString() + "]"); }