SitecoreData.DataProviders.DataProviderWrapper.CreateItem C# (CSharp) Method

CreateItem() public method

public CreateItem ( ID itemId, string itemName, ID templateId, ItemDefinition parent, CallContext context ) : bool
itemId ID
itemName string
templateId ID
parent ItemDefinition
context CallContext
return bool
        public override bool CreateItem(ID itemId, string itemName, ID templateId, ItemDefinition parent, CallContext context)
        {
            var current = Provider.GetItem(itemId.ToGuid());

            if (current != null)
            {
                return false;
            }

            if (parent != null)
            {
                var parentItem = Provider.GetItem(parent.ID.ToGuid());

                if (parentItem == null)
                {
                    return false;
                }
            }

            var provider = Provider.WritableProvider;

            Guid parentId;

            if (parent == null)
            {
                parentId = Guid.Empty;
            }
            else
            {
                parentId = parent.ID.ToGuid();
            }

            provider.CreateItem(itemId.ToGuid(), itemName, templateId.ToGuid(), parentId);

            return true;
        }

Usage Example

Exemplo n.º 1
0
        private static void TransferSingleItem(Item item, DataProviderWrapper provider, Action<string> callback)
        {
            ItemDefinition parentDefinition = null;

            if (item.Parent != null)
            {
                parentDefinition = new ItemDefinition(item.Parent.ID, item.Parent.Name, item.Parent.TemplateID,
                                                      item.Parent.BranchId);
            }

            if (callback != null)
            {
                callback(item.Paths.FullPath);
            }

            // Create the item in database
            if (provider.CreateItem(item.ID, item.Name, item.TemplateID, parentDefinition, null))
            {
                foreach (var language in item.Languages)
                {
                    using (new LanguageSwitcher(language))
                    {
                        var itemInLanguage = item.Database.GetItem(item.ID);

                        if (itemInLanguage != null)
                        {
                            // Add a version
                            var itemDefinition = provider.GetItemDefinition(itemInLanguage.ID, null);

                            // TODO: Add all version and not just v1
                            provider.AddVersion(itemDefinition, new VersionUri(language, Version.First), null);

                            // Send the field values to the provider
                            var changes = new ItemChanges(itemInLanguage);

                            foreach (Field field in itemInLanguage.Fields)
                            {
                                changes.FieldChanges[field.ID] = new FieldChange(field, field.Value);
                            }

                            provider.SaveItem(itemDefinition, changes, null);
                        }
                    }
                }
            }
        }