Example #1
0
        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");
        }
Example #2
0
        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));
        }