using InABox.Core; using NPOI.HSSF.Record; using NPOI.OpenXmlFormats.Spreadsheet; namespace InABox.Database.Stores; public class AddressLookupStore : Store { private static List _cache= new(); private static IQueryProviderFactory? _queryProviderFactory = null; public override void Init() { base.Init(); // // Load the cache file into memory // string cachefile = Path.Combine(CoreUtils.GetPath(), "GNAF_CORE.psv"); // if (File.Exists(cachefile)) // { // DateTime start = DateTime.Now; // Logger.Send(LogType.Information,"",$"Loading Address Lookup File: {cachefile}"); // using (StreamReader sr = new(cachefile)) // { // var headers = sr.ReadLine().Split('|').ToList(); // int streetfield = headers.IndexOf("ADDRESS_LABEL"); // int statefield = headers.IndexOf("STATE"); // int latfield = headers.IndexOf("LATITUDE"); // int lngfield = headers.IndexOf("LONGITUDE"); // while (!sr.EndOfStream) // { // var line = sr.ReadLine().Split('|').ToArray(); // if (string.Equals(line[statefield], "WA")) // { // _cache.Add(new AddressLookup() // { // Address = line[streetfield], // Latitude = double.Parse(line[latfield]), // Longitude = double.Parse(line[lngfield]) // }); // // } // } // } // Logger.Send(LogType.Information,"",$"Found {_cache.Count} addresses in {(DateTime.Now - start):g}"); // } // else // Logger.Send(LogType.Information,"",$"Address Lookup File: {cachefile} not found!"); } // protected override CoreTable OnQuery(Filter? filter, Columns? columns, SortOrder? sort, CoreRange? range) // { // _queryProviderFactory ??= this.GetQueryProviderFactory(); // var result = new CoreTable(); // var cols = columns ?? Columns.All(); // result.Columns.AddRange(cols.Select(x => new CoreColumn(x.Property))); // foreach (var lookup in _cache) // { // if (filter == null || filter.Match(lookup, _queryProviderFactory)) // { // var row = result.NewRow(); // result.LoadRow(lookup); // result.Rows.Add(row); // } // } // return result; // } }