diff --git a/src/AzureDevopsTracker.csproj b/src/AzureDevopsTracker.csproj
index bb3702c..6e4a512 100644
--- a/src/AzureDevopsTracker.csproj
+++ b/src/AzureDevopsTracker.csproj
@@ -19,8 +19,8 @@
LICENSE.md.txt
A NuGet that allows you to use a Azure DevOps Service Hook to track workitems changes in a simply and detailed way.
8.0.0.0
- 8.0.2
- 8.0.2
+ 8.0.3
+ 8.0.3
diff --git a/src/Helpers/ReadJsonHelper.cs b/src/Helpers/ReadJsonHelper.cs
index 1c00613..df60be3 100644
--- a/src/Helpers/ReadJsonHelper.cs
+++ b/src/Helpers/ReadJsonHelper.cs
@@ -7,40 +7,35 @@ namespace AzureDevopsTracker.Helpers
{
public static class ReadJsonHelper
{
+
public static IEnumerable ReadJson(string workItemId, string jsonTexto)
{
try
{
+ JObject json = JObject.Parse(jsonTexto);
+ JObject? fields = json.SelectToken("resource.revision.fields") as JObject;
+ if (fields == null)
+ {
+ return Enumerable.Empty();
+ }
var workItemCustomFields = new List();
- foreach (KeyValuePair element in JObject.Parse(jsonTexto))
+
+ foreach (var property in fields.Properties())
{
- if (element.Value is JObject)
- ReadJsonObject(workItemId, workItemCustomFields, (JObject)element.Value);
- else
- GetWorkItemCustomField(workItemCustomFields, workItemId, element.Key, element.Value.ToString());
+ if (property.Name.StartsWith("Custom."))
+ {
+ string key = property.Name["Custom.".Length..];
+ string value = property.Value.ToString();
+ workItemCustomFields.Add(new WorkItemCustomField(workItemId, key, value));
+ }
}
return workItemCustomFields;
}
catch
{
- return Enumerable.Empty();
+ return [];
}
}
-
- private static void ReadJsonObject(string workItemId, List workItemCustomFields, JObject objeto)
- {
- foreach (KeyValuePair item in objeto)
- if (item.Value is JObject)
- ReadJsonObject(workItemId, workItemCustomFields, (JObject)item.Value);
- else
- GetWorkItemCustomField(workItemCustomFields, workItemId, item.Key, item.Value.ToString());
- }
-
- private static void GetWorkItemCustomField(List workItemCustomFields, string workItemId, string key, string value)
- {
- if (key is not null && !key.ToLower().Contains("custom")) return;
- workItemCustomFields.Add(new WorkItemCustomField(workItemId, key, value));
- }
}
}