コード例 #1
0
        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);
        }