// 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 }; }
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(); }
/* 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; }
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(); }
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; }
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; }
public void Add(BUS bus) { dBase.BUS.Add(bus); dBase.SaveChanges(); }