当前位置: 首页>>代码示例>>C#>>正文


C# IContent.Children方法代码示例

本文整理汇总了C#中IContent.Children方法的典型用法代码示例。如果您正苦于以下问题:C# IContent.Children方法的具体用法?C# IContent.Children怎么用?C# IContent.Children使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IContent的用法示例。


在下文中一共展示了IContent.Children方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: AddUrlMapping

        public static bool AddUrlMapping(IContent content, int rootNodeId, string url, AutoTrackingTypes type, bool isChild = false)
        {
            if (url != "#" && content.Template != null && content.Template.Id > 0)
            {
                string notes = isChild ? "An ancestor" : "This page";
                switch (type)
                {
                    case AutoTrackingTypes.Moved:
                        notes += " was moved";
                        break;
                    case AutoTrackingTypes.Renamed:
                        notes += " was renamed";
                        break;
                    case AutoTrackingTypes.UrlOverwritten:
                        notes += "'s property 'umbracoUrlName' changed";
                        break;
                }

                url = UrlTrackerHelper.ResolveShortestUrl(url);

                if (!string.IsNullOrEmpty(url))
                {
                    string query = "SELECT 1 FROM icUrlTracker WHERE RedirectNodeId = @nodeId AND OldUrl = @url";
                    int exists = _sqlHelper.ExecuteScalar<int>(query, _sqlHelper.CreateParameter("nodeId", content.Id), _sqlHelper.CreateStringParameter("url", url));

                    if (exists != 1)
                    {
                        LoggingHelper.LogInformation("UrlTracker Repository | Adding mapping for node id: {0} and url: {1}", new string[] { content.Id.ToString(), url });

                        query = "INSERT INTO icUrlTracker (RedirectRootNodeId, RedirectNodeId, OldUrl, Notes) VALUES (@rootNodeId, @nodeId, @url, @notes)";
                        _sqlHelper.ExecuteNonQuery(query, _sqlHelper.CreateParameter("rootNodeId", rootNodeId), _sqlHelper.CreateParameter("nodeId", content.Id), _sqlHelper.CreateStringParameter("url", url), _sqlHelper.CreateStringParameter("notes", notes));

                        if (content.Children().Any())
                        {
                            foreach (IContent child in content.Children())
                            {
                                Node node = new Node(child.Id);
                                AddUrlMapping(child, rootNodeId, node.NiceUrl, type, true);
                            }
                        }

                        return true;
                    }
                }
            }
            return false;
        }
开发者ID:sheryever,项目名称:UrlTracker,代码行数:47,代码来源:UrlTrackerRepository.cs

示例2: UpdateAttendeeList

        private void UpdateAttendeeList(IContent content, string attendeesJson)
        {
            var attendeesDic = JsonConvert.DeserializeObject<IEnumerable<Attendee>>(attendeesJson).ToDictionary(x => x.Id, x => x);

            // check/create folder
            var registrantsFolder = content.Children().FirstOrDefault(x => x.ContentType.Alias == "Registrants");
            if (registrantsFolder == null)
            {
                registrantsFolder = Services.ContentService.CreateContent("Registrants", content.Id, "Registrants");
                Services.ContentService.PublishWithStatus(registrantsFolder);
            }

            var existingAttendees = new List<string>();
            foreach (var oldPerson in registrantsFolder.Children())
            {
                if (attendeesDic.ContainsKey(oldPerson.Id.ToString()))
                {
                    var newPerson = attendeesDic[oldPerson.Id.ToString()];
                    if (oldPerson.GetValue<string>("name") != newPerson.Name ||
                        oldPerson.GetValue<string>("email") != newPerson.Email ||
                        oldPerson.GetValue<string>("phoneNumber") != newPerson.Phone)
                    {
                        // edit
                        oldPerson.SetValue("name", newPerson.Name);
                        oldPerson.SetValue("email", newPerson.Email);
                        oldPerson.SetValue("phoneNumber", newPerson.Phone);
                        Services.ContentService.PublishWithStatus(oldPerson);
                    }
                    existingAttendees.Add(oldPerson.Id.ToString());
                }
                else
                {
                    // delete
                    Services.ContentService.Delete(oldPerson);
                }
            }

            foreach (var person in attendeesDic.Values)
            {
                if (existingAttendees.Contains(person.Id)) continue;
                // new
                var newperson = Services.ContentService.CreateContent(person.Name, registrantsFolder.Id, "Person");
                newperson.SetValue("name", person.Name);
                newperson.SetValue("email", person.Email);
                newperson.SetValue("phoneNumber", person.Phone);
                Services.ContentService.PublishWithStatus(newperson);
            }
        }
开发者ID:AzarinSergey,项目名称:project-site,代码行数:48,代码来源:ArborEventController.cs

示例3: ExportContent

        private XElement ExportContent(IContent item)
        {
            LogHelper.Info<BasicNavParser>("Exporting {0}", () => item.Name);

            var node = uSyncCore.Content.Export(item);

            if (item.Children().Count() > 0)
            {
                var childHolder = new XElement("Children");

                foreach (var child in item.Children())
                {
                    var childNode = ExportContent(child);

                    childHolder.Add(childNode);
                }

                node.Add(childHolder);
            }

            return node;
        }
开发者ID:KevinJump,项目名称:LocalGovStarterKit-Old,代码行数:22,代码来源:BasicNavParser.cs

示例4: GenerateJsonForTree

        private Node GenerateJsonForTree(IContent content)
        {
            var isFolder = content.Children().Any();

            var temp = new Node
            {
                title = content.Name,
                key = content.Id.ToString(),
                folder = isFolder,
                lazy = isFolder
            };

            return temp;
        }
开发者ID:EnjoyDigital,项目名称:Conveyor,代码行数:14,代码来源:ContentConveyorController.cs


注:本文中的IContent.Children方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。