public class AddressParser
{
private AddressParser() { }
public string PostCode { get; set; } = string.Empty;
public string Region { get; set; } = string.Empty;
public string City { get; set; } = string.Empty;
public string Street { get; set; } = string.Empty;
public string Country { get; set; } = string.Empty;
public string Building { get; set; } = string.Empty;
public bool NotParsed { get; set; }
public string Address { get; set; }
}
if(string.isNullOrWhitespace(address))
{
NotParsed = true;
Adsress = address;
}
if(address.ContainSixNumber())
{
// по идее тут мы можем узнать регион и город и в дальнейшем сказать что кто то накосячил с улицей
PostalIndex = address.GetPostalIndex(address);
}
if(address.ContainRussian())
{
Country = Const.Ru;
}
if(address.ContainRegion(address))
{
Region = address.GetRegion(address);
}
// и так далее, причем каждая проверка вырезает ту часть из адреса, которую опознала.
// Причем мы делаем опять же допущение что хаоситов не особо много, а на нашей стороне подданные императора и ошибок встретится разумно
// Если что то не так, взводим флажок NotParsed и выплевываем значение Address как есть
SELECT COUNT(*)
FROM [FIAS32_OPT].[dbo].[NORMDOC]
WHERE DOCDATE LIKE '2016-06-14'
------
10032
SELECT count(*) FROM microf.licenses where created_at like '2020-05-08%'
------
80
public class ImportContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
/// server=localhost;database=test;user=test;password=Test_1234;treattinyasboolean=true;CharSet=utf8
const string file = "importdata.cf";
var connStr = File.ReadAllText(file);
var csb = new MySqlConnectionStringBuilder(connStr)
{
AllowUserVariables = true,
UseAffectedRows = false
};
optionsBuilder.UseMySql(csb.ConnectionString, x => x.ServerVersion("5.7.30-mysql"));
}