//public List<ConditionAbstractType> Conditions = new List<ConditionAbstractType>(); public static ConditionsType Load(XElement ConditionsTypeElement) { var ct = new ConditionsType(); foreach (var a in ConditionsTypeElement.Attributes()) { switch (a.Name.LocalName) { case "NotBefore": ct.NotBefore = (DateTime)a; break; case "NotOnOrAfter": ct.NotOnOrAfter = (DateTime)a; break; } } /* * foreach (var e in ConditionsTypeElement.Elements()) * { * switch (e.Name.LocalName) * { * case "Condition": ct.Conditions.Add(ConditionType.Load(e)); break; * case "AudienceRestriction": ct.Conditions.Add(AudienceRestrictionType.Load(e));break; * case "OneTimeUse": ct.Conditions.Add(OneTimeUseType.Load(e));break; * case "ProxyRestriction": ct.Conditions.Add(ProxyRestrictionType.Load(e));break; * } * } */ return(ct); }
public static AssertionType Load(XElement AssertionElement) { var at = new AssertionType(); foreach (var a in AssertionElement.Attributes()) { switch (a.Name.LocalName) { case "Id": at.ID = a.Value; break; case "Version": at.Version = a.Value; break; case "IssueInstant": at.IssueInstant = (DateTime)a; break; } } foreach (var e in AssertionElement.Elements()) { switch (e.Name.LocalName) { case "Issuer": at.Issuer = IssuerType.Load(e); break; case "Signature": { XmlDocument doc = new XmlDocument(); using (var rd = e.CreateReader()) { doc.Load(rd); } at.Signature = new Signature(); at.Signature.LoadXml(doc.DocumentElement); if (at.Signature.Id == null && e.Attribute("Id") != null) { at.Signature.Id = e.Attribute("Id").Value; } } break; case "Subject": at.Subject = SubjectType.Load(e); break; case "Conditions": at.Conditions = ConditionsType.Load(e); break; //case "Advice": at.Advice = AdviceType.Load(e); break; case "AuthnStatement": at.Statements.Add(AuthnStatementType.Load(e)); break; case "AttributeStatement": at.Statements.Add(AttributeStatementType.Load(e)); break; //case "AuthzDecisionStatement": at.Statements.Add(AuthzDecisionStatementType.Load(e)); break; case "Statement": at.Statements.Add(StatementType.Load(e)); break; } } return(at); }