Exemple #1
0
        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);
        }
Exemple #3
0
        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() + "]");
        }