2021-09-02 09:32:47 +02:00
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl.State
{
2022-08-22 17:25:41 +02:00
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "12.12.1.0")]
2021-09-02 09:32:47 +02:00
public partial class UpdatePlayerBuilder : global :: StrawberryShake . IOperationResultBuilder < global :: System . Text . Json . JsonDocument , global :: WotBlitzStatisticsPro . Blazor . GraphQl . IUpdatePlayerResult >
{
private readonly global :: StrawberryShake . IEntityStore _entityStore ;
private readonly global :: StrawberryShake . IEntityIdSerializer _idSerializer ;
private readonly global :: StrawberryShake . IOperationResultDataFactory < global :: WotBlitzStatisticsPro . Blazor . GraphQl . IUpdatePlayerResult > _resultDataFactory ;
private readonly global :: StrawberryShake . Serialization . ILeafValueParser < global :: System . String , global :: WotBlitzStatisticsPro . Blazor . GraphQl . RealmType > _realmTypeParser ;
private readonly global :: StrawberryShake . Serialization . ILeafValueParser < global :: System . String , global :: WotBlitzStatisticsPro . Blazor . GraphQl . RequestLanguage > _requestLanguageParser ;
private readonly global :: StrawberryShake . Serialization . ILeafValueParser < global :: System . Int64 , global :: System . Int64 > _longParser ;
private readonly global :: StrawberryShake . Serialization . ILeafValueParser < global :: System . String , global :: System . DateTimeOffset > _dateTimeParser ;
public UpdatePlayerBuilder ( global :: StrawberryShake . IEntityStore entityStore , global :: StrawberryShake . IEntityIdSerializer idSerializer , global :: StrawberryShake . IOperationResultDataFactory < global :: WotBlitzStatisticsPro . Blazor . GraphQl . IUpdatePlayerResult > resultDataFactory , global :: StrawberryShake . Serialization . ISerializerResolver serializerResolver )
{
_entityStore = entityStore ?? throw new global :: System . ArgumentNullException ( nameof ( entityStore ));
_idSerializer = idSerializer ?? throw new global :: System . ArgumentNullException ( nameof ( idSerializer ));
_resultDataFactory = resultDataFactory ?? throw new global :: System . ArgumentNullException ( nameof ( resultDataFactory ));
_realmTypeParser = serializerResolver . GetLeafValueParser < global :: System . String , global :: WotBlitzStatisticsPro . Blazor . GraphQl . RealmType >( "RealmType" ) ?? throw new global :: System . ArgumentException ( "No serializer for type `RealmType` found." );
_requestLanguageParser = serializerResolver . GetLeafValueParser < global :: System . String , global :: WotBlitzStatisticsPro . Blazor . GraphQl . RequestLanguage >( "RequestLanguage" ) ?? throw new global :: System . ArgumentException ( "No serializer for type `RequestLanguage` found." );
_longParser = serializerResolver . GetLeafValueParser < global :: System . Int64 , global :: System . Int64 >( "Long" ) ?? throw new global :: System . ArgumentException ( "No serializer for type `Long` found." );
_dateTimeParser = serializerResolver . GetLeafValueParser < global :: System . String , global :: System . DateTimeOffset >( "DateTime" ) ?? throw new global :: System . ArgumentException ( "No serializer for type `DateTime` found." );
}
public global :: StrawberryShake . IOperationResult < IUpdatePlayerResult > Build ( global :: StrawberryShake . Response < global :: System . Text . Json . JsonDocument > response )
{
( IUpdatePlayerResult Result , UpdatePlayerResultInfo Info )? data = null ;
global :: System . Collections . Generic . IReadOnlyList < global :: StrawberryShake . IClientError >? errors = null ;
if ( response . Exception is null )
{
try
{
if ( response . Body != null )
{
if ( response . Body . RootElement . TryGetProperty ( "data" , out global :: System . Text . Json . JsonElement dataElement ) && dataElement . ValueKind == global :: System . Text . Json . JsonValueKind . Object )
{
data = BuildData ( dataElement );
}
if ( response . Body . RootElement . TryGetProperty ( "errors" , out global :: System . Text . Json . JsonElement errorsElement ))
{
errors = global :: StrawberryShake . Json . JsonErrorParser . ParseErrors ( errorsElement );
}
}
}
catch ( global :: System . Exception ex )
{
errors = new global :: StrawberryShake . IClientError []{ new global :: StrawberryShake . ClientError ( ex . Message , exception : ex , extensions : new global :: System . Collections . Generic . Dictionary < global :: System . String , global :: System . Object ?>{{ "body" , response . Body ?. RootElement . ToString ()}})};
}
}
else
{
2022-08-22 17:25:41 +02:00
if ( response . Body != null && response . Body . RootElement . TryGetProperty ( "errors" , out global :: System . Text . Json . JsonElement errorsElement ))
{
errors = global :: StrawberryShake . Json . JsonErrorParser . ParseErrors ( errorsElement );
}
else
{
errors = new global :: StrawberryShake . IClientError []{ new global :: StrawberryShake . ClientError ( response . Exception . Message , exception : response . Exception , extensions : new global :: System . Collections . Generic . Dictionary < global :: System . String , global :: System . Object ?>{{ "body" , response . Body ?. RootElement . ToString ()}})};
}
2021-09-02 09:32:47 +02:00
}
return new global :: StrawberryShake . OperationResult < IUpdatePlayerResult >( data ?. Result , data ?. Info , _resultDataFactory , errors );
}
private ( IUpdatePlayerResult , UpdatePlayerResultInfo ) BuildData ( global :: System . Text . Json . JsonElement obj )
{
var entityIds = new global :: System . Collections . Generic . HashSet < global :: StrawberryShake . EntityId >();
global :: StrawberryShake . IEntityStoreSnapshot snapshot = default !;
_entityStore . Update ( session =>
{
snapshot = session . CurrentSnapshot ;
});
var resultInfo = new UpdatePlayerResultInfo ( DeserializeNonNullableDateTimeOffset ( global :: StrawberryShake . Json . JsonElementExtensions . GetPropertyOrNull ( obj , "gatherAccountInformation" )), entityIds , snapshot . Version );
return ( _resultDataFactory . Create ( resultInfo ), resultInfo );
}
private global :: System . DateTimeOffset DeserializeNonNullableDateTimeOffset ( global :: System . Text . Json . JsonElement ? obj )
{
if (! obj . HasValue )
{
throw new global :: System . ArgumentNullException ();
}
return _dateTimeParser . Parse ( obj . Value . GetString ()!);
}
}
}