private void CheckTargets() { while (targets.Count > 0) { Target target = GetTargetFromQueue(); if (!(this.previousTarget is null)) { this.delay = (int)(target.Time - previousTarget.Time).TotalMilliseconds; } if (previousTarget is null || (target.Coordinate.Latitude != previousTarget.Coordinate.Latitude && target.Coordinate.Longitude != previousTarget.Coordinate.Longitude)) { Task movingTask = Task.Run(() => Move(target.Coordinate)); double distance = 0; Tube tube = tubes.Find(t => { distance = GetDistance(t.Coordinate, target.Coordinate); return(distance < 351); }); double speed = previousTarget is null ? 30 : speed = CalculateSpeed(previousTarget, target); string reportMessage; if (!(tube is null)) { TrafficReport report = new TrafficReport(tube.Name, id, target.Time, speed); reportMessage = CreateSuccessReport(report, distance); }
} // BuildUiExtXls public ExcelPackage BuildTrafficReportXls(Report report, DateTime from, DateTime to) { var trafficReport = new TrafficReport(DB, this); KeyValuePair <ReportQuery, DataTable> oData = trafficReport.CreateTrafficReport(report, from, to); return(AddSheetToExcel(oData.Value, report.GetTitle(from, oToDate: to), report.Title)); } // BuildTrafficReportXls
} // TableReport public ATag BuildTrafficReport(Report report, DateTime from, DateTime to, List <string> oColumnTypes = null) { var trafficReport = new TrafficReport(DB, this); KeyValuePair <ReportQuery, DataTable> oData = trafficReport.CreateTrafficReport(report, from, to); return(new Body().Add <Class>("Body") .Append(new H1().Append(new Text(report.GetTitle(from, oToDate: to)))) .Append(new P().Append(TableReport(oData.Key, oData.Value, oColumnTypes: oColumnTypes)))); } // BuildTrafficReport
public void merges_crawler_entries_for_different_user_agent_representations() { var report = new TrafficReport(); report.AddEntry("1.1.1.1", "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)".CorrectSpacesInUserAgentBecauseTheyWontWorkInLogParser(), 12, 2048); report.AddEntry("1.1.1.1", "Googlebot/2.1 (+http://www.google.com/bot.html)".CorrectSpacesInUserAgentBecauseTheyWontWorkInLogParser(), 132, 11048); var sut = new CrawlerTrafficProcessor(new UserAgentBasedCrawlerDetector()); var trafficDtos = sut.Process(report); trafficDtos.Should().HaveCount(1); }
public double addTrafficDelay(double time, double distanceFromTraffic, TrafficReport TrafficReport) { double trafficDelay = 0; switch (TrafficReport.Severity) { case TrafficSeverity.Low: if ((distanceFromTraffic <= TrafficReport.TrafficPropagationMaxDistance) && (distanceFromTraffic >= (TrafficReport.TrafficPropagationMaxDistance / 2))) { trafficDelay = time * 0.5; } break; case TrafficSeverity.Medium: if ((distanceFromTraffic <= TrafficReport.TrafficPropagationMaxDistance) && (distanceFromTraffic >= (TrafficReport.TrafficPropagationMaxDistance / 2))) { trafficDelay = time * 1; } else if ((distanceFromTraffic <= (TrafficReport.TrafficPropagationMaxDistance / 2)) && (distanceFromTraffic >= (TrafficReport.TrafficPropagationMaxDistance / 3))) { trafficDelay = time * 0.5; } break; case TrafficSeverity.High: if ((distanceFromTraffic <= TrafficReport.TrafficPropagationMaxDistance) && (distanceFromTraffic >= (TrafficReport.TrafficPropagationMaxDistance / 2))) { trafficDelay = time * 2; } else if ((distanceFromTraffic <= (TrafficReport.TrafficPropagationMaxDistance / 2)) && (distanceFromTraffic >= (TrafficReport.TrafficPropagationMaxDistance / 3))) { trafficDelay = time * 1; } else if ((distanceFromTraffic <= (TrafficReport.TrafficPropagationMaxDistance / 3)) && (distanceFromTraffic >= (TrafficReport.TrafficPropagationMaxDistance / 4))) { trafficDelay = time * 0.5; } break; default: break; } return(trafficDelay); }
public void only_keeps_recognized_crawler_entries() { var report = new TrafficReport(); report.AddEntry("1.1.1.1", "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)".CorrectSpacesInUserAgentBecauseTheyWontWorkInLogParser(), 12, 2048); report.AddEntry("2.1.2.1", "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)".CorrectSpacesInUserAgentBecauseTheyWontWorkInLogParser(), 132, 11048); report.AddEntry( "1.1.1.1", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1".CorrectSpacesInUserAgentBecauseTheyWontWorkInLogParser(), 1, 100); var sut = new CrawlerTrafficProcessor(new UserAgentBasedCrawlerDetector()); var trafficDtos = sut.Process(report); trafficDtos.Should().HaveCount(2); trafficDtos.Should().NotContain(x => x.CrawlerName == Crawler.Unrecognized.Name); }
public IList <CrawlerTraffic> Process(TrafficReport report) { var result = new List <CrawlerTraffic>(); foreach (var entry in report.Entries) { var crawler = this.detector.Recognize(entry); if (crawler == Crawler.Unrecognized) { continue; } var traffic = new CrawlerTraffic(); traffic.CrawlerName = $"{crawler.Name}({entry.Ip})"; traffic.AccessAttempts = entry.AccessAttempts; traffic.TransferedBytes = entry.TransferedBytes; result.Add(traffic); } return(this.MergeDuplicatingEntries(result)); }
public void Run() { var logsPath = this.configuration.GetLogsPath(); var logsTimespan = this.configuration.GetLogsTimespan(); TrafficReport trafficReport = null; if (logsTimespan == TimeSpan.MaxValue) { trafficReport = this.queries.GetUnboundedTrafficReport(logsPath); } else { var now = DateTime.Now; trafficReport = this.queries.GetTrafficReport( logsPath, now - logsTimespan, now); } var trafficDtos = this.crawlerTrafficProcessor.Process(trafficReport); this.storage.RefreshTrafficReport(trafficDtos); }
public static List <TrafficReport> getTrafficDataFromBackend(Routing.Nodes.Point MinPoint, Point MaxPoint, double TrafficPropagationMaxDistance) { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3; List <TrafficReport> TrafficReport = new List <TrafficReport> { }; TrafficJson TrafficJson = new TrafficJson { }; string url = reports_boundary + "?" + "min_lat=" + MinPoint.Latitude + "&" + "min_lon=" + MinPoint.Longitude + "&" + "max_lat=" + MaxPoint.Latitude + "&" + "max_lon=" + MaxPoint.Longitude; try { HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url); httpWebRequest.Method = WebRequestMethods.Http.Get; httpWebRequest.Accept = "application/json"; httpWebRequest.Credentials = new NetworkCredential(user, pw); httpWebRequest.UserAgent = "RP client"; HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse(); log.Info(url); if (response != null && response.StatusCode == HttpStatusCode.OK) { Stream stream = response.GetResponseStream(); StreamReader reader = new StreamReader(stream, Encoding.UTF8); String responseString = reader.ReadToEnd(); TrafficJson = JsonConvert.DeserializeObject <TrafficJson>(responseString); ///* ONLY FOR TESTING: add one fake traffic report in "Massagno, Praccio" */ //// Accident in "Massagno Praccio" //TrafficJson.Report testReport = new TrafficJson.Report(); //TrafficJson.reports = new List<TrafficJson.Report>(); //testReport.category = "ACCIDENT"; //testReport.severity = "HIGH"; //testReport._id = "000000000000000000000001"; //testReport.loc = new TrafficJson.Loc(); //testReport.loc.coordinates = new List<double> { 8.943813, 46.01345 }; //testReport.loc.type = "Point"; //TrafficJson.reports.Add(testReport); ///* END TESTING */ ///* ONLY FOR TESTING: add one fake traffic report in "Chiasso" */ //// Accident in "Chiasso" //TrafficJson.Report testReport = new TrafficJson.Report(); //TrafficJson.reports = new List<TrafficJson.Report>(); //testReport.category = "ACCIDENT"; //testReport.severity = "MEDIUM"; //testReport._id = "000000000000000000000001"; //testReport.loc = new TrafficJson.Loc(); //testReport.loc.coordinates = new List<double> { 9.022495, 45.839520 }; //testReport.loc.type = "Point"; //TrafficJson.reports.Add(testReport); ///* END TESTING */ if ((TrafficJson == null) || (TrafficJson.reports.Count == 0)) { log.Warn("Traffic: no data available from backend"); } else { foreach (TrafficJson.Report el in TrafficJson.reports) { TrafficReport Traffic = new TrafficReport(el._id, new Point(el.location.geometry.coordinates.Last(), el.location.geometry.coordinates.First()), el.category, el.severity, el.location.address, TrafficPropagationMaxDistance); TrafficReport.Add(Traffic); } } } else { log.Error("An error occured while calling the traffic data service: StatusCode=" + response.StatusCode); return(null); } } catch (Exception ex) { log.Error("An error occured during the traffic data get: " + ex.ToString()); return(null); } if (TrafficReport != null) { if (TrafficReport.Count == 0) { log.Warn(TrafficReport.Count + " traffic reports received"); } else { log.Info(TrafficReport.Count + " traffic reports received"); } } return(TrafficReport); }
private static Boolean KawigiEdit_RunTest(int testNum, string[] p0, string[] p1, Boolean hasAnswer, int p2) { Console.Write("Test " + testNum + ": [" + "{"); for (int i = 0; p0.Length > i; ++i) { if (i > 0) { Console.Write(","); } Console.Write("\"" + p0[i] + "\""); } Console.Write("}" + "," + "{"); for (int i = 0; p1.Length > i; ++i) { if (i > 0) { Console.Write(","); } Console.Write("\"" + p1[i] + "\""); } Console.Write("}"); Console.WriteLine("]"); TrafficReport obj; int answer; obj = new TrafficReport(); DateTime startTime = DateTime.Now; answer = obj.bestRoute(p0, p1); DateTime endTime = DateTime.Now; Boolean res; res = true; Console.WriteLine("Time: " + (endTime - startTime).TotalSeconds + " seconds"); if (hasAnswer) { Console.WriteLine("Desired answer:"); Console.WriteLine("\t" + p2); } Console.WriteLine("Your answer:"); Console.WriteLine("\t" + answer); if (hasAnswer) { res = answer == p2; } if (!res) { Console.WriteLine("DOESN'T MATCH!!!!"); } else if ((endTime - startTime).TotalSeconds >= 2) { Console.WriteLine("FAIL the timeout"); res = false; } else if (hasAnswer) { Console.WriteLine("Match :-)"); } else { Console.WriteLine("OK, but is it right?"); } Console.WriteLine(""); return res; }
public override void setTrafficReport(TrafficReport TrafficReport) { this.TrafficReport = TrafficReport; }
public override void setTrafficReport(TrafficReport TrafficReport) { throw new NotImplementedException(); }
/* Traffic functions */ public abstract void setTrafficReport(TrafficReport TrafficReport);