public override async Task <CommandResult> Execute() { var doc = documentStore.GetWeatherLocations(); var apiKeySetting = await userSettingsDataService.GetUserSetting(Constants.UserSettings.DarkSkyApiKey); var results = new List <string>(); foreach (var location in doc.Locations) { var forecast = await weatherService.GetForecast(apiKeySetting.value, location.Latitude, location.Longitude); Logger.Trace("got forecast", forecast); documentStore.UpdateForecast(location, forecast); results.Add($"Upserted {location.Identifier}"); } return(CommandResult.CreateSuccessResult(results)); }