Example #1
0
        private void Handle(XmlNodeList nodeList)
        {
            if (nodeList == null || nodeList.Count == 0)
            {
                return;
            }

            foreach (XmlNode node in nodeList)
            {
                if (!String.IsNullOrEmpty(node.InnerText))
                {
                    // REMARK: All the MSNObject must use MSNObject.GetDecodeString(string) to get the decoded conext.
                    switch (node.Name)
                    {
                    case "UserTileLocation":
                        UserTileLocation = MSNObject.GetDecodeString(node.InnerText);
                        break;

                    case "FriendlyName":
                        FriendlyName = node.InnerText;
                        break;

                    case "RUM":
                        RUM = System.Web.HttpUtility.UrlDecode(node.InnerText, System.Text.Encoding.UTF8);
                        break;

                    case "PSM":
                        Message = System.Web.HttpUtility.UrlDecode(node.InnerText, System.Text.Encoding.UTF8);
                        break;

                    case "DDP":
                        DDP = System.Web.HttpUtility.UrlDecode(node.InnerText, System.Text.Encoding.UTF8);
                        break;

                    case "ColorScheme":
                        ColorScheme = ColorTranslator.FromOle(int.Parse(node.InnerText));
                        break;

                    case "Scene":
                        Scene = MSNObject.GetDecodeString(node.InnerText);
                        break;

                    case "SignatureSound":
                        SignatureSound = System.Web.HttpUtility.UrlDecode(node.InnerText, System.Text.Encoding.UTF8);
                        break;

                    case "CurrentMedia":

                        string mediaString = System.Web.HttpUtility.UrlDecode(node.InnerText, System.Text.Encoding.UTF8);

                        if (mediaString.Length > 0)
                        {
                            string[] vals = mediaString.Split(new string[] { @"\0" }, StringSplitOptions.None);

                            if (!String.IsNullOrEmpty(vals[0]))
                            {
                                appName = vals[0];
                            }

                            switch (vals[1])
                            {
                            case "Music":
                                MediaType = MediaType.Music;
                                break;

                            case "Games":
                                MediaType = MediaType.Games;
                                break;

                            case "Office":
                                MediaType = MediaType.Office;
                                break;
                            }

                            /*
                             * 0
                             * 1 Music
                             * 2 1
                             * 3 {0} - {1}
                             * 4 Evanescence
                             * 5 Call Me When You're Sober
                             * 6 Album
                             * 7 WMContentID
                             * 8
                             */
                            //vals[2] = Enabled/Disabled

                            Format = vals[3];

                            int size = vals.Length - 4;

                            CurrentMediaContent = new String[size];

                            for (int i = 0; i < size; i++)
                            {
                                CurrentMediaContent[i] = vals[i + 4];
                            }
                        }
                        break;
                    }
                }
            }
        }