public Boolean VerifyAndCleanAddress(InputStreetAddress inA, out OutputStreetAddress outA) { /* use settings from config file and process 1 record */ var iArray = new[] {inA}; var oArray = VerifyAndCleanAddress(iArray); outA = oArray[0]; return oArray[0].OkComplete; }
public DataCleanEvent ValidateAddress(InputStreetAddress input) { DataCleanEvent e; OutputStreetAddress output; if (_criteria.ForceValidation == false) { e = _dataCleanRepository.GetEvent(input.ID); if (e != null) return e; } var b = _dataCleaner.VerifyAndCleanAddress(input, out output); e = new DataCleanEvent() {Input = input, DataCleanDate = DateTime.Now, Output = output}; _dataCleanRepository.SaveEvent(e); return e; }
public static InputStreetAddress ToInputStreetAddress(VoucherImportWrapper v) { var n = new InputStreetAddress(); n.AddressLine1 = v.AddressLine1; n.AddressLine2 = v.AddressLine2; n.CompanyName = v.Company; n.Country = v.Country; n.EmailAddress = v.EmailAddress; n.FirstName = v.First; n.LastName = v.Last; n.City = v.Municipality; n.PhoneNumber = v.PhoneNumber; n.PostalCode = v.PostalCode; n.State = v.Region; n.ID = v.ID; n.RecordID = v.RecordID; return n; }
protected override void Execute(Csla.Rules.RuleContext context) { var target = (VoucherEdit)context.Target; string firstName = (string)ReadProperty(target, FirstProperty); string lastName = (string)ReadProperty(target, LastProperty); string companyName = (string)ReadProperty(target, CompanyProperty); string address1 = (string)ReadProperty(target, AddressLine1Property); string municipality = (string)ReadProperty(target, MunicipalityProperty); string postalCode = (string)ReadProperty(target, PostalCodeProperty); if (!string.IsNullOrEmpty(firstName + lastName + companyName) && !string.IsNullOrEmpty(address1) && !string.IsNullOrEmpty(municipality) && !string.IsNullOrEmpty(postalCode) && target.IsDirty ) { //if a complete address then verify against web service var config = ConfigurationManager.AppSettings; var dataCleanEventFactory = new DataCleanEventFactory( new DataCleaner(config), new DataCleanRespository(), new DataCleanCriteria() { AutoFixAddressLine1 = false, AutoFixCity = false, AutoFixPostalCode = false, AutoFixState = false, ForceValidation = false }); var inputAddress = new InputStreetAddress() { AddressLine1 = target.AddressLine1, AddressLine2 = target.AddressLine2, City = target.Municipality, CompanyName = target.Company, Country = target.Country, FirstName = target.First, FullName = target.FullName, LastName = target.Last, PostalCode = target.PostalCode, State = target.Region }; var dataCleanEvent = dataCleanEventFactory.ValidateAddress(inputAddress); if (!dataCleanEvent.Output.OkMailingAddress) { var errStr = string.Empty; foreach (var err in dataCleanEvent.Output.Errors) { context.AddErrorResult(err.LongDescription); } } } }
private DataCleanEvent MergeInandOutReq(InputStreetAddress inAddress, DataCleanEvent outEvent) { var e = new DataCleanEvent { DataCleanDate = outEvent.DataCleanDate, Input = inAddress, Output = outEvent.Output }; e.Output.RecordID = e.Input.RecordID; return e; }
public OutputStreetAddress[] VerifyAndCleanAddress(InputStreetAddress[] inputAddressArray) { Logger.Info(String.Format("total number of vouchers to clean {0} ", inputAddressArray.Count())); var o = new List<OutputStreetAddress>(); int i = 0; int arrayOffset = 0; if (inputAddressArray.Length <= MaxArraySize) return VerifyAndCleanAddressBatch(inputAddressArray).ToArray(); i = MaxArraySize; while (o.Count < inputAddressArray.Length) { var l = inputAddressArray.Skip(arrayOffset).Take(i); o.AddRange(VerifyAndCleanAddressBatch(l.ToArray())); arrayOffset = o.Count() -1 ; i = ((inputAddressArray.Length - arrayOffset) < MaxArraySize) ? inputAddressArray.Length - arrayOffset : MaxArraySize; } return o.ToArray(); }
protected OutputStreetAddress[] VerifyAndCleanAddressBatch(InputStreetAddress[] inputAddressArray) { Logger.Info(String.Format("Number of vouchers in batch to clean {0} ", inputAddressArray.Count())); if (inputAddressArray.Length > MaxArraySize) throw new Exception(String.Format("Too Many Items in Request maximum number is {0}", MaxArraySize)); _arraysize = inputAddressArray.Length; var rra = new RequestRecord[_arraysize]; var x = 0; foreach (var i in inputAddressArray) rra[x++] = new RequestRecord(i); _req.Records = rra; try { // the transmission results tell us if we got far enough to process records. if it is blank the answer is yes // if we got transmission results we have a broke - connection and or configuration _resp = _action.doContactVerify(_req); if (_resp.TransmissionResults.Trim() == "") { var o = new OutputStreetAddress[_resp.Records.Length]; int i = 0; foreach (var r in _resp.Records) { o[i++] = ResponseToOutputStreetAddressConverter.ProcessResponseRecord(r, _msgDict); } Logger.Info(String.Format("Number of vouchers cleaned {0} ", o.Count())); return o; } var t = GetTransmissionErrors(); string exText = null; foreach (var a in t) exText += a.ToString() + Environment.NewLine; throw new Exception(exText); } catch (Exception ex) { Logger.Error(ex.Message); throw; } }