Exemplo n.º 1
0
        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());
            }
        }
Exemplo n.º 2
0
 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());
        }