ChartService.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System.Net.Http;
  2. using System.Net.Http.Json;
  3. using System.Threading.Tasks;
  4. using wispro.sp.web.Models;
  5. namespace wispro.sp.web.Services
  6. {
  7. public interface IChartService
  8. {
  9. Task<ChartDataItem[]> GetVisitDataAsync();
  10. Task<ChartDataItem[]> GetVisitData2Async();
  11. Task<ChartDataItem[]> GetSalesDataAsync();
  12. Task<RadarDataItem[]> GetRadarDataAsync();
  13. }
  14. public class ChartService : IChartService
  15. {
  16. private readonly HttpClient _httpClient;
  17. public ChartService(HttpClient httpClient)
  18. {
  19. _httpClient = httpClient;
  20. }
  21. public async Task<ChartDataItem[]> GetVisitDataAsync()
  22. {
  23. return (await GetChartDataAsync()).VisitData;
  24. }
  25. public async Task<ChartDataItem[]> GetVisitData2Async()
  26. {
  27. return (await GetChartDataAsync()).VisitData2;
  28. }
  29. public async Task<ChartDataItem[]> GetSalesDataAsync()
  30. {
  31. return (await GetChartDataAsync()).SalesData;
  32. }
  33. public async Task<RadarDataItem[]> GetRadarDataAsync()
  34. {
  35. return (await GetChartDataAsync()).RadarData;
  36. }
  37. private async Task<ChartData> GetChartDataAsync()
  38. {
  39. return await _httpClient.GetFromJsonAsync<ChartData>("data/fake_chart_data.json");
  40. }
  41. }
  42. }