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); } }
public IpConnection Insert(IpConnection connection) { var result = _db.IpConnections.Add(connection); return result; }