Эта строка:
AccountDetails obj1 = new AccountDetails();
Просто устанавливает obj1
на новый экземпляр AccountDetails
, который будет полон пустых строк.
Вам, вероятно, нужно изменить getCustDetails
в вашем DAL, чтобы он возвращал экземпляр AccountDetails
вместо IEnumerable
, и установите obj1
в:
AccountDetails obj1 = obj.getCustDetails(customerId);
В вашем DAL:
public AccountDetails getCustDetails(string customerId)
{
//Pulls customer information for selected customer
var doc = XDocument.Load("Portfolio.xml");
var custRecords = from account in doc.Descendants("acct")
let acct = account.Element("acct")
where (string)account.Attribute("custid").Value == customerId
select new AccountDetails
{
Fname = (string)account.Attribute("fname").Value,
Lname = (string)account.Attribute("lname").Value,
Ssn = (string)account.Attribute("ssn").Value,
Dob = (string)account.Attribute("dob").Value,
Custid = (string)account.Attribute("custid").Value
};
return custRecords.FirstOrDefault();
}
Обратите внимание, что если ваш DAL не может найти учетную запись с указанным customerId
, он вернет null
(значение по умолчанию для класса). Вам нужно будет проверить возвращаемое значение против нуля перед использованием, если вы не хотите, чтобы NullReferenceException
было выброшено в такой ситуации.