Tenho a seguinte classe para obter uma resposta de API:
[JsonObject]
[Serializable]
public class Root
{
public Metadata metadata { get; set; }
public List<Result> result { get; set; }
}
[JsonObject]
[Serializable]
public class GroupRecord
{
public string groupNumber { get; set; }
}
[JsonObject]
[Serializable]
public class Metadata
{
public int totalCount { get; set; }
public int page { get; set; }
public int pageCount { get; set; }
}
[JsonObject]
[Serializable]
public class Npi
{
public DateTime EffectiveDate { get; set; }
}
[JsonObject]
[Serializable]
public class Result
{
public string Name { get; set; }
public Npi npi { get; set; }
public List<GroupRecord> aGroupRecord { get; set; }
}
Estou tentando obter o resultado que corresponde a um dado groupNumber
e tem o mais recente EffectiveDate
com LINQ.
Aqui está o código do meu aplicativo que pensei que deveria funcionar:
string groupNumber = "SALT"
Root dataObject = response.Content.ReadAsAsync<Root>().Result;
if (dataObject.result.Count >= 1)
{
var result = dataObject.result.Where(x => x.aGroupRecord.Where(a => a.groupNumber == groupNumber).OrderByDescending(x.npi => x.npi.EffectiveDate)).FirstOrDefault();
}