Exemplo n.º 1
0
        public User(int iUserID, string strUsername, string strEmail, UserClassType strClass,
                    string strTimeZone, bool Dls, int iPlan, int iMaxRems, int iMaxPTPRems, string strBotName)
        {
            _contacts = new ArrayList(3);

            _email              = strEmail;
            _class              = strClass;
            _timezone           = strTimeZone;
            _planID             = iPlan;
            _dls                = Dls;
            _maxNumReminders    = iMaxRems;
            _botname            = strBotName;
            m_buddies           = new ArrayList();
            _maxNumPTPReminders = iMaxPTPRems;


            // TODO: change this when bot is switched over to use userid as primary key and not the user's "login name"
            _userName = strUsername;
            _userid   = iUserID;
        }
Exemplo n.º 2
0
        public override ArrayList LoadUsers()
        {
            ArrayList retUsers = new ArrayList();

            try
            {
                string s =
                    @"<?xml version=""1.0"" encoding=""utf-8""?>
<request version=""2.71828"">
  <function name=""LoadUsers"">
      <argument>" + BotName + @"</argument>
  </function>
</request>
";
                XmlDocument dataDoc  = GetDataDocument(s);
                XmlNodeList userList = dataDoc.SelectNodes(@"/users/user");
                if (userList == null)
                {
                    // yeah, we neeed exceptions
                    return(retUsers);
                }

                foreach (XmlNode userNode in userList)
                {
                    Hashtable userinfo = new Hashtable();
                    ArrayList contacts = new ArrayList();

                    foreach (XmlNode userElementNode in userNode.ChildNodes)
                    {
                        if (userElementNode.Name.ToLower() != "contact")
                        {
                            userinfo[userElementNode.Name.ToLower()] = userElementNode.InnerText;
                        }
                        else
                        {
                            XmlDocument tempDoc = new XmlDocument();
                            tempDoc.LoadXml(userElementNode.OuterXml);

                            XmlNode serviceNode = tempDoc.SelectSingleNode(@"/contact/service");
                            if (serviceNode == null)
                            {
                                // ignore this of throw an exception? ignore it for now
                                continue;
                            }

                            XmlNode loginNode = tempDoc.SelectSingleNode(@"/contact/login");
                            if (loginNode == null)
                            {
                                // same as above?
                                continue;
                            }

                            IMContact cont = new IMContact(
                                loginNode.InnerText,
                                (ConnectionType)Enum.Parse(typeof(ConnectionType), serviceNode.InnerText, true),
                                contacts.Count);

                            contacts.Add(cont);
                        }
                    }

                    UserClassType uct = new UserClassType();
                    uct = (UserClassType)Enum.Parse(typeof(UserClassType), userinfo["class"].ToString(), true);

                    User newUser = new User(
                        int.Parse(userinfo[@"userid"].ToString()),
                        userinfo[@"username"].ToString(),
                        userinfo[@"email"].ToString(),
                        uct,
                        userinfo[@"timezone"].ToString(),
                        userinfo[@"dls"].ToString() == @"1",
                        int.Parse(userinfo[@"plan"].ToString()),
                        int.Parse(userinfo[@"num_reminders"].ToString()),
                        int.Parse(userinfo[@"num_ptp_reminders"].ToString()),
                        userinfo[@"bot"].ToString());


                    newUser.Contacts = contacts;


                    retUsers.Add(newUser);
                }
            }
            catch (Exception ex)
            {
            }


            return(retUsers);
        }
Exemplo n.º 3
0
        public override User GetUserByUsername(string strUsername)
        {
            User      newUser    = null;
            Hashtable userinfo   = new Hashtable();
            string    strRequest = @"<?xml version=""1.0"" encoding=""utf-8""?>
<request version=""2.71828"">
  <function name=""GetUserByUsername"">
      <argument>" + strUsername + @"</argument>
  </function>
</request>
";

            try
            {
                XmlDocument dataDoc = GetDataDocument(strRequest);
                foreach (XmlNode element in dataDoc.SelectNodes(@"/user/*"))
                {
                    if (element.Name.ToLower() != "contacts" && element.Name.ToLower() != "buddies")
                    {
                        userinfo[element.Name.ToLower()] = element.InnerText;
                    }
                }

                UserClassType uct = (UserClassType)Enum.Parse(typeof(UserClassType), userinfo[@"class"].ToString(), true);
                newUser = new User(
                    int.Parse(userinfo[@"userid"].ToString()),
                    userinfo[@"username"].ToString(),
                    userinfo[@"email"].ToString(),
                    uct,
                    userinfo[@"timezone"].ToString(),
                    userinfo[@"dls"].ToString() == @"1",
                    int.Parse(userinfo[@"plan"].ToString()),
                    int.Parse(userinfo[@"num_reminders"].ToString()),
                    int.Parse(userinfo[@"num_ptp_reminders"].ToString()),
                    userinfo[@"bot"].ToString());


                foreach (XmlNode contact in dataDoc.SelectNodes(@"/user/contacts/contact"))
                {
                    Hashtable contactInfo = new Hashtable();
                    foreach (XmlNode contElement in contact.ChildNodes)
                    {
                        contactInfo[contElement.Name] = contElement.InnerText;
                    }

                    newUser.AddContact(new IMContact(
                                           contactInfo[@"login"].ToString(),
                                           (ConnectionType)Enum.Parse(typeof(ConnectionType), contactInfo[@"service"].ToString(), true),
                                           int.Parse(contactInfo[@"priority"].ToString())));
                }



                foreach (XmlNode buddy in dataDoc.SelectNodes(@"/user/buddies/buddy"))
                {
                    Hashtable buddyInfo = new Hashtable();
                    foreach (XmlNode buddyElement in buddy.ChildNodes)
                    {
                        buddyInfo[buddyElement.Name] = buddyElement.InnerText;
                    }

                    newUser.Buddies.Add(buddyInfo["buddy"].ToString().ToLower());
                }
            }
            catch (Exception ex)
            {
            }

            return(newUser);
        }