Ejemplo n.º 1
0
        private static string[] GetDownstreamLinks(Configuration_RoadwayLinkInformation linkId, double maxDistance)
        {
            List <string> results = new List <string>();

            results.Add(linkId.RoadwayLinkIdentifier);

            if (linkId.DownstreamRoadwayLinkIdentifier != null)
            {
                Configuration_RoadwayLinkInformation nextLink = srInfloDbContext.Configuration_RoadwayLinkInformation
                                                                .Find(linkId.DownstreamRoadwayLinkIdentifier);

                if (nextLink != null)
                {
                    maxDistance -= Math.Abs(linkId.EndMileMarker - nextLink.EndMileMarker);

                    if (maxDistance > 0)
                    {
                        results.AddRange(GetDownstreamLinks(nextLink, maxDistance));
                    }
                }
            }

            return(results.ToArray());
        }
Ejemplo n.º 2
0
        private static bool LoadApplicableAlerts(string linkId, out TMEOutput_Recommended_QWARN_CVMessage[] qWarnAlerts)
        {
            Configuration_RoadwayLinkInformation currentLink = srInfloDbContext.Configuration_RoadwayLinkInformation
                                                               .Find(linkId);

            if (false && currentLink != null)
            {
                IEnumerable <string> downstreamLinks = GetDownstreamLinks(currentLink, AlertSearchDistance);

                //Select the latest alert for each roadwayLink.
                qWarnAlerts = downstreamLinks.Select(x =>
                                                     srInfloDbContext.TMEOutput_Recommended_QWARN_CVMessage
                                                     .Where(q => q.RoadwayLinkID.Equals(x))
                                                     .OrderByDescending(q => q.Timestamp)
                                                     .FirstOrDefault())
                              .Where(q => q != null).ToArray();

                return(true);
            }

            qWarnAlerts = new TMEOutput_Recommended_QWARN_CVMessage[0];

            return(false);
        }