38 lines
1.2 KiB
C#
38 lines
1.2 KiB
C#
|
|
namespace SHH.CameraDashboard
|
|||
|
|
{
|
|||
|
|
public class MonitorRepository
|
|||
|
|
{
|
|||
|
|
private const string MODULE = "MonitorAPI";
|
|||
|
|
public async Task<MonitorWebApiData> GetDashboardDataAsync()
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
var json = await WebApiService.Instance.GetAsync(WebApiRoutes.Monitor.Dashboard, MODULE);
|
|||
|
|
|
|||
|
|
// 1. 反序列化
|
|||
|
|
var data = JsonHelper.Deserialize<MonitorWebApiData>(json);
|
|||
|
|
|
|||
|
|
// 2. 【核心修复】空合并运算符
|
|||
|
|
// 如果 data 为 null,立即 new 一个空对象返回
|
|||
|
|
return data ?? new MonitorWebApiData();
|
|||
|
|
}
|
|||
|
|
catch
|
|||
|
|
{
|
|||
|
|
// 3. 【兜底】发生任何异常(断网/解析错误),返回空对象
|
|||
|
|
// 保证 ViewModel 拿到永远是实例
|
|||
|
|
return new MonitorWebApiData();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public async Task<string> GetSnapshotUrlAsync(string id)
|
|||
|
|
{
|
|||
|
|
// 假设返回的是图片 URL 或者是 Base64
|
|||
|
|
return await WebApiService.Instance.GetAsync(WebApiRoutes.Monitor.Snapshot(id), MODULE);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public class MonitorWebApiData
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|