private void SaveToFile(ProviderState currentProviderState, bool ensureExists = false) { if (currentProviderState >= ProviderState.UninitializingRecord) { var filename = Path.Combine(this.ParentAgent.JournalAbsoluteSavePath, this.ParentAgent.ItineraryLogRelativeFilePath); if (ensureExists) { lock (_lock) { using (var fs = new FileStream(filename, FileMode.OpenOrCreate)) { } } } var iti = _rtsscTable.Rows.Cast <DataRow>() .Reverse() .Select(r => Tuple.Create( r.Field <long>("key"), (IRtssc) new Rtssc { Route = r.Field <string>("route"), Troncon = r.Field <string>("troncon"), Section = r.Field <string>("section"), SousRoute = r.Field <string>("sousRoute"), Longueur = (long)r.Field <double>("longueur"), Voie = Convert.ToInt32(r.Field <string>("voie") ?? r.Table.Columns["voie"].DefaultValue), Direction = (DirectionBgr)Convert.ToInt32(r.Field <string>("direction") ?? r.Table.Columns["direction"].DefaultValue) }, (double)r.Field <int>("chainageDebut"), (double)r.Field <int>("chainageFin"))) .ToObservable(); File.WriteAllLines(filename, RtsscHelper.ConvertToItiFormat(iti).ToEnumerable()); } }
protected IEnumerable <IRtssc> ApplyActiveFilters(IEnumerable <IRtssc> rtsscCollection) { return(rtsscCollection .Where( rtssc => { if (RtsscHelper.EstRoute(rtssc)) { return this.AllowedBgrDataTypes.HasFlag(BgrDataTypes.Routes); } else if (RtsscHelper.EstBretelle(rtssc)) { return this.AllowedBgrDataTypes.HasFlag(BgrDataTypes.Bretelles); } else if (RtsscHelper.EstCarrefourGiratoire(rtssc)) { return this.AllowedBgrDataTypes.HasFlag(BgrDataTypes.CarrefoursGiratoires); } else { return false; } })); }
private IList <Tuple <double, Rtssc> > InverseGeocodeMultipleRouteWithDistance(LambertCoordinate lambert, int rayonRecherche, IEnumerable <int> ideRTSs) { var request = new GeocoderPointsInverseRequete(); request.ListeInformation = ideRTSs.Select( ideRTS => new InfoGeocoderPointInverse { CoordonneeX = lambert.X, CoordonneeY = lambert.Y, RayonRecherche = rayonRecherche, IdentifiantTheme = 207, IdentifiantSousRoute = ideRTS, DateActivite = DateTime.Today, CodeEmplacement = "" }).ToArray(); GeocoderPointsInverseReponse response = this.GeocoderPointsInverse(request); return(response.ListeInformation .OrderBy(item => item.DistanceTrace) .Select(item => Tuple.Create( item.DistanceTrace, RtsscHelper.GetRtsscFromIde(Convert.ToInt32(item.IdentifiantSousRoute), item.Chainage))) .ToList()); }