/// <summary>
    /// Opens a point shape
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void button2_Click(object sender, EventArgs e)
    {
        openFileDialog2.Filter = "Known file types (*.shp)|*.shp";
        this.openFileDialog2.ShowReadOnly = true;
        this.openFileDialog2.Title = "Select a shape file with data for wells or intakes";

        if (openFileDialog2.ShowDialog() == DialogResult.OK)
        {
            string FileName = openFileDialog2.FileName;

            ShapeReader SR = new ShapeReader(FileName);

            DataTable FullDataSet = SR.Data.Read();
            //Launch a data selector
            DataSelector DS = new DataSelector(FullDataSet);

            if (DS.ShowDialog() == DialogResult.OK)
            {
                if (ShpConfig == null)
                {
                    XmlSerializer x = new XmlSerializer(typeof(ShapeReaderConfiguration));
                    string InstallationPath = Path.GetDirectoryName(this.GetType().Assembly.Location);
                    string config = Path.Combine(InstallationPath, "ShapeReaderConfig.xml");
                    using (FileStream fs = new FileStream(config, FileMode.Open))
                    {
                        ShpConfig = (ShapeReaderConfiguration)x.Deserialize(fs);

                        if (CheckColumn(FullDataSet, ShpConfig.WellIDHeader, config))
                            if (CheckColumn(FullDataSet, ShpConfig.IntakeNumber, config))
                                if (CheckColumn(FullDataSet, ShpConfig.XHeader, config))
                                    if (CheckColumn(FullDataSet, ShpConfig.YHeader, config))
                                        if (CheckColumn(FullDataSet, ShpConfig.TOPHeader, config))
                                          if (CheckColumn(FullDataSet, ShpConfig.BOTTOMHeader, config))
                                          {
                                            Wells = new IWellCollection();
                                            if (FullDataSet.Columns.Contains(ShpConfig.PlantIDHeader))
                                            {
                                              DPlants = new IPlantCollection();
                                              HeadObservations.FillInFromNovanaShape(DS.SelectedRows, ShpConfig, Wells, DPlants);
                                            }
                                            else
                                              HeadObservations.FillInFromNovanaShape(DS.SelectedRows, ShpConfig, Wells);
                                            UpdateListsAndListboxes();
                                          }
                    }
                }
            }
            SR.Dispose();
        }
    }
예제 #2
0
        /// <summary>
        /// Opens a point shape
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            openFileDialog2.Filter            = "Known file types (*.shp)|*.shp";
            this.openFileDialog2.ShowReadOnly = true;
            this.openFileDialog2.Title        = "Select a shape file with data for wells or intakes";

            if (openFileDialog2.ShowDialog() == DialogResult.OK)
            {
                string FileName = openFileDialog2.FileName;

                ShapeReader SR = new ShapeReader(FileName);

                DataTable FullDataSet = SR.Data.Read();
                //Launch a data selector
                DataSelector DS = new DataSelector(FullDataSet);

                if (DS.ShowDialog() == DialogResult.OK)
                {
                    if (ShpConfig == null)
                    {
                        XmlSerializer x = new XmlSerializer(typeof(ShapeReaderConfiguration));
                        string        InstallationPath = Path.GetDirectoryName(this.GetType().Assembly.Location);
                        string        config           = Path.Combine(InstallationPath, "ShapeReaderConfig.xml");
                        using (FileStream fs = new FileStream(config, FileMode.Open))
                        {
                            ShpConfig = (ShapeReaderConfiguration)x.Deserialize(fs);

                            if (CheckColumn(FullDataSet, ShpConfig.WellIDHeader, config))
                            {
                                if (CheckColumn(FullDataSet, ShpConfig.IntakeNumber, config))
                                {
                                    if (CheckColumn(FullDataSet, ShpConfig.XHeader, config))
                                    {
                                        if (CheckColumn(FullDataSet, ShpConfig.YHeader, config))
                                        {
                                            if (CheckColumn(FullDataSet, ShpConfig.TOPHeader, config))
                                            {
                                                if (CheckColumn(FullDataSet, ShpConfig.BOTTOMHeader, config))
                                                {
                                                    Wells = new IWellCollection();
                                                    if (FullDataSet.Columns.Contains(ShpConfig.PlantIDHeader))
                                                    {
                                                        DPlants = new IPlantCollection();
                                                        HeadObservations.FillInFromNovanaShape(DS.SelectedRows, ShpConfig, Wells, DPlants);
                                                    }
                                                    else
                                                    {
                                                        HeadObservations.FillInFromNovanaShape(DS.SelectedRows, ShpConfig, Wells);
                                                    }
                                                    UpdateListsAndListboxes();
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                SR.Dispose();
            }
        }