15 lines
629 B
C#
15 lines
629 B
C#
using Portfolio.Shared.Models;
|
|
using Portfolio.Shared.Services;
|
|
|
|
namespace Portfolio.Web.Services;
|
|
|
|
internal sealed class ProjectRepository(IHttpClientFactory factory) : IProjectRepository {
|
|
public async Task<IEnumerable<Project>> GetProjects(CancellationToken ct) {
|
|
var client = factory.CreateClient("api");
|
|
var response = await client.GetAsync("api/projects", ct);
|
|
if (!response.IsSuccessStatusCode) return [];
|
|
|
|
var data = await response.Content.ReadFromJsonAsync<IEnumerable<Project>>(ct);
|
|
return data?.OrderByDescending(p => p.OrderIndex) ?? Enumerable.Empty<Project>();
|
|
}
|
|
} |