demo/Services/ChartService.cs
2024-06-21 16:48:24 +08:00

51 lines
1.3 KiB
C#

using System.Net.Http;
using System.Net.Http.Json;
using System.Threading.Tasks;
using antblazorpro.Models;
namespace antblazorpro.Services
{
public interface IChartService
{
Task<ChartDataItem[]> GetVisitDataAsync();
Task<ChartDataItem[]> GetVisitData2Async();
Task<ChartDataItem[]> GetSalesDataAsync();
Task<RadarDataItem[]> GetRadarDataAsync();
}
public class ChartService : IChartService
{
private readonly HttpClient _httpClient;
public ChartService(HttpClient httpClient)
{
_httpClient = httpClient;
}
public async Task<ChartDataItem[]> GetVisitDataAsync()
{
return (await GetChartDataAsync()).VisitData;
}
public async Task<ChartDataItem[]> GetVisitData2Async()
{
return (await GetChartDataAsync()).VisitData2;
}
public async Task<ChartDataItem[]> GetSalesDataAsync()
{
return (await GetChartDataAsync()).SalesData;
}
public async Task<RadarDataItem[]> GetRadarDataAsync()
{
return (await GetChartDataAsync()).RadarData;
}
private async Task<ChartData> GetChartDataAsync()
{
return await _httpClient.GetFromJsonAsync<ChartData>("data/fake_chart_data.json");
}
}
}