public RouteProperty Get(Type routePropertyType, RouteLocations locations) { if (!cache.ContainsKey(routePropertyType)) { return(null); } var cacheSection = cache[routePropertyType]; if (!cacheSection.ContainsKey(locations)) { return(null); } var item = cacheSection[locations]; return(item); }
public RouteProperty GetClosest(Type routePropertyType, RouteLocations locations, ParameterizedLocation.Direction direction) { if (!cache.ContainsKey(routePropertyType)) { return(null); } var cacheSection = cache[routePropertyType]; RouteProperty closestRouteProperty = null; ParameterizedLocation closestPL = null; if (locations.IsSpan) { foreach (var item in cacheSection) { if (item.Key.Start == locations.Start // need to have same start && (closestPL == null || (direction == ParameterizedLocation.Direction.Forward && item.Key.End >= locations.End && item.Key.End < closestPL) || (direction == ParameterizedLocation.Direction.Backward && item.Key.End <= locations.End && item.Key.End > closestPL) )) { closestPL = item.Key.End; closestRouteProperty = item.Value; } } } else { foreach (var item in cacheSection) { if (closestPL == null || (direction == ParameterizedLocation.Direction.Forward && item.Key.Location >= locations.Location && item.Key.Location < closestPL) || (direction == ParameterizedLocation.Direction.Backward && item.Key.Location <= locations.Location && item.Key.Location > closestPL) ) { closestPL = item.Key.End; closestRouteProperty = item.Value; } } } return(closestRouteProperty); }
public RouteProperty GetLastAdded(Type routePropertyType, RouteLocations desiredLocations) { if (!lastAddedCache.ContainsKey(routePropertyType)) { return(null); } var items = lastAddedCache[routePropertyType]; if (desiredLocations.IsSpan) { for (int i = items.Count - 1; i >= 0; i--) { if (items[i].Locations.Start == desiredLocations.Start) { return(items[i]); } } return(null); } else { return(items[items.Count - 1]); } }
protected RouteProperty(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) { Session = session; Locations = locations; RetrieveExternalProperty = retrieveExternalProperty; }
protected RouteSpanProperty(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public AltitudeDifferenceFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public RouteToStraightLine(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public Speed(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public MinHeartRateFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public AveragePaceWhenReadingMap(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public MapReadingPercentageFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public AverageStraightLineSpeedFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public MapReadingDurationInSpan(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public AverageTimeBetweenMapReadings(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public AverageDirectionDeviationToNextLapFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public NumberOfMapReadingsFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public StraightLineDistanceFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public CircleTimeForward(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public PreviousMapReadingEnd(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public AverageHeartRate(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public CircleTimeAtEndOfSpanFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public AverageCadenceFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }
public ElapsedTimeFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty) : base(session, locations, retrieveExternalProperty) { }