Search code examples
jsonasp.net-core-3.1azure-eventhubasp.net-core-6.0

How To Remove Task Properties From JSON


I have event hub producer. Some code omitted for clarity and this producer configured properly:

public async Task Send(EventDataContract eventDataContract)
{
    if (_connectionString == "-")
    {
        return;
    }

    _producerClient = new EventHubProducerClient(_connectionString);

    try
    {
        var eventData = new EventData(Encoding.UTF8.GetBytes(SerializationHelper.Serialize(eventDataContract)));
        using var eventBatch = await _producerClient.CreateBatchAsync();

        if (!eventBatch.TryAdd(eventData))
        {
            throw new Exception($"The event could not be added.");
        }

        await _producerClient.SendAsync(eventBatch);

        _logger.LogInformation("New event hub event of type {eventType} produced", eventDataContract.Type);
        Count(eventDataContract.Type);
    }
    finally
    {
        await _producerClient.CloseAsync();
    }
}

Which is running inside .NET Core 3.1 app. SendAsync was creating json:

{
  "checkupId": "CE0C6DC120BC9DDF11EC2D9FC44F6743",
  "checkupDate": "2021-10-15T00:00:00",
  "checkupPhotoFiles": [
    {
      "type": 50,
      "link": "2021/10/15/CE0C6DC120BC9DDF11EC2D9FC44F6743/5AE13AF0673BA1BE11EC2DC6AAB2C55A.jpg"
    },
    {
      "type": 10,
      "link": "2021/10/15/CE0C6DC120BC9DDF11EC2D9FC44F6743/5AE13AF0673BA26811EC2DC6D258A721.jpg"
    },
    {
      "type": 60,
      "link": "2021/10/15/CE0C6DC120BC9DDF11EC2D9FC44F6743/CE0C6DC120BCBBC511EC2DC6E364CBB2.jpg"
    },
    {
      "type": 70,
      "link": "2021/10/15/CE0C6DC120BC9DDF11EC2D9FC44F6743/CE0C6DC120BCBBEF11EC2DC6F5CCA998.jpg"
    },
    {
      "type": 80,
      "link": "2021/10/15/CE0C6DC120BC9DDF11EC2D9FC44F6743/5AE13AF0673BA08A11EC2DC64F7E0212.png"
    },
    {
      "type": 40,
      "link": "2021/10/15/CE0C6DC120BC9DDF11EC2D9FC44F6743/CE0C6DC120BCBB7611EC2DC6CAF19685.jpg"
    }
  ]
} 

After update to .NET Core 6 this JSON changed and now includes some properties that belongs to Task:

{
  "result": {
    "checkupId": "11ec4c59d7724fcc866f64a45a917b0a",
    "checkupDate": "2021-11-23T00:00:00",
    "checkupPhotoFiles": [
      {
        "type": 50,
        "link": "2021/11/23/11ec4c59d7724fcc866f64a45a917b0a/11ec4cf4907ea49cb1113229ca4b6086.jpeg"
      },
      {
        "type": 10,
        "link": "2021/11/23/11ec4c59d7724fcc866f64a45a917b0a/11ec4ceeaa4fb56bb4fc24b3e6865989.jpeg"
      },
      {
        "type": 60,
        "link": "2021/11/23/11ec4c59d7724fcc866f64a45a917b0a/11ec4cf3c3cab67782b6ca0fc2972d44.jpeg"
      },
      {
        "type": 70,
        "link": "2021/11/23/11ec4c59d7724fcc866f64a45a917b0a/11ec4cf3cbf9561dba49de46364b0be9.jpeg"
      },
      {
        "type": 80,
        "link": "2021/11/23/11ec4c59d7724fcc866f64a45a917b0a/11ec4cef2c74d5a98444d2dc550f7a5d.jpeg"
      },
      {
        "type": 40,
        "link": "2021/11/23/11ec4c59d7724fcc866f64a45a917b0a/11ec4ceec55fd23596ee998818023a5f.jpeg"
      }
    ]
  },
  "id": 66,
  "exception": null,
  "status": 5,
  "isCanceled": false,
  "isCompleted": true,
  "isCompletedSuccessfully": true,
  "creationOptions": 0,
  "asyncState": null,
  "isFaulted": false
}

How to get rid of those properties and return to previous json format.


Solution

  • It was just a missed await operator somewhere in the code.