lg_backend/langguanApi/Service/HomeService.cs

72 lines
2.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using langguanApi.Common.Redis;
using langguanApi.Common;
using langguanApi.Extensions.AutoDI;
using langguanApi.Model;
using System.Linq.Expressions;
namespace langguanApi.Service
{
/// <summary>
/// HomeService
/// </summary>
[ServiceInjection(InjectionType.Singleton)]
public class HomeService
{
private DeviceService _deviceService;
private Hj212Service _hj212Service;
private readonly IConfiguration _configuration;
private CacheManager _cacheManager;
private readonly WeatherService _weatherService;
/// <summary>
/// HomeService
/// </summary>
/// <param name="device"></param>
/// <param name="hj212Service"></param>
public HomeService(DeviceService device, Hj212Service hj212Service,
IConfiguration configuration, CacheManager cacheManager, WeatherService weatherService)
{
_deviceService = device;
_hj212Service = hj212Service;
_configuration = configuration;
_cacheManager = cacheManager;
_weatherService = weatherService;
}
/// <summary>
/// view
/// </summary>
/// <returns></returns>
public async Task<ApiResult> View()
{
var devices = await _deviceService.GetAsync();
var ariQuality = "";
Expression<Func<Model.HJ212, bool>> filter = exp => true;
var Realtime = await _hj212Service.Realtime();
var GetViewTop = await _hj212Service.GetViewTop();
// 获取天气信息缓存1小时如果不存在则调用WeatherService获取
Func<Task<object>> getWeatherFunc = async () => await _weatherService.GetWeather();
var weather = await _cacheManager.GetConvertVale(RedisKeylist.Weather, getWeatherFunc, 60 * 60);
return new ApiResult
{
code = 0,
data = new
{
home = new
{
center = new
{
lon = _configuration.GetValue<double>("Home:Center:Lon"),
lat = _configuration.GetValue<double>("Home:Center:Lat"),
},
title = _configuration.GetValue<string>("Home:Title"),
},
devices,
ariQuality,
Realtime,
GetViewTop,
weather
}
};
}
}
}