コード例 #1
0
        private void GenerateIpData()
        {
            _genThread = Thread.CurrentThread;
            _genThread.Name = "Network Traffic Generator";

            int genCount = 0;

            while (IsRunning)
            {
                int dataIndex = _rGen.Next(0, IpData.Count + 1);
                IpData ipPoint = IpData[dataIndex];

                var ipRange = (int) (ipPoint.IpEnd - ipPoint.IpStart);
                var ipOffset = _rGen.Next(0, ipRange);
                var ipAddr = IpUtils.LongToIp(ipPoint.IpStart + ipOffset);

                var conn = new IpConnection
                {
                    IpAddress = ipAddr,
                    CountryCode = ipPoint.CountryCode,
                    RegionCode = ipPoint.RegionCode,
                    CityName = ipPoint.CityName,
                    CompletedAt = DateTime.Now
                };

                _ipConnRepo.Insert(conn);
                genCount++;

                NetTrafficCache.Connections.Add(conn.IpAddress, conn);

                if (genCount >= GEN_COMMIT_AFTER)
                {
                    _ipConnRepo.SaveChanges();
                    genCount = 0;
                }

                int waitTime = _rGen.Next(1, 11);
                Thread.Sleep(waitTime * DelayOffset);
            }
        }
コード例 #2
0
        public IpConnection Insert(IpConnection connection)
        {
            var result = _db.IpConnections.Add(connection);

            return result;
        }