コード例 #1
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);

                            STATION station = context.STATIONS.FirstOrDefault(x => x.Station_ID == id);

                            station.Station_Description = txtDescription.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
                //{
                //    STATION station = new STATION();

                //    station = txtDescription.Text;

                //    using (context = new Teste_OnibusContext())
                //    {
                //        context.STATION.Add(station);

                //        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();
        }
コード例 #2
0
ファイル: ManageRoute.cs プロジェクト: emilioweba/BusProject
        public ManageRoute(Form parent)
        {
            InitializeComponent();
            this.formParent = parent;

            using (context = new Teste_OnibusContext())
            {
                loadGridViewData(context);
            }
        }
コード例 #3
0
        public ManageStations(Form parent)
        {
            InitializeComponent();
            this.parentForm = parent;

            using (context = new Teste_OnibusContext())
            {
                loadGridViewData(context);
            }
        }
コード例 #4
0
        public ManageReference(Form parent)
        {
            InitializeComponent();
            this.parentForm = parent;
            txtMain.Enabled = false;

            using (context = new Teste_OnibusContext())
            {
                loadGridViewData(context);
            }
        }
コード例 #5
0
ファイル: ManageRoute.cs プロジェクト: emilioweba/BusProject
 private bool loadGridViewData(Teste_OnibusContext context)
 {
     try
     {
         var list = new BindingList<ROUTE>(context.ROUTEs.ToList());
         var source = new BindingSource(list, null);
         dgvRoutes.DataSource = source;
         return true;
     }
     catch (Exception ex)
     {
         return false;
     }
 }
コード例 #6
0
ファイル: Form_Search.cs プロジェクト: emilioweba/BusProject
        public void loadStationCombobox()
        {
            using (Teste_OnibusContext db = new Teste_OnibusContext())
            {

                db.Database.Connection.Open();

                //DBStation db = new DBStation(new Teste_OnibusContext());

                IEnumerable<STATION> enumerable = db.STATIONS.ToList();

                cboStation.DataSource = enumerable;
                cboStation.DisplayMember = "Station_Description";
                cboStation.ValueMember = "Station_ID";

                txtDistance.Visible = false;
                lblDistance.Visible = false;
                lblMeters.Visible = false;
            }
        }
コード例 #7
0
ファイル: Form_Search.cs プロジェクト: emilioweba/BusProject
        private void btnSearch_Click(object sender, EventArgs e)
        {
            cboBuses.DataSource = null;
            lblMessage.Text = String.Empty;
            try
            {
                int distance = 300;
                //if (!getDistance(ref distance))
                //{
                //    throw new Exception("Distância inserida em formato incorreto. Favor utilizar apenas números inteiros acima de zero.");
                //}

                Teste_OnibusContext context = new Teste_OnibusContext();
                DBLandmark DBlandmark = new DBLandmark(context);

                //consulta as coordenadas do ponto de referencia
                IEnumerable<Coordinates> landmarkResult = DBlandmark.SelectLike(processString(txtKeyword.Text));

                if (landmarkResult.Count() > 1)
                {
                    Methods.DisplayMessage(lblMessage, "More then one place has this name. Plese be more specific.", Color.Red); //Especificar melhor a busca
                }
                else if (landmarkResult.Count() == 0)
                {
                    Methods.DisplayMessage(lblMessage, "No local was found with this description", Color.Red);
                    //fillRecommendedBuses(kml, getCoordinatesReference(txtKeyword.Text)); //pesquisa no Google Maps
                }
                else
                {
                    //txtResultPontoReferencia.Text = landmarkResult.ElementAt(0).LandmarkKnownAs.Known_As_Description;

                    fillRecommendedBuses(landmarkResult.ElementAt(0).Landmark.Landmark_Coordinates, context, (STATION)cboStation.SelectedItem, distance); //ja está cadastrado no Banco de Dados
                    Methods.DisplayMessage(lblMessage, "See your recommended buses!", Color.Green);
                }
            }
            catch (Exception ex)
            {
                Methods.DisplayMessage(lblMessage, ex.Message, Color.Red);
            }
        }
コード例 #8
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);
                            LANDMARK_KNOWN_AS landmark = context.LANDMARK_KNOWN_AS.FirstOrDefault(x => x.Known_As_ID == id);

                            landmark.Known_As_Description = txtKnown.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
            {
                Methods.DisplayMessage(lblMessage, "Check the input data", Color.Red);
            }
            resetFields();
        }
コード例 #9
0
ファイル: DBBus.cs プロジェクト: emilioweba/BusProject
 public DBBus(Teste_OnibusContext dBase)
 {
     this.dBase = dBase;
 }
コード例 #10
0
        private void dgvReferences_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
        {
            lblMessage.Text = string.Empty;
            if (MessageBox.Show("When performing this operation, all related landmarks will also be deleted. Are you sure you want to continue?", "Confirmation", MessageBoxButtons.OKCancel) == System.Windows.Forms.DialogResult.OK)
            {
                try
                {
                    using (context = new Teste_OnibusContext())
                    {
                        var id = int.Parse(e.Row.Cells["Known_As_ID"].Value.ToString());

                        LANDMARK_KNOWN_AS landmark = context.LANDMARK_KNOWN_AS.FirstOrDefault(x => x.Known_As_ID == id);

                        var parentLandmark = landmark.LANDMARK;
                        var relatedLandmarks = parentLandmark.LANDMARK_KNOWN_AS.ToList();

                        foreach (var item in relatedLandmarks)
                        {
                            context.LANDMARK_KNOWN_AS.Remove(item);
                        }

                        context.LANDMARK_KNOWN_AS.Remove(landmark);
                        context.LANDMARKs.Remove(parentLandmark);

                        context.SaveChanges();

                        if (loadGridViewData(context))
                        {
                            Methods.DisplayMessage(lblMessage, "Deleted successfully!", Color.Green);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Methods.DisplayMessage(lblMessage, "Error while deleting", Color.Red);
                }
                enableFields(false);
            }
            else
                e.Cancel = true;
        }
コード例 #11
0
ファイル: Form_Search.cs プロジェクト: emilioweba/BusProject
        private void fillRecommendedBuses(DbGeography coordinatesReference, Teste_OnibusContext context, STATION selectedStation, int distance)
        {
            List<BUS> recommendedBus = new List<BUS>();
            DBStation_Bus dbStationBus = new DBStation_Bus(context);

            // seleciona os ônibus que passam na estação a menos de DISTANCE metros do ponto de referência
            var stationsNear = dbStationBus.SelectStationsNear(distance, coordinatesReference);

            foreach (var station in stationsNear)
            {
                // para cada ônibus que passa no ponto de refência, verifica se ele também passa na estação em que o usuário está
                var busInStation = dbStationBus.SelectStationBus(station.BUS, selectedStation);

                foreach (var item in busInStation)
                {
                    if (!recommendedBus.Contains(item.Bus)) // se passar, recomenda ele para o usuário
                        recommendedBus.Add(item.Bus);
                }
            }

            cboBuses.DataSource = recommendedBus.Select(x => x.Bus_Description).ToList();
        }
コード例 #12
0
        private bool loadGridViewData(Teste_OnibusContext context)
        {
            try
            {
                dgvReferences.DataSource = null;

                var list = new BindingList<LANDMARK_KNOWN_AS>(context.LANDMARK_KNOWN_AS.ToList());
                var source = new BindingSource(list, null);
                dgvReferences.DataSource = source;

                dgvReferencesColumnsVisible(false);

                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
        }
コード例 #13
0
ファイル: ManageBus.cs プロジェクト: emilioweba/BusProject
        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();
        }
コード例 #14
0
 public DBLandmarkKnownAs(Teste_OnibusContext dBase)
 {
     this.dBase = dBase;
 }
コード例 #15
0
 public DBStation_Bus(Teste_OnibusContext dBase)
 {
     this.dBase = dBase;
 }
コード例 #16
0
ファイル: ManageBus.cs プロジェクト: emilioweba/BusProject
        private void dgvBus_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
        {
            lblMessage.Text = string.Empty;
            if (MessageBox.Show("When performing this operation, the route of this bus will also be deleted. Are you sure you want to continue?", "Confirmation", MessageBoxButtons.OKCancel) == System.Windows.Forms.DialogResult.OK)
            {
                try
                {
                    using (context = new Teste_OnibusContext())
                    {
                        var id = int.Parse(e.Row.Cells["ID"].Value.ToString());

                        BUS bus = context.BUS.FirstOrDefault(x => x.Bus_ID == id);

                        ROUTE route = context.ROUTEs.FirstOrDefault(x => x.Bus_ID == id);

                        List<STATION_BUSES> station_bus = context.STATION_BUSES.Where(x => x.Buses_FK == id).ToList();

                        foreach (var item in station_bus)
                        {
                            context.STATION_BUSES.Remove(item);
                        }

                        context.ROUTEs.Remove(route);
                        context.BUS.Remove(bus);

                        context.SaveChanges();
                    }

                    Methods.DisplayMessage(lblMessage, "Deleted successfully!", Color.Green);
                }
                catch (Exception ex)
                {
                    Methods.DisplayMessage(lblMessage, "Error while deleting", Color.Red);
                }
                enableFields(false);
            }
            else
                e.Cancel = true;
        }
コード例 #17
0
        private void dgvReferences_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.ColumnIndex == 0)
            {
                enableFields(true);

                int id = int.Parse(dgvReferences["Known_As_ID", e.RowIndex].Value.ToString());

                using (context = new Teste_OnibusContext())
                {
                    var mainLandmark = context.LANDMARK_KNOWN_AS.FirstOrDefault(x => x.Known_As_ID == id).LANDMARK.LANDMARK_KNOWN_AS.OrderBy(x => x.Known_As_ID).First().Known_As_Description;
                    txtMain.Text = mainLandmark;
                    txtKnown.Text = dgvReferences["Known_As_Description", e.RowIndex].Value.ToString();
                    txtID.Text = id.ToString();
                }

                lblMessage.Text = "";
            }
        }
コード例 #18
0
ファイル: DBRoute.cs プロジェクト: emilioweba/BusProject
 public DBRoute(Teste_OnibusContext dBase)
 {
     this.dBase = dBase;
 }
コード例 #19
0
 private bool loadGridViewData(Teste_OnibusContext context)
 {
     try
     {
         var list = new BindingList<STATION>(context.STATIONS.ToList());
         var source = new BindingSource(list, null);
         dgvStations.DataSource = source;
         return true;
     }
     catch (Exception ex)
     {
         return false;
     }
 }
コード例 #20
0
ファイル: UploadKML.cs プロジェクト: emilioweba/BusProject
 private void btnClearStationReferences_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("Are you sure you want to delete all the Landmarks?", "Confirmation", MessageBoxButtons.OKCancel) == System.Windows.Forms.DialogResult.OK)
     {
         try
         {
             using (context = new Teste_OnibusContext())
             {
                 DBLandmark db = new DBLandmark(context);
                 db.DeleteAll();
                 Methods.DisplayMessage(lblMessage, "All records deleted successfully!", Color.Green);
             }
         }
         catch (Exception ex)
         {
             Methods.DisplayMessage(lblMessage, "It was not possible to delete the records!", Color.Red);
         }
     }
 }
コード例 #21
0
ファイル: UploadKML.cs プロジェクト: emilioweba/BusProject
        private void btnBrowse_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter = "KML|*.kml";
            lblMessage.Text = "";

            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                using (context = new Teste_OnibusContext())
                {
                    using (var transaction = context.Database.BeginTransaction())
                    {
                        try
                        {
                            KmlFile kml = Methods.OpenFile(openFileDialog1.FileName, lblMessage);
                            bool done = false;

                            if (chbBus.Checked)
                            {
                                done = addBusRoutes(kml); // cadastro o ônibus, a rota e faço o join com as estações em que ele passa
                            }
                            else if (rdbStations.Checked || rdbReferences.Checked) // cadastro as estações ou os pontos de referência
                            {
                                count = 0;

                                string fileName = "";

                                if (rdbStations.Checked)
                                    fileName = "stations_coordinates.txt";
                                else if (rdbReferences.Checked)
                                    fileName = "reference_coordinates.txt";

                                using (StreamWriter writetext = new StreamWriter(fileName))
                                {
                                    if (kml.Root.Flatten().OfType<Folder>().Any())
                                        done = parseFolder(kml, done, writetext);
                                    else
                                        done = parsePlacemark(kml.Root.Flatten().OfType<Placemark>(), done, writetext);
                                }
                            }
                            transaction.Commit();

                            if (done)
                                Methods.DisplayMessage(lblMessage, "Load completed successfully!", Color.Green);
                            else
                                Methods.DisplayMessage(lblMessage, "THe operation was not done!", Color.Red);

                        }
                        catch (Exception ex)
                        {
                            transaction.Rollback();
                            Methods.DisplayMessage(lblMessage, ex.Message, Color.Red);
                        }
                    }
                }
            }
        }