Beispiel #1
0
 // seleciona os ônibus que passam na estação
 public IEnumerable<StationBus> SelectStationBus(BUS bus, STATION station)
 {
     return from station_bus in dBase.STATION_BUSES
            join stations in dBase.STATIONS on station_bus.Stations_Fk equals stations.Station_ID
            join buses in dBase.BUS on station_bus.Buses_FK equals buses.Bus_ID
            where stations.Station_ID == station.Station_ID
            where buses.Bus_ID == bus.Bus_ID
            select new StationBus { Station = stations, Bus = buses };
 }
Beispiel #2
0
        public void Edit(BUS bus)
        {
            BUS tempBus = dBase.BUS.Where(x => x.Bus_ID == bus.Bus_ID).First();
            tempBus.Bus_Description = bus.Bus_Description;
            tempBus.Bus_Color = bus.Bus_Color;
            tempBus.Bus_Provider = bus.Bus_Provider;

            dBase.SaveChanges();
        }
Beispiel #3
0
        /* Código referente ao cadastro dos Ônibus juntamente com suas Rotas.
         É feito um join da rota do ônibus com as estações em que ele passa. Portanto, DEVE ser feito o
            cadastro das estações de ônibus ANTES de adicionar a rota.
         É realizado um insert nas tabelas BUSES, ROUTES e STATION_BUSES */
        private bool addBusRoutes(KmlFile kml)
        {
            BUS bus = new BUS();
            ROUTE route = new ROUTE();
            DBRoute dbRoute = new DBRoute(context);
            DBStation dbStation = new DBStation(context);

            route.BUS = bus;

            StringBuilder sb = new StringBuilder("LINESTRING (");
            bus.Bus_Description = Methods.getBusDescription(kml);
            bool hasStation = false;

            foreach (var folder in kml.Root.Flatten().OfType<Folder>())
            {
                if (folder.Flatten().OfType<SharpKml.Dom.LineString>().Any())
                {
                    DBStation_Bus dbStationBus = new DBStation_Bus(context);

                    foreach (var placemark in folder.Flatten().OfType<SharpKml.Dom.Placemark>())
                    {
                        parseLineString(placemark, sb); // grava a rota do onibus
                        hasStation = parsePoint(placemark, dbStationBus, dbStation, bus, route, hasStation); // grava as estacoes que o onibus passa
                    }
                }
            }

            if (!hasStation)
            {
                string message = "The stations this bus pass by are not in the database. Please insert the stations first, then the bus route";
                Methods.DisplayMessage(lblMessage, message, Color.Red);
                throw new Exception(message);
            }

            route.Route_Coordinates = DbGeography.LineFromText(sb.Replace(',', ')', sb.Length - 1, 1).ToString(), 4326);

            dbRoute.Add(route);
            return true;
        }
Beispiel #4
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (validFields())
            {
                if (txtID.Text.Length > 0) //Alter
                {
                    try
                    {
                        using (context = new Teste_OnibusContext())
                        {
                            var id = int.Parse(txtID.Text);
                            BUS bus = context.BUS.FirstOrDefault(x => x.Bus_ID == id);

                            bus.Bus_Description = txtDescription.Text;
                            bus.Bus_Provider = txtProvider.Text;
                            bus.Bus_Color = txtColor.Text;

                            context.SaveChanges();

                            if (loadGridViewData(context))
                            {
                                lblMessage.Text = "Updated successfully!";
                                lblMessage.ForeColor = Color.Green;
                                enableFields(false);
                            }
                        }

                    }
                    catch (Exception ex)
                    {
                        Methods.DisplayMessage(lblMessage, "It was not possible to update the data", Color.Red);
                    }
                }
                else // Add
                {
                    BUS bus = new BUS();

                    bus.Bus_Description = txtDescription.Text;
                    bus.Bus_Provider = txtProvider.Text;
                    bus.Bus_Color = txtColor.Text;

                    using (context = new Teste_OnibusContext())
                    {
                        context.BUS.Add(bus);

                        context.SaveChanges();

                        if (loadGridViewData(context))
                        {
                            lblMessage.Text = "Add successfully!";
                            lblMessage.ForeColor = Color.Green;
                            enableFields(false);
                        }
                    }
                }
            }
            else
            {
                Methods.DisplayMessage(lblMessage, "Check the input data", Color.Red);
            }
            resetFields();
        }
Beispiel #5
0
        private bool parsePoint(Placemark placemark, DBStation_Bus dbStationBus, DBStation dbStation, BUS bus, ROUTE route, bool hasStation)
        {
            foreach (var lineString in placemark.Flatten().OfType<SharpKml.Dom.Point>())
            {
                IList<STATION> stationsNear = dbStation.SelectStationsNear(50,
                    Methods.ConvertLatLonToDbGeography(lineString.Coordinate.Longitude, lineString.Coordinate.Latitude));

                foreach (var station in stationsNear)
                {
                    STATION_BUSES stationBus = new STATION_BUSES();

                    stationBus.STATION = station;
                    stationBus.BUS = bus;

                    dbStationBus.AddStation_Buses_Route(route, stationBus);
                    hasStation = true;
                }
            }
            return hasStation;
        }
Beispiel #6
0
 private bool parsePlacemark(IEnumerable<Placemark> enumerablePlacemark, bool done, StreamWriter writetext, KmlFile kml = null)
 {
     foreach (var placemark in enumerablePlacemark)
     {
         done = parsePoint(placemark, done, writetext);
         if (placemark.Flatten().OfType<SharpKml.Dom.LineString>().Any())
         {
             BUS bus = new BUS();
             bus.Bus_Description = Methods.getBusDescription(kml);
         }
     }
     return done;
 }
Beispiel #7
0
 public void Add(BUS bus)
 {
     dBase.BUS.Add(bus);
     dBase.SaveChanges();
 }