public static XElement ExportUserInfo(IUserInfo userInfo)
{
var result = new XElement("userInfo");
result.Add(new XElement("displayName", userInfo.DisplayName));
result.Add(new XElement("isRegistered", userInfo.IsRegistered));
if (userInfo.IsRegistered)
{
var registeredInfo = (RegisteredUserInfo)userInfo;
result.Add(new XElement("firstName", registeredInfo.FirstName));
result.Add(new XElement("description", registeredInfo.Description));
result.Add(new XElement("email", registeredInfo.EmailAddress));
result.Add(new XElement("isLockedOut", registeredInfo.IsLockedOut));
if (registeredInfo.LastLogon.HasValue)
{
result.Add(new XElement("lastLogon", ExportDateTime(registeredInfo.LastLogon.Value)));
result.Add(new XElement("daysSinceLastLogon", ExportTimeSpanDays(DateTime.Now - registeredInfo.LastLogon.Value)));
}
}
return result;
}