static async Task <List <Member> > ProcessMembers(List <Member> members) { string GoogleApiKey = Configuration.GetValue <string>("GoogleApiKey"); ZipCodeRetrieverService zipRetriever = new ZipCodeRetrieverService(GoogleApiKey); MemberProcessor memberProcessor = new MemberProcessor(zipRetriever); List <Member> newMembers = new List <Member>(); // this lets us capture the index (row number) // borrowed from here: https://stackoverflow.com/a/39997157/11199987 foreach (var(m, index) in members.WithIndex()) { // Log.Information("Processing member {firstname} {lastname}", m.FirstName, m.LastName); m.TrimAllFields(); m.PadZipCodeWithZeroes(); m.ReplaceNumberSignInAddressWithApt(); m.AppendApartmentToAddress(); m.RemoveNonAlphanumericFromAddress(); m.RemoveMultipleSpacesFromAddress(); m.RemoveNonNumericAndSpacesFromPhones(); m.ChangeZeroPhoneValuesToNull(); m.SetHomePhoneToNullIfSameAsCellPhone(); m.RemoveNAFromEmail(); m.State = memberProcessor.GetStateAbbreviation(m, index); // m.ZipCode = await memberProcessor.GetZipFromMemberAddress(m); newMembers.Add(m); // Log.Information("Adding {firstName} {lastName} to newMembers", m.FirstName, m.LastName); } return(newMembers); }
private static async Task TestZipCodeRetriever() { string GoogleApiKey = Configuration.GetValue <string>("GoogleApiKey"); ZipCodeRetrieverService zipRetriever = new ZipCodeRetrieverService(GoogleApiKey); string myAddress = "225 e 17th street, new york ny"; string myZip = await zipRetriever.GetZip(myAddress); Console.WriteLine($"Full Address is {myAddress} {myZip}"); }
public MemberProcessor(ZipCodeRetrieverService zipCodeRetrieverService) { _zipRetrieverService = zipCodeRetrieverService; }