You are using FirstOrDefault
so you are returning only the first.
PromotionList dataPromotion = authenticateCustomerResponseRootObject.Response.AuthenticateCustomerResponse.EligiblePromotions.PromotionList.Where(p => p.LineOfBusiness.ToUpper().Equals("Data")).FirstOrDefault();
If you want all of them just remove that call at the end and replace with a ToList
, ToArray
or similar that meets your needs:
var data = authenticateCustomerResponseRootObject.Response.AuthenticateCustomerResponse.EligiblePromotions.PromotionList.Where(p => p.LineOfBusiness.ToUpper().Equals("Data")).ToList();
Also as mentioned in the comments your Where
call uses ToUpper
then compares on a string containing lower case characters so will never return any results. You either need to remove the ToUpper
, use a upper case string or even use ignore case:
Where(p => p.LineOfBusiness.Equals("Data", StringComparison.OrdinalIgnoreCase))
solved Get All instead of FirstOrDefault