Ejemplo n.º 1
0
        async ValueTask <OperationState <AnalyzeResult> > IOperation <AnalyzeResult> .UpdateStateAsync(bool async, CancellationToken cancellationToken)
        {
            Response <AnalyzeResultOperation> response = async
                ? await _serviceClient.DocumentAnalysisGetAnalyzeDocumentResultAsync(_modelId, _resultId, cancellationToken).ConfigureAwait(false)
                : _serviceClient.DocumentAnalysisGetAnalyzeDocumentResult(_modelId, _resultId, cancellationToken);

            AnalyzeResultOperationStatus status = response.Value.Status;
            Response rawResponse = response.GetRawResponse();

            if (status == AnalyzeResultOperationStatus.Succeeded)
            {
                return(OperationState <AnalyzeResult> .Success(rawResponse,
                                                               response.Value.AnalyzeResult));
            }
            else if (status == AnalyzeResultOperationStatus.Failed)
            {
                RequestFailedException requestFailedException = await ClientCommon
                                                                .CreateExceptionForFailedOperationAsync(async, _diagnostics, rawResponse, response.Value.Error)
                                                                .ConfigureAwait(false);

                return(OperationState <AnalyzeResult> .Failure(rawResponse, requestFailedException));
            }

            return(OperationState <AnalyzeResult> .Pending(rawResponse));
        }
 internal AnalyzeResultOperation(AnalyzeResultOperationStatus status, DateTimeOffset createdDateTime, DateTimeOffset lastUpdatedDateTime, JsonElement error, AnalyzeResult analyzeResult)
 {
     Status              = status;
     CreatedDateTime     = createdDateTime;
     LastUpdatedDateTime = lastUpdatedDateTime;
     _error              = error;
     AnalyzeResult       = analyzeResult;
 }
Ejemplo n.º 3
0
        internal static AnalyzeResultOperation DeserializeAnalyzeResultOperation(JsonElement element)
        {
            AnalyzeResultOperationStatus status          = default;
            DateTimeOffset           createdDateTime     = default;
            DateTimeOffset           lastUpdatedDateTime = default;
            Optional <JsonElement>   error         = default;
            Optional <AnalyzeResult> analyzeResult = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("status"))
                {
                    status = property.Value.GetString().ToAnalyzeResultOperationStatus();
                    continue;
                }
                if (property.NameEquals("createdDateTime"))
                {
                    createdDateTime = property.Value.GetDateTimeOffset("O");
                    continue;
                }
                if (property.NameEquals("lastUpdatedDateTime"))
                {
                    lastUpdatedDateTime = property.Value.GetDateTimeOffset("O");
                    continue;
                }
                if (property.NameEquals("error"))
                {
                    error = property.Value.Clone();
                    continue;
                }
                if (property.NameEquals("analyzeResult"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    analyzeResult = AnalyzeResult.DeserializeAnalyzeResult(property.Value);
                    continue;
                }
            }
            return(new AnalyzeResultOperation(status, createdDateTime, lastUpdatedDateTime, error, analyzeResult.Value));
        }
 internal AnalyzeResultOperation(AnalyzeResultOperationStatus status, DateTimeOffset createdDateTime, DateTimeOffset lastUpdatedDateTime)
 {
     Status              = status;
     CreatedDateTime     = createdDateTime;
     LastUpdatedDateTime = lastUpdatedDateTime;
 }
Ejemplo n.º 5
0
 public static string ToSerialString(this AnalyzeResultOperationStatus value) => value switch
 {