public GraphCore(FlowData data, ReferenceData refData, IHaversine haversine) { Haversine = haversine; fd = data; rd = refData; HydrateGraph(); }
public GraphHandler(IHaversine haversine) { DataParser x = new DataParser(); Data = x.Flow(); ReferenceParser refParser = new ReferenceParser(); RefData = refParser.Flow(); string directoryPath = @"C:\netProjects\AirlineGraph\shortestPaths"; var data = System.IO.Directory.GetFiles(directoryPath); MetaParser metaParser = new MetaParser(); Meta = metaParser.Flow(); GraphCore = new GraphCore(Data, RefData, haversine); }
public FlowData Flow() { FlowData tracking = new FlowData(); Reader fileReader = new Reader(); ReaderStore csvReaderStore = new ReaderStore(); var r = fileReader.Read(csvReaderStore.CSV_Reader_FullHead, hardFileName); for (var i = 0; i < r.FileValues[r.Headers[0]].Count; i++) { var airline = r.FileValues[r.Headers[0]][i]; var outbound = r.FileValues[r.Headers[1]][i]; var inbound = r.FileValues[r.Headers[2]][i]; if (!tracking.Outbound.ContainsKey(outbound)) { tracking.Outbound.Add(outbound, 1); } else { tracking.Outbound[outbound]++; } if (!tracking.Inbound.ContainsKey(inbound)) { tracking.Inbound.Add(inbound, 1); } else { tracking.Inbound[inbound]++; } if (!tracking.Edges.ContainsKey($"{outbound}|{inbound}")) { tracking.Edges.Add($"{outbound}|{inbound}", 1); } else { tracking.Edges[$"{outbound}|{inbound}"]++; } } foreach (var entry in tracking.Inbound) { if (!tracking.AllNodes.ContainsKey(entry.Key)) { tracking.AllNodes.Add(entry.Key, entry.Value); } } foreach (var entry in tracking.Outbound) { if (!tracking.AllNodes.ContainsKey(entry.Key)) { tracking.AllNodes.Add(entry.Key, entry.Value); } else { tracking.AllNodes[entry.Key] += entry.Value; } } var src = tracking.Outbound.OrderByDescending(x => x.Value); tracking.MaxOut = src.First().Key; return(tracking); }