internal static IndexerExecutionResult DeserializeIndexerExecutionResult(JsonElement element) { IndexerExecutionStatus status = default; string errorMessage = default; DateTimeOffset? startTime = default; DateTimeOffset? endTime = default; IReadOnlyList <ItemError> errors = default; IReadOnlyList <ItemWarning> warnings = default; int itemsProcessed = default; int itemsFailed = default; string initialTrackingState = default; string finalTrackingState = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("status")) { status = property.Value.GetString().ToIndexerExecutionStatus(); continue; } if (property.NameEquals("errorMessage")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } errorMessage = property.Value.GetString(); continue; } if (property.NameEquals("startTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } startTime = property.Value.GetDateTimeOffset("S"); continue; } if (property.NameEquals("endTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } endTime = property.Value.GetDateTimeOffset("S"); continue; } if (property.NameEquals("errors")) { List <ItemError> array = new List <ItemError>(); foreach (var item in property.Value.EnumerateArray()) { if (item.ValueKind == JsonValueKind.Null) { array.Add(null); } else { array.Add(ItemError.DeserializeItemError(item)); } } errors = array; continue; } if (property.NameEquals("warnings")) { List <ItemWarning> array = new List <ItemWarning>(); foreach (var item in property.Value.EnumerateArray()) { if (item.ValueKind == JsonValueKind.Null) { array.Add(null); } else { array.Add(ItemWarning.DeserializeItemWarning(item)); } } warnings = array; continue; } if (property.NameEquals("itemsProcessed")) { itemsProcessed = property.Value.GetInt32(); continue; } if (property.NameEquals("itemsFailed")) { itemsFailed = property.Value.GetInt32(); continue; } if (property.NameEquals("initialTrackingState")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } initialTrackingState = property.Value.GetString(); continue; } if (property.NameEquals("finalTrackingState")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } finalTrackingState = property.Value.GetString(); continue; } } return(new IndexerExecutionResult(status, errorMessage, startTime, endTime, errors, warnings, itemsProcessed, itemsFailed, initialTrackingState, finalTrackingState)); }
internal static IndexerExecutionResult DeserializeIndexerExecutionResult(JsonElement element) { IndexerExecutionResult result = new IndexerExecutionResult(); foreach (var property in element.EnumerateObject()) { if (property.NameEquals("status")) { result.Status = property.Value.GetString().ToIndexerExecutionStatus(); continue; } if (property.NameEquals("errorMessage")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } result.ErrorMessage = property.Value.GetString(); continue; } if (property.NameEquals("startTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } result.StartTime = property.Value.GetDateTimeOffset("S"); continue; } if (property.NameEquals("endTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } result.EndTime = property.Value.GetDateTimeOffset("S"); continue; } if (property.NameEquals("errors")) { foreach (var item in property.Value.EnumerateArray()) { result.Errors.Add(ItemError.DeserializeItemError(item)); } continue; } if (property.NameEquals("warnings")) { foreach (var item in property.Value.EnumerateArray()) { result.Warnings.Add(ItemWarning.DeserializeItemWarning(item)); } continue; } if (property.NameEquals("itemsProcessed")) { result.ItemCount = property.Value.GetInt32(); continue; } if (property.NameEquals("itemsFailed")) { result.FailedItemCount = property.Value.GetInt32(); continue; } if (property.NameEquals("initialTrackingState")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } result.InitialTrackingState = property.Value.GetString(); continue; } if (property.NameEquals("finalTrackingState")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } result.FinalTrackingState = property.Value.GetString(); continue; } } return(result); }