private AddressModel GetNewAddress(string district, string address, int rowNumber, WorkObject workObj) { var adr = new AddressModel { District = district, Address = address }; foreach (var item in workObj.Profile.Items.Where(i => i.Column > 0).ToList()) { adr.SetData(item.Name, workObj.ActiveRange[rowNumber, item.Column] + ""); } foreach (var rgx in _repository.RegexList.Items) { adr.Regex = string.IsNullOrWhiteSpace(adr.Regex) ? Regex.Replace(adr.Address, rgx.Expression, rgx.ReplceExpression) : Regex.Replace(adr.Regex, rgx.Expression, rgx.ReplceExpression); } adr.Regex = adr.District + adr.Regex; if (!string.IsNullOrWhiteSpace(adr.Regex)) //регулярки могут убить полностью значение { var findAdr = _repository.AddressList.Items.FirstOrDefault(i => i.Regex == adr.Regex); if (findAdr != null) { adr.Number = findAdr.Number; adr.KgiopStatus = findAdr.KgiopStatus; adr.Uid = findAdr.Uid; } } return(adr); }