public GeoCli(IGeoReverseLookup geoReverseLookup, IGeoLocationWrite geoLocationWrite, ISelectorStorage selectorStorage, AppSettings appSettings, IConsole console, IGeoFileDownload geoFileDownload, IExifToolDownload exifToolDownload) { _geoReverseLookup = geoReverseLookup; _geoLocationWrite = geoLocationWrite; _iStorage = selectorStorage.Get(SelectorStorage.StorageServices.SubPath); _thumbnailStorage = selectorStorage.Get(SelectorStorage.StorageServices.Thumbnail); _readMeta = new ReadMeta(_iStorage, appSettings); _appSettings = appSettings; _console = console; _exifToolDownload = exifToolDownload; _geoFileDownload = geoFileDownload; }
/// <summary> /// Getting GeoData /// </summary> /// <param name="appSettings">to know where to store the temp files</param> /// <param name="geoFileDownload">Abstraction to download Geo Data</param> /// <param name="memoryCache">for keeping status</param> public GeoReverseLookup(AppSettings appSettings, IGeoFileDownload geoFileDownload, IMemoryCache memoryCache = null, IWebLogger logger = null) { // Needed when not having this, application will fail geoFileDownload.Download().ConfigureAwait(false); _appSettings = appSettings; _logger = logger; _admin1CodesAscii = GeoFileReader.ReadAdmin1Codes( Path.Combine(appSettings.TempFolder, "admin1CodesASCII.txt")); // Create our ReverseGeoCode class and supply it with data InitReverseGeoCode(); _cache = memoryCache; }
public GeoFileDownloadBackgroundServiceTest() { var services = new ServiceCollection(); services.AddSingleton <AppSettings>(); services.AddSingleton <BackgroundService, GeoFileDownloadBackgroundService>(); services.AddSingleton <IGeoFileDownload, FakeIGeoFileDownload>(); services.AddSingleton <IConsole, FakeConsoleWrapper>(); var serviceProvider = services.BuildServiceProvider(); _serviceScopeFactory = serviceProvider.GetRequiredService <IServiceScopeFactory>(); _geoFileDownload = serviceProvider.GetRequiredService <IGeoFileDownload>(); var console = serviceProvider.GetRequiredService <IConsole>(); _console = console as FakeConsoleWrapper; }