Use JsonExtensions package

This commit is contained in:
Tyrrrz 2020-11-29 00:17:58 +02:00
parent 9df98b0405
commit d72fe594b4
18 changed files with 18 additions and 58 deletions

View file

@ -9,6 +9,8 @@ using DiscordChatExporter.Domain.Discord.Models;
using DiscordChatExporter.Domain.Exceptions; using DiscordChatExporter.Domain.Exceptions;
using DiscordChatExporter.Domain.Internal; using DiscordChatExporter.Domain.Internal;
using DiscordChatExporter.Domain.Internal.Extensions; using DiscordChatExporter.Domain.Internal.Extensions;
using JsonExtensions.Http;
using JsonExtensions.Reading;
namespace DiscordChatExporter.Domain.Discord namespace DiscordChatExporter.Domain.Discord
{ {
@ -52,7 +54,7 @@ namespace DiscordChatExporter.Domain.Discord
}; };
} }
return await response.Content.ReadAsJsonAsync(); return await response.Content.ReadAsJsonAsync(default);
} }
private async ValueTask<JsonElement?> TryGetJsonResponseAsync(string url) private async ValueTask<JsonElement?> TryGetJsonResponseAsync(string url)
@ -60,7 +62,7 @@ namespace DiscordChatExporter.Domain.Discord
using var response = await GetResponseAsync(url); using var response = await GetResponseAsync(url);
return response.IsSuccessStatusCode return response.IsSuccessStatusCode
? await response.Content.ReadAsJsonAsync() ? await response.Content.ReadAsJsonAsync(default)
: (JsonElement?) null; : (JsonElement?) null;
} }

View file

@ -4,6 +4,7 @@ using System.IO;
using System.Text.Json; using System.Text.Json;
using DiscordChatExporter.Domain.Discord.Models.Common; using DiscordChatExporter.Domain.Discord.Models.Common;
using DiscordChatExporter.Domain.Internal.Extensions; using DiscordChatExporter.Domain.Internal.Extensions;
using JsonExtensions.Reading;
namespace DiscordChatExporter.Domain.Discord.Models namespace DiscordChatExporter.Domain.Discord.Models
{ {

View file

@ -1,7 +1,7 @@
using System.Linq; using System.Linq;
using System.Text.Json; using System.Text.Json;
using DiscordChatExporter.Domain.Discord.Models.Common; using DiscordChatExporter.Domain.Discord.Models.Common;
using DiscordChatExporter.Domain.Internal.Extensions; using JsonExtensions.Reading;
using Tyrrrz.Extensions; using Tyrrrz.Extensions;
namespace DiscordChatExporter.Domain.Discord.Models namespace DiscordChatExporter.Domain.Discord.Models

View file

@ -4,6 +4,7 @@ using System.Drawing;
using System.Linq; using System.Linq;
using System.Text.Json; using System.Text.Json;
using DiscordChatExporter.Domain.Internal.Extensions; using DiscordChatExporter.Domain.Internal.Extensions;
using JsonExtensions.Reading;
namespace DiscordChatExporter.Domain.Discord.Models namespace DiscordChatExporter.Domain.Discord.Models
{ {

View file

@ -1,5 +1,5 @@
using System.Text.Json; using System.Text.Json;
using DiscordChatExporter.Domain.Internal.Extensions; using JsonExtensions.Reading;
namespace DiscordChatExporter.Domain.Discord.Models namespace DiscordChatExporter.Domain.Discord.Models
{ {

View file

@ -1,5 +1,5 @@
using System.Text.Json; using System.Text.Json;
using DiscordChatExporter.Domain.Internal.Extensions; using JsonExtensions.Reading;
namespace DiscordChatExporter.Domain.Discord.Models namespace DiscordChatExporter.Domain.Discord.Models
{ {

View file

@ -1,5 +1,5 @@
using System.Text.Json; using System.Text.Json;
using DiscordChatExporter.Domain.Internal.Extensions; using JsonExtensions.Reading;
namespace DiscordChatExporter.Domain.Discord.Models namespace DiscordChatExporter.Domain.Discord.Models
{ {

View file

@ -1,5 +1,5 @@
using System.Text.Json; using System.Text.Json;
using DiscordChatExporter.Domain.Internal.Extensions; using JsonExtensions.Reading;
namespace DiscordChatExporter.Domain.Discord.Models namespace DiscordChatExporter.Domain.Discord.Models
{ {

View file

@ -2,7 +2,7 @@
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Text.Json; using System.Text.Json;
using DiscordChatExporter.Domain.Internal.Extensions; using JsonExtensions.Reading;
using Tyrrrz.Extensions; using Tyrrrz.Extensions;
namespace DiscordChatExporter.Domain.Discord.Models namespace DiscordChatExporter.Domain.Discord.Models

View file

@ -4,6 +4,7 @@ using System.Linq;
using System.Text.Json; using System.Text.Json;
using DiscordChatExporter.Domain.Discord.Models.Common; using DiscordChatExporter.Domain.Discord.Models.Common;
using DiscordChatExporter.Domain.Internal.Extensions; using DiscordChatExporter.Domain.Internal.Extensions;
using JsonExtensions.Reading;
namespace DiscordChatExporter.Domain.Discord.Models namespace DiscordChatExporter.Domain.Discord.Models
{ {

View file

@ -4,6 +4,7 @@ using System.Linq;
using System.Text.Json; using System.Text.Json;
using DiscordChatExporter.Domain.Discord.Models.Common; using DiscordChatExporter.Domain.Discord.Models.Common;
using DiscordChatExporter.Domain.Internal.Extensions; using DiscordChatExporter.Domain.Internal.Extensions;
using JsonExtensions.Reading;
namespace DiscordChatExporter.Domain.Discord.Models namespace DiscordChatExporter.Domain.Discord.Models
{ {

View file

@ -1,6 +1,7 @@
using System.Drawing; using System.Drawing;
using System.Text.Json; using System.Text.Json;
using DiscordChatExporter.Domain.Internal.Extensions; using DiscordChatExporter.Domain.Internal.Extensions;
using JsonExtensions.Reading;
namespace DiscordChatExporter.Domain.Discord.Models namespace DiscordChatExporter.Domain.Discord.Models
{ {

View file

@ -2,6 +2,7 @@
using System.Text.Json; using System.Text.Json;
using DiscordChatExporter.Domain.Discord.Models.Common; using DiscordChatExporter.Domain.Discord.Models.Common;
using DiscordChatExporter.Domain.Internal.Extensions; using DiscordChatExporter.Domain.Internal.Extensions;
using JsonExtensions.Reading;
namespace DiscordChatExporter.Domain.Discord.Models namespace DiscordChatExporter.Domain.Discord.Models
{ {

View file

@ -2,6 +2,7 @@
<Import Project="../DiscordChatExporter.props" /> <Import Project="../DiscordChatExporter.props" />
<ItemGroup> <ItemGroup>
<PackageReference Include="JsonExtensions" Version="1.0.0" />
<PackageReference Include="MiniRazor" Version="1.1.0" /> <PackageReference Include="MiniRazor" Version="1.1.0" />
<PackageReference Include="Polly" Version="7.2.1" /> <PackageReference Include="Polly" Version="7.2.1" />
<PackageReference Include="Tyrrrz.Extensions" Version="1.6.5" /> <PackageReference Include="Tyrrrz.Extensions" Version="1.6.5" />

View file

@ -4,7 +4,7 @@ using System.Threading.Tasks;
using DiscordChatExporter.Domain.Discord.Models; using DiscordChatExporter.Domain.Discord.Models;
using DiscordChatExporter.Domain.Exporting.Writers.MarkdownVisitors; using DiscordChatExporter.Domain.Exporting.Writers.MarkdownVisitors;
using DiscordChatExporter.Domain.Internal.Extensions; using DiscordChatExporter.Domain.Internal.Extensions;
using DiscordChatExporter.Domain.Markdown.Ast; using JsonExtensions.Writing;
namespace DiscordChatExporter.Domain.Exporting.Writers namespace DiscordChatExporter.Domain.Exporting.Writers
{ {

View file

@ -1,6 +1,5 @@
using System.IO; using System.IO;
using System.Net.Http; using System.Net.Http;
using System.Text.Json;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace DiscordChatExporter.Domain.Internal.Extensions namespace DiscordChatExporter.Domain.Internal.Extensions
@ -15,13 +14,5 @@ namespace DiscordChatExporter.Domain.Internal.Extensions
await input.CopyToAsync(output); await input.CopyToAsync(output);
await output.DisposeAsync(); await output.DisposeAsync();
} }
public static async ValueTask<JsonElement> ReadAsJsonAsync(this HttpContent content)
{
await using var stream = await content.ReadAsStreamAsync();
using var doc = await JsonDocument.ParseAsync(stream);
return doc.RootElement.Clone();
}
} }
} }

View file

@ -1,12 +0,0 @@
using System.Text.Json;
namespace DiscordChatExporter.Domain.Internal.Extensions
{
internal static class JsonElementExtensions
{
public static JsonElement? GetPropertyOrNull(this JsonElement element, string propertyName) =>
element.TryGetProperty(propertyName, out var result) && result.ValueKind != JsonValueKind.Null
? result
: (JsonElement?) null;
}
}

View file

@ -1,28 +0,0 @@
using System;
using System.Text.Json;
namespace DiscordChatExporter.Domain.Internal.Extensions
{
internal static class Utf8JsonWriterExtensions
{
public static void WriteString(this Utf8JsonWriter writer, string propertyName, DateTimeOffset? value)
{
writer.WritePropertyName(propertyName);
if (value != null)
writer.WriteStringValue(value.Value);
else
writer.WriteNullValue();
}
public static void WriteNumber(this Utf8JsonWriter writer, string propertyName, int? value)
{
writer.WritePropertyName(propertyName);
if (value != null)
writer.WriteNumberValue(value.Value);
else
writer.WriteNullValue();
}
}
}