コード例 #1
0
        public BulkLoadItem(BulkLoadAction loadAction, BulkItem item)
            : base(item)
        {
            this.LoadAction = loadAction;

            // When creating bucket folder items, we don't want those items to be bucketed again.
            if (BucketConfigurationSettings.BucketTemplateId.Guid.Equals(TemplateId))
            {
                Bucketed = true;
            }
        }
コード例 #2
0
        public virtual BulkLoadItem ToBulkLoadItem(IItemData itemData, BulkLoadContext context,
                                                   BulkLoadAction loadAction)
        {
            if (itemData == null)
            {
                throw new ArgumentNullException(nameof(itemData));
            }
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var bulkItem = new BulkLoadItem(
                loadAction,
                itemData.Id,
                itemData.TemplateId,
                itemData.BranchId,
                itemData.ParentId,
                itemData.Path,
                sourceInfo: itemData.SerializedItemId);

            foreach (var sharedField in itemData.SharedFields)
            {
                AddSyncField(context, bulkItem, sharedField);
            }

            foreach (var languagedFields in itemData.UnversionedFields)
            {
                foreach (var field in languagedFields.Fields)
                {
                    AddSyncField(context, bulkItem, field, languagedFields.Language.Name);
                }
            }

            foreach (var versionFields in itemData.Versions)
            {
                foreach (var field in versionFields.Fields)
                {
                    AddSyncField(context, bulkItem, field, versionFields.Language.Name, versionFields.VersionNumber);
                }

                AddStatisticsFieldsWhenMissing(bulkItem, versionFields.Language.Name, versionFields.VersionNumber);
            }

            // Serialized items don't contain the original blob id.
            context.LookupBlobIds = true;

            return(bulkItem);
        }
コード例 #3
0
        public BulkLoadItem(BulkLoadAction loadAction, Guid id, Guid templateId, Guid masterId, Guid parentId,
                            string itemPath, string templateName = null, object sourceInfo = null)
            : base(id, templateId, masterId, parentId, itemPath)
        {
            if (templateId == Guid.Empty && loadAction != BulkLoadAction.UpdateExistingItem)
            {
                throw new ArgumentException("Template id of item should not be an empty Guid.", nameof(id));
            }

            this.LoadAction   = loadAction;
            this.TemplateName = templateName;
            this.SourceInfo   = sourceInfo;

            // When creating bucket folder items, we don't want those items to be bucketed again.
            if (BucketConfigurationSettings.BucketTemplateId.Guid.Equals(templateId))
            {
                Bucketed = true;
            }
        }
コード例 #4
0
 public BulkLoadItem(BulkLoadAction loadAction, Template template, Item parent, string name)
     : this(loadAction, Guid.NewGuid(), template.ID.Guid, Guid.Empty, parent.ID.Guid,
            parent.Paths.Path + "/" + name, template.Name)
 {
 }
コード例 #5
0
 public BulkLoadItem(BulkLoadAction loadAction, Guid templateId, string itemPath, Guid id,
                     string templateName = null, object sourceInfo = null)
     : this(loadAction, id, templateId, Guid.Empty, Guid.NewGuid(),
            itemPath, templateName, sourceInfo)
 {
 }
コード例 #6
0
            public override bool Read()
            {
                if (!base.Read())
                {
                    // Clear the fields.
                    for (var i = 0; i < _fields.Length; i++)
                    {
                        _fields[i] = null;
                    }
                    return(false);
                }

                var item = (BulkLoadItem)Current.Item;

                ReadItemCount++;

                if (!HasFieldDependencies && (Current.DependsOnCreate || Current.DependsOnUpdate))
                {
                    HasFieldDependencies = true;
                }

                if (!HasPathExpressions && item.ItemLookupPath != null)
                {
                    HasPathExpressions = true;
                }

                if (!HasBlobFields && Current.IsBlob)
                {
                    HasBlobFields = true;
                }

                BulkLoadAction fieldAction = BulkLoadAction.AddOnly;
                //           switch (item.LoadAction)
                //           {
                //               case BulkLoadAction.AddOnly:
                //                   fieldAction = BulkLoadAction.AddOnly;
                //                   break;
                //case BulkLoadAction.AddItemOnly:
                //	fieldAction = BulkLoadAction.AddItemOnly;
                //	break;
                //case BulkLoadAction.Update:
                //                   fieldAction = BulkLoadAction.Update;
                //                   break;
                //               case BulkLoadAction.UpdateExistingItem:
                //                   fieldAction = BulkLoadAction.Update;
                //                   break;
                //               case BulkLoadAction.Revert:
                //                   fieldAction = BulkLoadAction.Update;
                //                   break;
                //               case BulkLoadAction.RevertTree:
                //                   fieldAction = BulkLoadAction.Update;
                //                   break;
                //               default:
                //                   fieldAction = BulkLoadAction.Update;
                //                   break;
                //           }

                var unversioned = Current as UnversionedBulkField;
                var versioned   = Current as VersionedBulkField;

                _fields[0] = Current.Item.Id;
                _fields[1] = string.IsNullOrEmpty(Current.Item.Name) ? DBNull.Value : (object)Current.Item.Name;
                _fields[2] = Current.Item.TemplateId != Guid.Empty ? (object)Current.Item.TemplateId : DBNull.Value;
                _fields[3] = (object)item.TemplateName ?? DBNull.Value;
                _fields[4] = Current.Item.MasterId;
                _fields[5] = Current.Item.ParentId;
                _fields[6] = (object)item.ItemPath ?? DBNull.Value;
                _fields[7] = (object)item.ItemLookupPath ?? DBNull.Value;
                _fields[8] = (object)item.DependsOnItemCreation ?? DBNull.Value;
                _fields[9] = Current.Item.Id;

                _fields[10] = item.LoadAction.ToString();
                _fields[11] = item.SourceInfo ?? DBNull.Value;

                _fields[12] = Current.Id;
                _fields[13] = (object)Current.Name ?? DBNull.Value;
                _fields[14] = unversioned != null ? (object)unversioned.Language : DBNull.Value;
                _fields[15] = versioned != null ? (object)versioned.Version : DBNull.Value;
                _fields[16] = Current.Value != null ? (object)Current.Value : DBNull.Value;

                // Data for blob will be fetched through GetStream method.
                _fields[17] = Current.Blob != null ? (object)null : DBNull.Value;
                _fields[18] = Current.IsBlob;

                _fields[19] = fieldAction.ToString();

                _fields[20] = Current.DependsOnCreate;
                _fields[21] = Current.DependsOnUpdate;

                // Will be used to remove duplicates after LookupExpressions have been processed
                _fields[22] = item.Deduplicate;

                // Will be detected in database, don't allow mistakes!
                //_fields[23] = unversioned == null; // IsShared
                //_fields[24] = unversioned != null && versioned == null; // IsUnversioned

                return(true);
            }