[Solved] Get All instead of FirstOrDefault


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