ProjectService.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System;
  2. using System.Linq;
  3. using System.Net.Http;
  4. using System.Net.Http.Json;
  5. using System.Threading.Tasks;
  6. using wispro.sp.web.Models;
  7. namespace wispro.sp.web.Services
  8. {
  9. public interface IProjectService
  10. {
  11. Task<NoticeType[]> GetProjectNoticeAsync();
  12. Task<ActivitiesType[]> GetActivitiesAsync();
  13. Task<ListItemDataType[]> GetFakeListAsync(int count = 0);
  14. Task<NoticeItem[]> GetNoticesAsync();
  15. }
  16. public class ProjectService : IProjectService
  17. {
  18. private readonly HttpClient _httpClient;
  19. public ProjectService(HttpClient httpClient)
  20. {
  21. _httpClient = httpClient;
  22. }
  23. public async Task<NoticeType[]> GetProjectNoticeAsync()
  24. {
  25. return await _httpClient.GetFromJsonAsync<NoticeType[]>("data/notice.json");
  26. }
  27. public async Task<NoticeItem[]> GetNoticesAsync()
  28. {
  29. return await _httpClient.GetFromJsonAsync<NoticeItem[]>("data/notices.json");
  30. }
  31. public async Task<ActivitiesType[]> GetActivitiesAsync()
  32. {
  33. try
  34. {
  35. var result = await _httpClient.GetFromJsonAsync<ActivitiesType[]>("data/activities.json");
  36. return result;
  37. }
  38. catch
  39. (Exception ex)
  40. {
  41. throw ex;
  42. }
  43. }
  44. public async Task<ListItemDataType[]> GetFakeListAsync(int count = 0)
  45. {
  46. var data = await _httpClient.GetFromJsonAsync<ListItemDataType[]>("data/fake_list.json");
  47. return count > 0 ? data.Take(count).ToArray() : data;
  48. }
  49. }
  50. }