Beispiel #1
0
        private static void WriteSingleDetail <T>(XmlTextWriter writer, string key, T detail)
        {
            var type = SerializationUtility.GetTypeAndAssemblyName(typeof(T));

            using (var td = new ElementWriter("li", writer))
            {
                td.WriteAttribute("data-key", key);
                td.WriteAttribute("data-type", type);
                try { td.WriteCData(detail.ToString()); }
                catch { td.Write("NULL"); }
            }
        }
Beispiel #2
0
        public virtual void WriteChildPartsWithZones(ContentItem item, ExportOptions options, XmlTextWriter writer)
        {
            var itemsInZones = item.Children.GroupBy(x => x.ZoneName);

            foreach (var zone in itemsInZones)
            {
                using (var zoneElement = new ElementWriter("section", writer))
                {
                    zoneElement.WriteAttribute("class", "zone");
                    zoneElement.WriteAttribute("id", zone.Key);

                    foreach (var childItem in zone)
                    {
                        using (var partElement = new ElementWriter("part", writer))
                        {
                            partElement.WriteAttribute("id", childItem.ID);
                            WriteSingleItem(childItem, options, writer);
                            WriteChildPartsWithZones(childItem, options, writer); // recursively until there are no more zones
                        }
                    }
                }
            }
        }
Beispiel #3
0
        public virtual void Write(TextWriter output, IFeed feed)
        {
            XmlTextWriter xtw = new XmlTextWriter(output);

            xtw.Formatting = Formatting.Indented;
            xtw.WriteStartDocument();

            using (ElementWriter rssElement = new ElementWriter("rss", xtw))
            {
                rssElement.WriteAttribute("version", "2.0");
                rssElement.WriteAttribute("xmlns", "xsd", null, "http://www.w3.org/2001/XMLSchema");
                using (new ElementWriter("channel", xtw))
                {
                    IEnumerable <ISyndicatable> items = feed.GetItems();
                    WriteChannelInfo(xtw, feed);
                    foreach (ISyndicatable item in items)
                    {
                        WriteItem(item, xtw);
                    }
                }
            }
            xtw.WriteEndDocument();
        }
Beispiel #4
0
        public virtual void WriteSingleItem(ContentItem item, ExportOptions options, XmlTextWriter writer)
        {
            var authorizedRolesList = String.Join("|",
                                                  from x in item.AuthorizedRoles
                                                  let y = x.ToString()
                                                          select y);

            using (var properties = new ElementWriter("ul", writer))
            {
                properties.WriteAttribute("class", "n2-itemproperties");
                properties.WriteAttribute("id", "n2-item" + item.ID);
                WriteSingleDetail(writer, "id", item.ID);
                WriteSingleDetail(writer, "name", item.ID.ToString() == item.Name ? "" : item.Name);

                if (item.Parent != null)
                {
                    if (item.Parent.ID != 0)
                    {
                        WriteSingleDetail(writer, "parent", item.Parent.ID.ToString());
                    }
                    else
                    {
                        WriteSingleDetail(writer, "parent", item.Parent.VersionOf.ID.ToString());
                        if (item.Parent.GetVersionKey() != null)
                        {
                            WriteSingleDetail(writer, "parentVersionKey", item.Parent.GetVersionKey());
                        }
                    }
                }
                WriteSingleDetail(writer, "title", item.Title);
                WriteSingleDetail(writer, "zoneName", item.ZoneName);
                WriteSingleDetail(writer, "templateKey", item.TemplateKey);
                WriteSingleDetail(writer, "translationKey", item.TranslationKey ?? 0);
                WriteSingleDetail(writer, "state", item.State.ToString());
                WriteSingleDetail(writer, "created", item.Created);
                WriteSingleDetail(writer, "updated", item.Updated);
                WriteSingleDetail(writer, "published", item.Published);
                WriteSingleDetail(writer, "expires", item.Expires);
                WriteSingleDetail(writer, "sortOrder", item.SortOrder);
                WriteSingleDetail(writer, "url", item.Url);
                WriteSingleDetail(writer, "visible", item.Visible);
                WriteSingleDetail(writer, "savedBy", item.SavedBy);
                WriteSingleDetail(writer, "typeName", SerializationUtility.GetTypeAndAssemblyName(item.GetContentType()));
                WriteSingleDetail(writer, "discriminator", _definitions.GetDefinition(item).Discriminator);
                WriteSingleDetail(writer, "versionIndex", item.VersionIndex);
                WriteSingleDetail(writer, "ancestralTrail", item.AncestralTrail);
                WriteSingleDetail(writer, "alteredPermissions", item.AlteredPermissions.ToString());
                WriteSingleDetail(writer, "childState", item.ChildState.ToString());
                if (item.VersionOf.HasValue)
                {
                    Debug.Assert(item.VersionOf.ID != null, "item.VersionOf.ID != null");
                    WriteSingleDetail(writer, "versionOf", item.VersionOf.ID.Value);
                }

                WriteSingleDetail(writer, "authorizedRoles", authorizedRolesList);
                //WriteSingleDetail(writer, "Extension", item.Extension);
                //WriteSingleDetail(writer, "IconUrl", item.IconUrl);
                //WriteSingleDetail(writer, "IsExpired", item.IsExpired());
                //WriteSingleDetail(writer, "IsPage", item.IsPage);
                //WriteSingleDetail(writer, "Path", item.Path);


                //foreach (ContentDetail d in item.Details)
                //  using (var html = new ElementWriter(C_PROPERTYTAG, writer))
                //  {
                //      html.WriteAttribute("data-type", d.ValueTypeKey);
                //      html.WriteAttribute("data-name", d.Name);
                //      html.WriteCData(d.Value.ToString());
                //  }
            }

            dw.Write(item, writer);
            dww.Write(item, writer);
        }