コード例 #1
0
        public List <List <TOURNEE_ETAPE> > GetEtapes(LIGNE ligne, ARRET arretDepart, ARRET arretArrivee)
        {
            using (TRANSPORT_PUBLICContext context = new TRANSPORT_PUBLICContext())
            {
                List <List <TOURNEE_ETAPE> > returnedValue = new List <List <TOURNEE_ETAPE> >();
                var tourneeEtapes = context.TOURNEE_ETAPEs.Where(te => te.PARCOURS_ETAPE.PARCOURS.LIGNE.ID == ligne.ID &&
                                                                 te.PARCOURS_ETAPE.ARRET.ID == arretDepart.ID);

                foreach (var tourneeEtape in tourneeEtapes.OrderBy(p => p.HEURE_REEL))
                {
                    List <TOURNEE_ETAPE> listTourneeEtapes = new List <TOURNEE_ETAPE>();
                    var tourneeEtapeFin = context.TOURNEE_ETAPEs.SingleOrDefault(te => te.ID_TOURNEE == tourneeEtape.ID_TOURNEE && te.PARCOURS_ETAPE.ARRET.ID == arretArrivee.ID);

                    if (tourneeEtapeFin != null)
                    {
                        listTourneeEtapes.Add(tourneeEtape);
                        listTourneeEtapes.AddRange(context.TOURNEE_ETAPEs.Where(te => te.ID_TOURNEE == tourneeEtape.ID_TOURNEE &&
                                                                                te.PARCOURS_ETAPE.ORDRE > tourneeEtape.PARCOURS_ETAPE.ORDRE &&
                                                                                te.PARCOURS_ETAPE.ORDRE < tourneeEtapeFin.PARCOURS_ETAPE.ORDRE));
                        listTourneeEtapes.Add(tourneeEtapeFin);

                        returnedValue.Add(listTourneeEtapes);
                    }
                }
                return(returnedValue);
            }
        }
コード例 #2
0
        public List <LIGNE> Search(ARRET depart, ARRET arrivee, DateTime horaire)
        {
            TransportPublicParcoursEtapeOperation parcoursEtape = new TransportPublicParcoursEtapeOperation(_context);
            IQueryable <PARCOURS_ETAPE>           testDepart    = null;

            var dateMax = horaire.AddDays(1);

            while (!testDepart.SafeAny() && horaire < dateMax)
            {
                var heure = $"{horaire.Hour.ToString("00")}{horaire.Minute.ToString("00")}";
                testDepart = parcoursEtape.GetAll().Where(etp => etp.ID_ARRET == depart.ID &&
                                                          etp.TOURNEE_ETAPE.Any(te => te.HEURE == heure));

                horaire = horaire.AddMinutes(1);
            }
            if (testDepart != null)
            {
                var testArrivee = parcoursEtape.GetAll().Where(etp => etp.ID_ARRET == arrivee.ID);

                return(testDepart.Where(etp => testArrivee.Any(etp2 => etp2.ID_PARCOURS == etp.ID_PARCOURS &&
                                                               etp2.ORDRE > etp.ORDRE))
                       .Select(etp => etp.PARCOURS.LIGNE)
                       .Distinct()
                       .ToList());
            }
            return(null);
        }
コード例 #3
0
 public BusStop Load(ARRET data)
 {
     Id        = data.ID;
     Name      = data.NOM;
     Latitude  = data.COORD_Y;
     Longitude = data.COORD_X;
     return(this);
 }
コード例 #4
0
        public List <LIGNE> Search(ARRET depart, ARRET arrivee)
        {
            TransportPublicParcoursEtapeOperation parcoursEtape = new TransportPublicParcoursEtapeOperation(_context);
            IQueryable <PARCOURS_ETAPE>           testDepart    = null;


            testDepart = parcoursEtape.GetAll().Where(etp => etp.ID_ARRET == depart.ID);

            if (testDepart != null)
            {
                var testArrivee = parcoursEtape.GetAll().Where(etp => etp.ID_ARRET == arrivee.ID);

                return(testDepart.Where(etp => testArrivee.Any(etp2 => etp2.ID_PARCOURS == etp.ID_PARCOURS &&
                                                               etp2.ORDRE > etp.ORDRE))
                       .Select(etp => etp.PARCOURS.LIGNE)
                       .Distinct()
                       .ToList());
            }
            return(null);
        }
コード例 #5
0
 public PARCOURS GetByLigneEtArrets(LIGNE ligne, ARRET arretDepart, ARRET arretTerminus)
 {
     return(GetAll().SingleOrDefault(p => p.ID_LIGNE == ligne.ID && p.ID_ARRET_DEPART == arretDepart.ID && p.ID_ARRET_TERMINUS == arretTerminus.ID));
 }
コード例 #6
0
 public PARCOURS_ETAPE GetByParcoursArret(PARCOURS parcours, ARRET arret)
 {
     return(GetAll().SingleOrDefault(pe => pe.ID_PARCOURS == parcours.ID && pe.ID_ARRET == arret.ID));
 }