public async Task <Response <IReadOnlyList <RecommendedActionData> > > ListByDatabaseAdvisorAsync(string subscriptionId, string resourceGroupName, string serverName, string databaseName, string advisorName, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName)); Argument.AssertNotNullOrEmpty(serverName, nameof(serverName)); Argument.AssertNotNullOrEmpty(databaseName, nameof(databaseName)); Argument.AssertNotNullOrEmpty(advisorName, nameof(advisorName)); using var message = CreateListByDatabaseAdvisorRequest(subscriptionId, resourceGroupName, serverName, databaseName, advisorName); await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); switch (message.Response.Status) { case 200: { IReadOnlyList <RecommendedActionData> value = default; using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, default, cancellationToken).ConfigureAwait(false); List <RecommendedActionData> array = new List <RecommendedActionData>(); foreach (var item in document.RootElement.EnumerateArray()) { array.Add(RecommendedActionData.DeserializeRecommendedActionData(item)); } value = array; return(Response.FromValue(value, message.Response)); }
internal static AdvisorData DeserializeAdvisorData(JsonElement element) { Optional <string> kind = default; Optional <string> location = default; ResourceIdentifier id = default; string name = default; ResourceType type = default; SystemData systemData = default; Optional <AdvisorStatus> advisorStatus = default; Optional <AutoExecuteStatus> autoExecuteStatus = default; Optional <AutoExecuteStatusInheritedFrom> autoExecuteStatusInheritedFrom = default; Optional <string> recommendationsStatus = default; Optional <DateTimeOffset> lastChecked = default; Optional <IReadOnlyList <RecommendedActionData> > recommendedActions = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("kind")) { kind = property.Value.GetString(); continue; } if (property.NameEquals("location")) { location = property.Value.GetString(); continue; } if (property.NameEquals("id")) { id = new ResourceIdentifier(property.Value.GetString()); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = new ResourceType(property.Value.GetString()); continue; } if (property.NameEquals("systemData")) { systemData = JsonSerializer.Deserialize <SystemData>(property.Value.ToString()); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("advisorStatus")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } advisorStatus = property0.Value.GetString().ToAdvisorStatus(); continue; } if (property0.NameEquals("autoExecuteStatus")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } autoExecuteStatus = property0.Value.GetString().ToAutoExecuteStatus(); continue; } if (property0.NameEquals("autoExecuteStatusInheritedFrom")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } autoExecuteStatusInheritedFrom = property0.Value.GetString().ToAutoExecuteStatusInheritedFrom(); continue; } if (property0.NameEquals("recommendationsStatus")) { recommendationsStatus = property0.Value.GetString(); continue; } if (property0.NameEquals("lastChecked")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } lastChecked = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("recommendedActions")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <RecommendedActionData> array = new List <RecommendedActionData>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(RecommendedActionData.DeserializeRecommendedActionData(item)); } recommendedActions = array; continue; } } continue; } } return(new AdvisorData(id, name, type, systemData, kind.Value, location.Value, Optional.ToNullable(advisorStatus), Optional.ToNullable(autoExecuteStatus), Optional.ToNullable(autoExecuteStatusInheritedFrom), recommendationsStatus.Value, Optional.ToNullable(lastChecked), Optional.ToList(recommendedActions))); }