コード例 #1
0
        private LoginResult performLogin(login loginParameters, bool allowRetry = true)
        {
            LoginResult result = new LoginResult();

            try
            {
                LoginResponse res = server.login(loginParameters);
                if (res.Item is LoginResponseSuccess)
                {
                    LoginResponseSuccess loginResponse = res.Item as LoginResponseSuccess;
                    result.SessionId  = loginResponse.sessionkey;
                    result.ResultCode = LoginResultCode.Success;
                }
                else if (res.Item is LoginResponseRedirect)
                {
                    LoginResponseRedirect redirect = res.Item as LoginResponseRedirect;
                    log("login for " + (loginParameters.ItemElementName == ItemChoiceType.password ? loginParameters.Item : loginParameters.username) +
                        " was redirected from server " + configuration.PrimaryAddress + " to " + redirect.primaryServer, 3);
                    if (allowRetry)
                    {
                        configuration.PrimaryAddress   = redirect.primaryServer;
                        configuration.SecondaryAddress = redirect.backupServer;
                        return(EstablishAdminSession(false));
                    }
                }
            }
            catch (FaultException f)
            {
                log("Error received during login processing: " + f.Message, 2);
                result.ResultCode = LoginResultCode.ApiFault;
            }
            catch (CommunicationException c)
            {
                log("Communication error: " + c.Message, 2);
                result.ResultCode = LoginResultCode.CommunicationError;
                if (allowRetry)
                {
                    string tempAddress = configuration.SecondaryAddress;
                    configuration.PrimaryAddress   = configuration.SecondaryAddress;
                    configuration.SecondaryAddress = tempAddress;
                    return(EstablishAdminSession(false));
                }
            }
            return(result);
        }
コード例 #2
0
        /// <summary>
        /// getting and setting some presence states
        /// </summary>
        public void Test()
        {
            login loginParameters = new login
            {
                forceSpecified  =
                    true, force = true,
                Item            = configuration.Login,
                ItemElementName = ItemChoiceType.password,
                username        = configuration.Password
            };

            loginParameters.forceSpecified = true;
            loginParameters.force          = true;

            //log into the server as admin
            LoginResponse res = server.login(loginParameters);

            if (res.Item is LoginResponseSuccess)
            {
                LoginResponseSuccess succ = res.Item as LoginResponseSuccess;

                adminSessionId = succ.sessionkey;
                string             userSessionId;
                ResponseStatusType resType = null;
                //now perform the per user login
                res = server.login(new login
                {
                    Item            = adminSessionId,
                    ItemElementName = ItemChoiceType.appsessionid,
                    username        = "******",
                    forceSpecified  = true,
                    force           = true
                });
                if (res.Item is LoginResponseSuccess)
                {
                    succ          = res.Item as LoginResponseSuccess;
                    userSessionId = succ.sessionkey;

                    getPolledPresence req = new getPolledPresence {
                        presenceType = "BASIC_PRESENCE"
                    };
                    //req.presenceType = "RICH_PRESENCE";
                    // other presence type RICH_PRESENCE

                    Contact myContact = new Contact {
                        contactURI = "*****@*****.**"
                    };                                                                     // replace that with the user you want to get presence from
                    Contact myContact2 = new Contact {
                        contactURI = "*****@*****.**"
                    };

                    req.contactsList = new Contact[] { myContact };
                    getPolledPresenceResponse presRes = server.getPolledPresence(userSessionId, req);

                    presRes = server.getPolledPresence(userSessionId, new getPolledPresence
                    {
                        contactsList = new Contact[] { myContact },
                        presenceType = "RICH_PRESENCE"
                    });

                    //registerEndPointResponse endpointRes = server.registerEndPoint(adminSessionId, new registerEndPoint
                    //{
                    //    expiration = 86400,
                    //    url = callbckServerAddress
                    //});
                    //endPointId = endpointRes.endPointID;
                    //resType = server.setPresence(userSessionId, new setPresence
                    //{
                    //    presenceType = "BASIC_PRESENCE",
                    //    expiration = 86400,
                    //    presenceInfo = new PresenceInfoType
                    //    {
                    //        basicPresence = "BUSY",
                    //        @override = false
                    //    }
                    //});

                    //resType = server.setPresence(userSessionId, new setPresence
                    //{
                    //    presenceType = "BASIC_PRESENCE",
                    //    expiration = 86400,
                    //    presenceInfo = new PresenceInfoType
                    //    {
                    //        basicPresence = "AWAY",
                    //        @override = true
                    //    }
                    //});

                    //and now we're trying to set the presence state
                    string presString = generateOnThePhonePresenceString("lsste", "nxodev.intra");
                    presString = generateIdlePresenceString("lsste", "nxodev.intra");
                    presString = generateAwayPresenceString("lsste", "nxodev.intra");
                    var xml = new System.Xml.XmlDocument();
                    xml.LoadXml(presString);

                    setPresence presenceState = new setPresence
                    {
                        presenceType = "RICH_PRESENCE",
                        expiration   = 3600,
                        presenceInfo = new PresenceInfoType
                        {
                            @override    = true,
                            richPresence = xml.OuterXml
                        }
                    };
                    try
                    {
                        resType = server.setPresence(userSessionId, presenceState);
                    }
                    catch (FaultException f)
                    {
                        MessageFault fault = f.CreateMessageFault();
                        XmlElement   elem  = fault.GetDetail <XmlElement>();
                        log("Unable to set presence: " + f.Message, 2);
                    }

                    presenceState = new setPresence
                    {
                        presenceType = "RICH_PRESENCE",
                        expiration   = 3600,
                        presenceInfo = new PresenceInfoType
                        {
                            @override    = true,
                            richPresence = generateIdlePresenceString("sste", "chzhlab.ch")
                        }
                    };

                    try
                    {
                        resType = server.setPresence(userSessionId, presenceState);
                    }
                    catch (FaultException f)
                    {
                        MessageFault fault = f.CreateMessageFault();
                        XmlElement   elem  = fault.GetDetail <XmlElement>();
                        log("Unable to set presence: " + f.Message, 2);
                    }

                    presenceState.presenceInfo.richPresence = generatePresenceState("sste", "chzhlab.ch", "unavailable", false, true);

                    try
                    {
                        resType = server.setPresence(userSessionId, presenceState);
                    }
                    catch (FaultException f)
                    {
                        MessageFault fault = f.CreateMessageFault();
                        XmlElement   elem  = fault.GetDetail <XmlElement>();
                        log("Unable to set presence: " + f.Message, 2);
                    }

                    presenceState = new setPresence
                    {
                        presenceType = "RICH_PRESENCE",
                        expiration   = 3600,
                        presenceInfo = new PresenceInfoType
                        {
                            @override    = true,
                            richPresence = generatePresenceState("sste", "chzhlab.ch", "away", false, false)
                        }
                    };

                    try
                    {
                        resType = server.setPresence(userSessionId, presenceState);
                    }
                    catch (FaultException f)
                    {
                        MessageFault fault = f.CreateMessageFault();
                        XmlElement   elem  = fault.GetDetail <XmlElement>();
                        log("Unable to set presence: " + f.Message, 2);
                    }

                    presenceState.presenceInfo.richPresence = generatePresenceState("sste", "chzhlab.ch", "away", false, true);

                    try
                    {
                        resType = server.setPresence(userSessionId, presenceState);
                    }
                    catch (FaultException f)
                    {
                        MessageFault fault = f.CreateMessageFault();
                        XmlElement   elem  = fault.GetDetail <XmlElement>();
                        log("Unable to set presence: " + f.Message, 2);
                    }

                    //subscribeResponse subRes = server.subscribe(userSessionId, new subscribe
                    //{
                    //    contactsList = new Contact[] { myContact },
                    //    endPointID = endPointId,
                    //    expiration = 86400,
                    //    expirationSpecified = true,
                    //    subscriptionID = 0,
                    //    subscriptionType = "PRESENCE_NOTIFICATION"
                    //});

                    //resType = server.unsubscribe(userSessionId, new unsubscribe { unsubscribeRequest = new UnsubscribeRequest { subscriptionID = subRes.subscriptionID, Item = true } });

                    //resType = server.unregisterEndPoint(adminSessionId, new unregisterEndPoint { endPointID = endPointId });

                    resType = server.logout(userSessionId, new logout {
                    });

                    resType = server.logout(adminSessionId, new logout {
                    });
                }

                Console.WriteLine("Result of logout: " + resType.status);
            }
            else if (res.Item is LoginResponseRedirect)
            {
                LoginResponseRedirect redirect = res.Item as LoginResponseRedirect;
            }
        }
コード例 #3
0
    private void SetClientResponse(User user = null, string encUserId = null)
    {
        string sJSON = null;
        if (user != null && !string.IsNullOrWhiteSpace(encUserId))
        {
            System.Web.Script.Serialization.JavaScriptSerializer oSerializer;

            LoginResponseSuccess resp = new LoginResponseSuccess();

            resp.Status = 1;
            resp.FirstName = user.firstName;
            resp.LastName = user.lastName;
            resp.Image = user.avatarImageUrl;
            resp.facebookID = user.facebookID;

            //resp.userID = encUserId;
            resp.link = user.link;

            oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            sJSON = oSerializer.Serialize(resp);
        }

        ltrlClientResponse.Text = "<script>currentUser = "******";</script>";
    }