public Session(ActionRequest Req) { ID = CDO.GetString(Req.Payload, "sessionid"); int SessionLengthSeconds = CDO.GetInt(Req.Payload, "sessionlength", 0); SessionEndsAtUTC = DateTime.MaxValue; if (SessionLengthSeconds > 0) { SessionEndsAtUTC = DateTime.UtcNow.AddSeconds(CDO.GetInt(Req.Payload, "sessionlength")); } #warning sessionexpiration is a spelling error in cdo, should be sessionexpires SessionEndsAtUTC = CDO.GetTimestamp(Req.Payload, "sessionexpiration", SessionEndsAtUTC); XElement ResEl = CDO.GetList(Req.Payload, "resourceaccessrights"); var ResourceAccessRights = ResEl.Elements(CDO.Namespace + "resourceaccess"); foreach (var ResAcc in ResourceAccessRights) { Resources.Add(new ResourceAccess(ResAcc)); } foreach (var el in Req.Payload.Elements()) { if (el.Name.LocalName.Contains("contract")) { throw new Exception("Contracts not supported"); } } Requester = CDO.GetAddress(Req.Payload, "requesteeaddress"); }
public static DXMPP.JID GetAddress(XElement Element, string Name, DXMPP.JID DefaultValue = null) { XElement it = Element.Element(Namespace + Name); if (it == null) { return(DefaultValue); } XElement Val = it.Element(Namespace + "address"); return(new DXMPP.JID(Val.Value)); }