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> ToResult(this HttpResponseMessage response) where T : notnull { var responseAsString = await response.Content.ReadAsStringAsync(); var responseObject = JsonSerializer.Deserialize>(responseAsString, new JsonSerializerOptions { PropertyNameCaseInsensitive = true, ReferenceHandler = ReferenceHandler.Preserve }); return responseObject!; } public static async Task ToResult(this HttpResponseMessage response) { var responseAsString = await response.Content.ReadAsStringAsync(); var responseObject = JsonSerializer.Deserialize(responseAsString, new JsonSerializerOptions { PropertyNameCaseInsensitive = true, ReferenceHandler = ReferenceHandler.Preserve }); return responseObject!; } public static async Task> ToPaginatedResult(this HttpResponseMessage response) where T : notnull { var responseAsString = await response.Content.ReadAsStringAsync(); var responseObject = JsonSerializer.Deserialize>(responseAsString, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); return responseObject!; } } }