Files
MileageTraker/Web.Tests/DAL/CityNameCleaner.cs
T
2014-05-23 09:49:28 -04:00

47 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using MileageTraker.Web.Utility;
using NUnit.Framework;
namespace Web.Tests.DAL
{
[TestFixture]
public class CityNameCleaner
{
[Test]
[Ignore]
public void Clean()
{
const string cityFilename = @"C:\Temp\cities.csv";
const string unknownCityFilename = @"C:\Temp\cities_unknown.csv";
var unknownCities =
from line in File.ReadAllLines(unknownCityFilename)
select new {CityName = line, First = (line.Split(',')).FirstOrDefault()};
var cities =
File.ReadAllLines(cityFilename);
var b =
from uc in unknownCities
let topMatch = (
from c in cities
let s = Algorithms.Similarity(uc.First, c)
orderby s descending
select new { c, s }).First()
select new
{
uc.CityName, topMatch.c, topMatch.s
};
foreach (var l in b)
{
Console.WriteLine(
"UPDATE Log SET Notes=LEFT(CASE WHEN Notes IS NULL THEN CityName ELSE Notes + ', ' + CityName END, 64)" +
", CityName='{1}' " +
"WHERE CityName='{0}'",
l.CityName.Replace("'", "''"), l.c);
}
}
}
}