I am developing an application using asp.net core webapi and azure cosmosdb. I need to find an item from the list of objects. I am not experienced with linq. In the below json, i need to find a sector id who got a learnerId": "123". I am expecting output like:
"id": "7d65fa4c-86ed-4e07-9e9a-a1583df5715c"
Sector:
[
{
"name": "Emp1",
"edsNumber": "",
"sectors": [
{
"id": "7d65fa4c-86ed-4e07-9e9a-a1583df5715c",
"name": "Technology1",
"learners": [
{
"learnerId": "123",
"learnerName": "Learner1",
"dateAdded": 1612872051
},
{
"learnerId": "456",
"learnerName": "Learner2",
"dateAdded": 1612877369
},
{
"learnerId": "789",
"learnerName": "Learner3",
"dateAdded": 1612877372
},
{
"learnerId": "12314",
"learnerName": "Learner4",
"dateAdded": 1613065233
},
{
"learnerId": "2346",
"learnerName": "Learner5",
"dateAdded": 1613577350
}
],
"course": {
"name": "Angularv10",
"isCompleted": true
},
"contact": {
"name": "Voytek",
"jobTitle": "Designer1",
"email": "[email protected]",
"isCompleted": true
}
}
]
},
{
"name": "Emp2",
"edsNumber": "",
"sectors": [
{
"id": "7d65fa4c-86ed-4e07-9e9a-a1583df5235c",
"name": "Technology1",
"learners": [
{
"learnerId": "834457",
"learnerName": "Learner6",
"dateAdded": 1612872051
},
{
"learnerId": "11122",
"learnerName": "Learner7",
"dateAdded": 1612877369
}
],
"course": {
"name": "Angularv10",
"isCompleted": true
},
"contact": {
"name": "Voytek",
"jobTitle": "Designer1",
"email": "[email protected]",
"isCompleted": true
}
}
]
}
]
I tried the following:
var sectorId = (from e in employers
from s in e.Sectors
from l in s.Learners
where l.LearnerId == learnerEntity.Id
select s.Id).FirstOrDefault();
Is there a better way to achieve? And how to get both the SectorId and the employer the sector belongs to?