private void SetDefaultNames()
        {
            // set default column names if they exist in the spread sheet
            GazetteerColumnHeaders defaultColumnHeaders =
                geoCoder.DefaultGazetteerColumnHeaders();

            cboLevel1Codes.SelectedIndex =
                cboLevel1Codes.FindStringExact(defaultColumnHeaders.Level1Code);
            cboLevel2Codes.SelectedIndex =
                cboLevel2Codes.FindStringExact(defaultColumnHeaders.Level2Code);
            cboLevel3Codes.SelectedIndex =
                cboLevel3Codes.FindStringExact(defaultColumnHeaders.Level3Code);

            cboLevel1Names.SelectedIndex =
                cboLevel1Names.FindStringExact(defaultColumnHeaders.Level1Name);
            cboLevel2Names.SelectedIndex =
                cboLevel2Names.FindStringExact(defaultColumnHeaders.Level2Name);
            cboLevel3Names.SelectedIndex =
                cboLevel3Names.FindStringExact(defaultColumnHeaders.Level3Name);

            cboLevel1AltNames.SelectedIndex =
                cboLevel1AltNames.FindStringExact(defaultColumnHeaders.Level1AltName);
            cboLevel2AltNames.SelectedIndex =
                cboLevel2AltNames.FindStringExact(defaultColumnHeaders.Level2AltName);
            cboLevel3AltNames.SelectedIndex =
                cboLevel3AltNames.FindStringExact(defaultColumnHeaders.Level3AltName);
        }
Example #2
0
        public void CodeAll_InputContainMissSpellingsWithDifferentCasingToSavedMatches_AllCodesAdded()
        {
            // arrange
            GeoCoder geoCoder =
                new GeoCoder(MockRepository.GenerateStub <IDbConnection>() as DbConnection);
            InputColumnHeaders     inputColumnHeaders     = InputColumnNames();
            GazetteerColumnHeaders gazetteerColumnHeaders = GazetteerColumnNames();

            //gazetteer data
            string[] names1 = { "P1", "T1", "V1" };
            string[] codes1 = { "1", "10", "100" };

            // saved matched names data
            string[] names2 = { "P1x", "T1x", "V1x" };

            // input data
            // line 1, all names miss-spelt with different casing
            string[] names3 = { "p1x", "t1x", "v1x" };

            InputTestData inputTestData = new InputTestData();

            inputTestData.AddLine(names3);
            geoCoder.SetInputData(inputTestData.Data(inputColumnHeaders));
            geoCoder.SetInputColumns(inputColumnHeaders);

            // create gazetteer data
            GazetteerRecords gazetteerRecords = new GazetteerRecords();

            gazetteerRecords.AddLine(names1, codes1);
            geoCoder.SetGazetteerData(gazetteerRecords.Data(gazetteerColumnHeaders));

            // add records matched names records
            MatchProviderTestData matchProviderTestData = new MatchProviderTestData();

            // add records matching saved matched names to gazetteer names
            matchProviderTestData.AddLevel1(names2, names1);
            matchProviderTestData.AddLevel2(names2, names1);
            matchProviderTestData.AddLevel3(names2, names1);
            MatchProviderStub matchProviderStub = new MatchProviderStub(matchProviderTestData);

            geoCoder.SetMatchProvider(matchProviderStub.MatchProvider());

            geoCoder.SetGazetteerColumns(gazetteerColumnHeaders, false);

            // act
            geoCoder.AddAllLocationCodes();

            // assert
            var columns = geoCoder.LocationCodeColumnHeaders();

            //line 1 - should contain codes 1
            DataRow line1 = geoCoder.InputData.Rows[0];

            Assert.AreEqual(codes1[0], line1[columns.Level1]);
            Assert.AreEqual(codes1[1], line1[columns.Level2]);
            Assert.AreEqual(codes1[2], line1[columns.Level3]);
        }
Example #3
0
        private static GazetteerColumnHeaders GazetteerColumnNames()
        {
            GazetteerColumnHeaders gazetteerColumnHeaders = new GazetteerColumnHeaders();

            gazetteerColumnHeaders.Level1Code = "ID1";
            gazetteerColumnHeaders.Level2Code = "ID2";
            gazetteerColumnHeaders.Level3Code = "ID3";
            gazetteerColumnHeaders.Level1Name = "Name1";
            gazetteerColumnHeaders.Level2Name = "Name2";
            gazetteerColumnHeaders.Level3Name = "Name3";
            return(gazetteerColumnHeaders);
        }
Example #4
0
        /// <summary>
        /// Sets the gazetteer columns that hold the data to provide the codes
        /// </summary>
        /// <param name="columnHeaders">The column names.</param>
        /// <param name="saveSelection">If true, the selected column names are saved to the database</param>
        public void SetGazetteerColumns(
            GazetteerColumnHeaders columnHeaders,
            bool saveSelection = true)
        {
            gazetteerData.ColumnHeaders = columnHeaders;
            coder          = new Coder(gazetteerData.LocationList, matchProvider);
            gazetteerNames = new GazetteerNames(gazetteerData.LocationList);

            if (saveSelection)
            {
                SaveUserSelection(columnHeaders, gazetteerFileName);
            }
        }
        private void SetColumnNames()
        {
            GazetteerColumnHeaders columnHeaders = new GazetteerColumnHeaders();

            columnHeaders.Level1Code    = cboLevel1Codes.SelectedValue as string;
            columnHeaders.Level1Name    = cboLevel1Names.SelectedValue as string;
            columnHeaders.Level1AltName = cboLevel1AltNames.SelectedValue as string;

            columnHeaders.Level2Code    = cboLevel2Codes.SelectedValue as string;
            columnHeaders.Level2Name    = cboLevel2Names.SelectedValue as string;
            columnHeaders.Level2AltName = cboLevel2AltNames.SelectedValue as string;

            columnHeaders.Level3Code    = cboLevel3Codes.SelectedValue as string;
            columnHeaders.Level3Name    = cboLevel3Names.SelectedValue as string;
            columnHeaders.Level3AltName = cboLevel3AltNames.SelectedValue as string;
            geoCoder.SetGazetteerColumns(columnHeaders);
        }
Example #6
0
 private void SaveUserSelection(GazetteerColumnHeaders columnHeaders, string filename)
 {
     // todo review the code duplication between GazetteerColumnNames and GazetteerColumnsMapping classes
     columnsMappingProvider.SaveGazetteerColumnsMapping(
         new GazetteerColumnsMapping
     {
         FileName      = filename,
         Level1Code    = columnHeaders.Level1Code,
         Level1Name    = columnHeaders.Level1Name,
         Level1AltName = columnHeaders.Level1AltName,
         Level2Code    = columnHeaders.Level2Code,
         Level2Name    = columnHeaders.Level2Name,
         Level2AltName = columnHeaders.Level2AltName,
         Level3Code    = columnHeaders.Level3Code,
         Level3Name    = columnHeaders.Level3Name,
         Level3AltName = columnHeaders.Level3AltName,
     }
         );
 }
Example #7
0
        /// <summary>
        /// The default names of the columns that contain the gazetteer data to be matched.
        /// </summary>
        /// <returns>
        /// The column names
        /// </returns>
        public GazetteerColumnHeaders DefaultGazetteerColumnHeaders()
        {
            GazetteerColumnHeaders  columnHeaders  = new GazetteerColumnHeaders();
            GazetteerColumnsMapping columnsMapping =
                columnsMappingProvider.GetGazetteerColumnsMapping(gazetteerFileName);

            if (columnsMapping != null)
            {
                columnHeaders.Level1Code    = columnsMapping.Level1Code;
                columnHeaders.Level2Code    = columnsMapping.Level2Code;
                columnHeaders.Level3Code    = columnsMapping.Level3Code;
                columnHeaders.Level1Name    = columnsMapping.Level1Name;
                columnHeaders.Level2Name    = columnsMapping.Level2Name;
                columnHeaders.Level3Name    = columnsMapping.Level3Name;
                columnHeaders.Level1AltName = columnsMapping.Level1AltName;
                columnHeaders.Level2AltName = columnsMapping.Level2AltName;
                columnHeaders.Level3AltName = columnsMapping.Level3AltName;
            }

            return(columnHeaders);
        }
        public DataTable Data(GazetteerColumnHeaders gazetteerColumnHeaders)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add(gazetteerColumnHeaders.Level1Name);
            dt.Columns.Add(gazetteerColumnHeaders.Level2Name);
            dt.Columns.Add(gazetteerColumnHeaders.Level3Name);
            dt.Columns.Add(gazetteerColumnHeaders.Level1Code);
            dt.Columns.Add(gazetteerColumnHeaders.Level2Code);
            dt.Columns.Add(gazetteerColumnHeaders.Level3Code);

            foreach (var line in lines)
            {
                object[] values =
                {
                    line.Item1[0], line.Item1[1], line.Item1[2],
                    line.Item2[0], line.Item2[1], line.Item2[2]
                };
                dt.LoadDataRow(values, true);
            }
            return(dt);
        }
Example #9
0
        CodeAll_CorrectAndMissSpeltInputWithSavedMatchesForMissSpellings_AllCodesAdded
            ()
        {
            // arrange
            GeoCoder geoCoder =
                new GeoCoder(MockRepository.GenerateStub <IDbConnection>() as DbConnection);
            InputColumnHeaders     inputColumnHeaders     = InputColumnNames();
            GazetteerColumnHeaders gazetteerColumnHeaders = GazetteerColumnNames();

            // create input test data with
            // line 1, all names correct
            // line 2, all names correct
            // line 3, all names miss-spelt
            string[] names1 = { "P1", "T1", "V1" };
            string[] names2 = { "P2", "T2", "V2" };
            string[] names3 = { "P1x", "T1x", "V1x" };
            string[] codes1 = { "1", "10", "100" };
            string[] codes2 = { "2", "20", "200" };

            InputTestData inputTestData = new InputTestData();

            inputTestData.AddLine(names1);
            inputTestData.AddLine(names2);
            inputTestData.AddLine(names3);
            geoCoder.SetInputData(inputTestData.Data(inputColumnHeaders));
            geoCoder.SetInputColumns(inputColumnHeaders);

            // create gazetteer data
            GazetteerRecords gazetteerRecords = new GazetteerRecords();

            gazetteerRecords.AddLine(names1, codes1);
            gazetteerRecords.AddLine(names2, codes2);
            geoCoder.SetGazetteerData(gazetteerRecords.Data(gazetteerColumnHeaders));

            // add records matching input line 3 names to gazetteer names 1
            MatchProviderTestData matchProviderTestData = new MatchProviderTestData();

            matchProviderTestData.AddLevel1(names3, names1);
            matchProviderTestData.AddLevel2(names3, names1);
            matchProviderTestData.AddLevel3(names3, names1);

            MatchProviderStub matchProviderStub = new MatchProviderStub(matchProviderTestData);

            geoCoder.SetMatchProvider(matchProviderStub.MatchProvider());

            geoCoder.SetGazetteerColumns(gazetteerColumnHeaders, false);

            // act
            geoCoder.AddAllLocationCodes();

            // assert
            var columns = geoCoder.LocationCodeColumnHeaders();

            //line 1 - should contain codes 1
            DataRow line1 = geoCoder.InputData.Rows[0];

            Assert.AreEqual(codes1[0], line1[columns.Level1]);
            Assert.AreEqual(codes1[1], line1[columns.Level2]);
            Assert.AreEqual(codes1[2], line1[columns.Level3]);

            //line 2 - should contain codes 2
            DataRow line2 = geoCoder.InputData.Rows[1];

            Assert.AreEqual(codes2[0], line2[columns.Level1]);
            Assert.AreEqual(codes2[1], line2[columns.Level2]);
            Assert.AreEqual(codes2[2], line2[columns.Level3]);

            //line 3 - should contain codes 1
            DataRow line3 = geoCoder.InputData.Rows[2];

            Assert.AreEqual(codes1[0], line3[columns.Level1]);
            Assert.AreEqual(codes1[1], line3[columns.Level2]);
            Assert.AreEqual(codes1[2], line3[columns.Level3]);
        }
Example #10
0
 private void SaveUserSelection(GazetteerColumnHeaders columnHeaders, string filename)
 {
     // todo review the code duplication between GazetteerColumnNames and GazetteerColumnsMapping classes
     columnsMappingProvider.SaveGazetteerColumnsMapping(
         new GazetteerColumnsMapping
         {
             FileName = filename,
             Level1Code = columnHeaders.Level1Code,
             Level1Name = columnHeaders.Level1Name,
             Level1AltName = columnHeaders.Level1AltName,
             Level2Code = columnHeaders.Level2Code,
             Level2Name = columnHeaders.Level2Name,
             Level2AltName = columnHeaders.Level2AltName,
             Level3Code = columnHeaders.Level3Code,
             Level3Name = columnHeaders.Level3Name,
             Level3AltName = columnHeaders.Level3AltName,
         }
         );
 }
Example #11
0
        /// <summary>
        /// Sets the gazetteer columns that hold the data to provide the codes
        /// </summary>
        /// <param name="columnHeaders">The column names.</param>
        /// <param name="saveSelection">If true, the selected column names are saved to the database</param>
        public void SetGazetteerColumns(
            GazetteerColumnHeaders columnHeaders,
            bool saveSelection = true)
        {
            gazetteerData.ColumnHeaders = columnHeaders;
            coder = new Coder(gazetteerData.LocationList, matchProvider);
            gazetteerNames = new GazetteerNames(gazetteerData.LocationList);

            if (saveSelection)
                SaveUserSelection(columnHeaders, gazetteerFileName);
        }
Example #12
0
        /// <summary>
        /// The default names of the columns that contain the gazetteer data to be matched.
        /// </summary>
        /// <returns>
        /// The column names
        /// </returns>
        public GazetteerColumnHeaders DefaultGazetteerColumnHeaders()
        {
            GazetteerColumnHeaders columnHeaders = new GazetteerColumnHeaders();
            GazetteerColumnsMapping columnsMapping =
                columnsMappingProvider.GetGazetteerColumnsMapping(gazetteerFileName);
            if (columnsMapping != null)
            {
                columnHeaders.Level1Code = columnsMapping.Level1Code;
                columnHeaders.Level2Code = columnsMapping.Level2Code;
                columnHeaders.Level3Code = columnsMapping.Level3Code;
                columnHeaders.Level1Name = columnsMapping.Level1Name;
                columnHeaders.Level2Name = columnsMapping.Level2Name;
                columnHeaders.Level3Name = columnsMapping.Level3Name;
                columnHeaders.Level1AltName = columnsMapping.Level1AltName;
                columnHeaders.Level2AltName = columnsMapping.Level2AltName;
                columnHeaders.Level3AltName = columnsMapping.Level3AltName;
            }

            return columnHeaders;
        }