示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#4
0
 public IndoorDashboardData MapFrom(KeyFigure keyFigure)
 {
     throw new NotImplementedException();
 }
 OutdoorDashboardData IKeyFigureMapper <OutdoorDashboardData> .MapFrom(KeyFigure keyFigure)
 {
     throw new NotImplementedException();
 }