/// <summary>
        /// Checks whether a route is in this set
        /// </summary>
        /// <param name="route"></param>
        /// <returns></returns>
        public bool Contains(GrittingRoute route)
        {
            if (route == null) throw new ArgumentNullException("route");

            var found = false;

            foreach (var routeInSet in this.routes)
            {
                if (routeInSet.RouteName == route.RouteName)
                {
                    found = true;
                    break;
                }
            }

            return found;
        }
        /// <summary>
        /// Read all the route sets for the county
        /// </summary>
        /// <returns></returns>
        public static IList<GrittingRouteSet> ReadRouteSets()
        {
            var routeSets = new Dictionary<int, GrittingRouteSet>();

            using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["GrittingDecisionReader"].ConnectionString))
            {
                using (var reader = conn.ExecuteReader("usp_RouteSet_SelectAllRoutes", commandType: CommandType.StoredProcedure))
                {
                    while (reader.Read())
                    {
                        var routeSetId = Int32.Parse(reader["RouteSetId"].ToString(), CultureInfo.InvariantCulture);
                        if (!routeSets.ContainsKey(routeSetId))
                        {
                            var routeSet = new GrittingRouteSet();
                            routeSet.RouteSetId = routeSetId;
                            routeSet.RouteSetName = reader["RouteSetName"].ToString();
                            routeSets.Add(routeSetId, routeSet);
                        }

                        var route = new GrittingRoute();
                        route.RouteName = reader["RouteName"].ToString();
                        routeSets[routeSetId].Routes.Add(route);
                    }
                }
            }

            return new List<GrittingRouteSet>(routeSets.Values);
        }