static string FixSuburbCase(AecModels.Address deputyOfficerAddress, string postcode) { var suburbs = AustraliaData.PostCodes.Single(x => x.Key == postcode).Value; var suburb = deputyOfficerAddress.Suburb.Trim(); var place = suburbs.SingleOrDefault(x => string.Equals(x.Name, suburb, StringComparison.OrdinalIgnoreCase)); if (place == null) { return(CultureInfo.CurrentCulture.TextInfo.ToTitleCase(suburb)); } return(place.Name !); }
static Address?ToAddress(AecModels.Address address) { if (address.Line1 == null && address.Line2 == null && address.Line3 == null && address.State == null && address.Postcode == null && address.Suburb == null) { return(null); } var line1 = address.Line1; if (string.IsNullOrWhiteSpace(line1)) { throw new(); } // ReSharper disable once SuggestVarOrType_BuiltInTypes string?line2 = address.Line2; if (string.IsNullOrWhiteSpace(line2)) { line2 = null; } // ReSharper disable once SuggestVarOrType_BuiltInTypes string?line3 = address.Line3; if (string.IsNullOrWhiteSpace(line3)) { line3 = null; } return(new() { State = (State)Enum.Parse(typeof(State), address.State !), Line1 = line1, Line2 = line2, Line3 = line3, Postcode = Convert.ToInt32(address.Postcode), Suburb = FixSuburbCase(address, address.Postcode !), }); }