Files
2026-02-03 10:44:31 +08:00

44 lines
1.4 KiB
C#

using Sufi.Demo.PeopleDirectory.Shared.Wrapper;
using System.Net.Http;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace Sufi.Demo.PeopleDirectory.Shared.Extensions
{
public static class ResultExtensions
{
public static async Task<IResult<T>> ToResult<T>(this HttpResponseMessage response) where T : notnull
{
var responseAsString = await response.Content.ReadAsStringAsync();
var responseObject = JsonSerializer.Deserialize<Result<T>>(responseAsString, new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true,
ReferenceHandler = ReferenceHandler.Preserve
});
return responseObject!;
}
public static async Task<IResult> ToResult(this HttpResponseMessage response)
{
var responseAsString = await response.Content.ReadAsStringAsync();
var responseObject = JsonSerializer.Deserialize<Result>(responseAsString, new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true,
ReferenceHandler = ReferenceHandler.Preserve
});
return responseObject!;
}
public static async Task<PaginatedResult<T>> ToPaginatedResult<T>(this HttpResponseMessage response) where T : notnull
{
var responseAsString = await response.Content.ReadAsStringAsync();
var responseObject = JsonSerializer.Deserialize<PaginatedResult<T>>(responseAsString, new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
});
return responseObject!;
}
}
}