public async Task <KeyFigure> Get() { using var client = new HttpClient(); var response = await client.GetAsync("https://opendata-download-ocobs.smhi.se/api/version/latest/parameter/6/station/2056/period/latest-day/data.json"); var json = await response.Content.ReadAsStringAsync(); var data = JsonConvert.DeserializeObject <WaterLevelJsonObject>(json); var model = new KeyFigure() { Name = data.Parameter.Name, Unit = data.Parameter.Unit, Updated = DateTimeOffset.FromUnixTimeMilliseconds(data.Updated).DateTime, Value = data.Values.LastOrDefault()?.Value.ToString() ?? "error", Type = MeasureType.OceanLevel, Trend = data.Values .Reverse() .Skip(1) .Take(3) .Select(y => y.Value) .ToTrend(data.Values.LastOrDefault().Value), }; return(model); }
public async Task <KeyFigure> Get() { using var client = new HttpClient(); // TODO Create httpClientFactory to resuse clients var url = $"{this.baseUrl}/energy.json?" + $"timeUnit=DAY&" + $"startDate={DateTime.Now:yyyy-MM-dd}&" + $"endDate={DateTime.Now:yyyy-MM-dd}&" + $"api_key={this.settings.ApiKey}"; var response = await client.GetAsync(url); var json = await response.Content.ReadAsStringAsync(); var data = JsonConvert.DeserializeObject <Root>(json); var keyFigure = new KeyFigure() { Name = "Solenergi idag", Unit = "kWh", Updated = DateTime.UtcNow, Type = MeasureType.SolarEnergy, Value = data.energy.values.First().value .ToKiloWattHour() .ToRounded(2) .ToString() }; return(keyFigure); }
public async Task <KeyFigure> Get() { var conString = this.configuration.GetValue <string>("ConnectionStrings:TableStorage"); var storageAccount = CloudStorageAccount.Parse(conString); var tableClient = storageAccount.CreateCloudTableClient(); var table = tableClient.GetTableReference("Temperature"); var query = table.CreateQuery <TemperatureTableModel>() .AsQueryable() .Take(4) .AsTableQuery(); var tableModel = await query.ExecuteAsync(CancellationToken.None); var json = tableModel.Select(x => x.Json); var content = json.Select(x => JsonConvert.DeserializeObject <TemperatureModel>(x, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore })); if (content.IsNullOrEmpty()) { return(new KeyFigure()); } var lastObservation = content.FirstOrDefault(); var model = new KeyFigure() { Name = "Utomhustemperatur", Unit = "°C", Updated = lastObservation.Time.ToLocalTime(), Value = lastObservation.Temperature .ToRounded() .ToString(), Trend = content .Select(x => x.Temperature) .Skip(1) .Take(3) .ToTrend(lastObservation.Temperature), }; return(model); }
public IndoorDashboardData MapFrom(KeyFigure keyFigure) { throw new NotImplementedException(); }
OutdoorDashboardData IKeyFigureMapper <OutdoorDashboardData> .MapFrom(KeyFigure keyFigure) { throw new NotImplementedException(); }