예제 #1
0
        /// <summary>
        /// Gets settings from data store
        /// </summary>
        /// <param name="exType">Extension Type</param>
        /// <param name="exId">Extension ID</param>
        /// <returns>Settings as Stream</returns>
        public object GetSettings(ExtensionType exType, string exId)
        {
            WidgetData  wd  = new WidgetData();
            XmlDocument xml = new XmlDocument();

            if (_section.DefaultProvider == "XmlBlogProvider")
            {
                Stream stm = (Stream)BlogService.LoadFromDataStore(exType, exId);
                if (stm != null)
                {
                    XmlSerializer x = new XmlSerializer(typeof(XmlDocument));
                    xml = (XmlDocument)x.Deserialize(stm);
                    stm.Close();
                }
            }
            else
            {
                object o = BlogService.LoadFromDataStore(exType, exId);
                if (!string.IsNullOrEmpty((string)o))
                {
                    XmlSerializer serializer = new XmlSerializer(typeof(WidgetData));
                    using (StringReader reader = new StringReader((string)o))
                    {
                        wd = (WidgetData)serializer.Deserialize(reader);
                    }

                    if (wd.Settings.Length > 0)
                    {
                        xml.InnerXml = wd.Settings;
                    }
                }
            }
            return(xml);
        }
예제 #2
0
        /// <summary>
        /// Theme widtegs
        /// </summary>
        public WidgetsVM()
        {
            try
            {
                var packages = Packaging.FileSystem.LoadWidgets();
                AvailableWidgets = new List<WidgetItem>();
                foreach (var pk in packages)
                {
                    AvailableWidgets.Add(new WidgetItem { Id = pk.Id, Name = pk.Title, Title = pk.Title, ShowTitle = false });
                }

                WidgetZones = new List<WidgetZone>();
                WebClient client = new WebClient();
                var html = client.DownloadString(Utils.AbsoluteWebRoot);
                var cnt = 0;
                var tag = "widgetzone_";

                for (int i = 0; i < 10; i++)
                {
                    int from = html.IndexOf(tag, cnt);
                    if (from > 0)
                    {
                        from = from + 11;
                        int to = html.IndexOf("\"", from);
                        var zoneId = html.Substring(from, to - from);
                        var zone = new WidgetZone();
                        zone.Id = zoneId;

                        var xml = RetrieveXml(zoneId);
                        var wd = new WidgetData { Settings = xml.InnerXml };

                        //------------------------------
                        var widgets = xml.SelectSingleNode("widgets");
                        zone.Widgets = new List<WidgetItem>();
                        if (widgets != null)
                        {
                            foreach (XmlNode node in widgets.ChildNodes)
                            {
                                if (node != null && node.Attributes != null)
                                {
                                    var item = new WidgetItem();
                                    item.Id = node.Attributes["id"].InnerText;
                                    item.Name = node.InnerText;
                                    item.Title = node.Attributes["title"].InnerText;
                                    item.ShowTitle = bool.Parse(node.Attributes["showTitle"].InnerText);
                                    zone.Widgets.Add(item);
                                }
                            }
                        }
                        //------------------------------

                        WidgetZones.Add(zone);
                        cnt = to;
                    }
                    else { break; }
                }
            }
            catch (Exception) { }
        }
예제 #3
0
        /// <summary>
        /// Theme widtegs
        /// </summary>
        public WidgetsVM()
        {
            try
            {
                WidgetZones = new List<WidgetZone>();
                WebClient client = new WebClient();
                var html = client.DownloadString(Utils.AbsoluteWebRoot);
                var cnt = 0;
                var tag = "widgetzone_";

                for (int i = 0; i < 10; i++)
                {
                    int from = html.IndexOf(tag, cnt);
                    if (from > 0)
                    {
                        from = from + 11;
                        int to = html.IndexOf("\"", from);
                        var zoneId = html.Substring(from, to - from);
                        var zone = new WidgetZone();
                        zone.Id = zoneId;

                        //var ws = new WidgetSettings(zoneId);

                        //var abc = ws.GetSettings();

                        // var x = (StringDictionary)ws.GetSettings();


                        var xml = RetrieveXml(zoneId);
                        var wd = new WidgetData { Settings = xml.InnerXml };

                        //------------------------------
                        var widgets = xml.SelectSingleNode("widgets");
                        if (widgets != null)
                        {
                            zone.Widgets = new List<WidgetItem>();
                            foreach (XmlNode node in widgets.ChildNodes)
                            {
                                if (node != null && node.Attributes != null)
                                {
                                    var item = new WidgetItem();
                                    item.Id = new Guid(node.Attributes["id"].InnerText);
                                    item.Title = node.Attributes["title"].InnerText;
                                    item.ShowTitle = bool.Parse(node.Attributes["showTitle"].InnerText);
                                    zone.Widgets.Add(item);
                                }
                            }
                        }
                        //------------------------------

                        WidgetZones.Add(zone);
                        cnt = to;
                    }
                    else { break; }
                }
            }
            catch (Exception) { }
        }
        /// <summary>
        /// Saves XML document to data storage
        /// </summary>
        /// <param name="extensionType">
        /// Extension Type
        /// </param>
        /// <param name="extensionId">
        /// Extension ID
        /// </param>
        /// <param name="settings">
        /// Settings as XML document
        /// </param>
        /// <returns>
        /// True if saved
        /// </returns>
        public bool SaveSettings(ExtensionType extensionType, string extensionId, object settings)
        {
            var xml = (XmlDocument)settings;

            if (Section.DefaultProvider == "XmlBlogProvider")
            {
                BlogService.SaveToDataStore(extensionType, extensionId, xml);
            }
            else
            {
                var wd = new WidgetData {
                    Settings = xml.InnerXml
                };
                BlogService.SaveToDataStore(extensionType, extensionId, wd);
            }

            return(true);
        }
예제 #5
0
        /// <summary>
        /// Saves XML document to data storage
        /// </summary>
        /// <param name="exType">Extension Type</param>
        /// <param name="exId">Extension ID</param>
        /// <param name="settings">Settings as XML document</param>
        /// <returns>True if saved</returns>
        public bool SaveSettings(ExtensionType exType, string exId, object settings)
        {
            try
            {
                XmlDocument xml = (XmlDocument)settings;

                if (_section.DefaultProvider == "XmlBlogProvider")
                {
                    BlogService.SaveToDataStore(exType, exId, xml);
                }
                else
                {
                    WidgetData wd = new WidgetData();
                    wd.Settings = xml.InnerXml;
                    BlogService.SaveToDataStore(exType, exId, wd);
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
        /// Saves XML document to data storage
        /// </summary>
        /// <param name="extensionType">
        /// Extension Type
        /// </param>
        /// <param name="extensionId">
        /// Extension ID
        /// </param>
        /// <param name="settings">
        /// Settings as XML document
        /// </param>
        /// <returns>
        /// True if saved
        /// </returns>
        public bool SaveSettings(ExtensionType extensionType, string extensionId, object settings)
        {
            var xml = (XmlDocument)settings;

            if (Section.DefaultProvider == "XmlBlogProvider")
            {
                BlogService.SaveToDataStore(extensionType, extensionId, xml);
            }
            else
            {
                var wd = new WidgetData { Settings = xml.InnerXml };
                BlogService.SaveToDataStore(extensionType, extensionId, wd);
            }

            return true;
        }
예제 #7
0
        private void AddZones(string html)
        {
            try
            {
                var cnt = 0;
                bool found = false;
                var tag = "widgetzone_";

                for (int i = 0; i < 10; i++)
                {
                    int from = html.IndexOf(tag, cnt);
                    if (from > 0)
                    {
                        from = from + 11;
                        int to = html.IndexOf("\"", from);
                        var zoneId = html.Substring(from, to - from);
                        var zone = new WidgetZone();
                        zone.Id = zoneId;

                        var xml = RetrieveXml(zoneId);
                        var wd = new WidgetData { Settings = xml.InnerXml };

                        var widgets = xml.SelectSingleNode("widgets");
                        zone.Widgets = new List<WidgetItem>();
                        if (widgets != null)
                        {
                            foreach (XmlNode node in widgets.ChildNodes)
                            {
                                if (node != null && node.Attributes != null)
                                {
                                    var item = new WidgetItem();
                                    item.Id = node.Attributes["id"].InnerText;
                                    item.Name = node.InnerText;
                                    item.Title = node.Attributes["title"].InnerText;
                                    item.ShowTitle = bool.Parse(node.Attributes["showTitle"].InnerText);
                                    zone.Widgets.Add(item);
                                }
                            }
                        }
                        found = false;
                        if (WidgetZones.Count > 0)
                        {
                            foreach (var z in WidgetZones)
                            {
                                if(z.Id == zone.Id)
                                {
                                    found = true;
                                    break;
                                }
                            }
                        }
                        if (!found)
                        {
                            WidgetZones.Add(zone);
                        }
                        cnt = to;
                    }
                    else { break; }
                }
            }
            catch (Exception) { }
        }