Exemplo n.º 1
0
        protected Item AddSubItems(Item parentItem, Node parentNode, int courseId, ManifestManager helper, ref Manifest manifest)
        {
            var nodes = parentNode == null?GetNodes(courseId) : GetNodes(courseId, parentNode.Id);

            foreach (var node in nodes)
            {
                if (node.IsFolder)
                {
                    var item = helper.CreateItem();
                    item.Title = node.Name;

                    if (node.Sequencing != null)
                    {
                        var xml = new XmlSerializer(typeof(Sequencing));
                        item.Sequencing = (Sequencing)xml.DeserializeXElement(node.Sequencing);
                    }

                    item = AddSubItems(item, node, courseId, helper, ref manifest);

                    parentItem = ManifestManager.AddItem(parentItem, item);
                }
                else
                {
                    var files = new List <ManifestModels.ResourceModels.File>();
                    files.Add(new ManifestModels.ResourceModels.File(node.Id + ".html"));

                    var resource = helper.CreateResource(ScormType.SCO, files, new[] { _ResourceIdForTemplateFiles });
                    resource.Href = node.Id + ".html";

                    manifest.Resources = ManifestManager.AddResource(manifest.Resources, resource);

                    var item = helper.CreateItem(resource.Identifier);
                    item.Title = node.Name;

                    if (node.Sequencing != null)
                    {
                        var xml = new XmlSerializer(typeof(Sequencing));
                        item.Sequencing = (Sequencing)xml.DeserializeXElement(node.Sequencing);
                    }

                    parentItem = ManifestManager.AddItem(parentItem, item);
                }
            }

            return(parentItem);
        }