/// <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); }