Пример #1
0
        /// <summary>Updates a list item by providing its content.</summary>
        /// <param name="listItemId">The list item ID.</param>
        /// <param name="content">The content which must match the item's schema ID.</param>
        /// <param name="resolveBehaviors">List of enum that control which parts of the list item are resolved and returned.</param>
        /// <param name="allowMissingDependencies">Allow creating <see cref="ListItem"/>s that refer to list items or contents that don't exist in the system.</param>
        /// <param name="timeout">The timeout in milliseconds to wait for completion.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>The updated <see cref="ListItemDetail"/>.</returns>
        public async Task <ListItemDetail> UpdateAsync(string listItemId, object content, IEnumerable <ListItemResolveBehavior> resolveBehaviors = null, bool allowMissingDependencies = false, TimeSpan?timeout = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            var updateRequest = new ListItemUpdateRequest()
            {
                Content = content
            };

            return(await UpdateAsync(listItemId, updateRequest, resolveBehaviors, allowMissingDependencies, timeout, cancellationToken).ConfigureAwait(false));
        }
Пример #2
0
        /// <summary>Updates a list item by providing its content.</summary>
        /// <param name="listItemId">The list item ID.</param>
        /// <param name="content">The content which must match the item's schema ID.</param>
        /// <param name="resolve">Resolves the data of referenced list items into the contents's content.</param>
        /// <param name="allowMissingDependencies">Allow creating <see cref="ListItem"/>s that refer to list items or contents that don't exist in the system.</param>
        /// <param name="timeout">The timeout in milliseconds to wait for completion.</param>
        /// <param name="patterns">Comma-separated list of display pattern ids. Resolves display values of referenced list items where the display pattern id matches.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>The updated <see cref="ListItemDetail"/>.</returns>
        public async Task <ListItemDetail> UpdateAsync(string listItemId, object content, bool resolve = false, bool allowMissingDependencies = false, TimeSpan?timeout = null, IEnumerable <DisplayPatternType> patterns = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            var updateRequest = new ListItemUpdateRequest()
            {
                Id      = listItemId,
                Content = content
            };

            return(await UpdateAsync(updateRequest, resolve, allowMissingDependencies, timeout, patterns, cancellationToken).ConfigureAwait(false));
        }
Пример #3
0
        private async Task ImportListItemsAsync(string schemaId, IList <PictureparkListItem> listItems)
        {
            try
            {
                var existingListItems = await GetListItemsAsync(schemaId);

                foreach (var listItem in listItems)
                {
                    var existingListItem = existingListItems.FirstOrDefault(existingListItemInner =>
                                                                            string.Equals(existingListItemInner.SmintIoKey, listItem.SmintIoKey));

                    if (existingListItem != null)
                    {
                        var listItemUpdateRequest = new ListItemUpdateRequest()
                        {
                            Content = listItem.Content
                        };

                        await _client.ListItem.UpdateAsync(existingListItem.PictureparkListItemId, listItemUpdateRequest);

                        listItem.SmintIoMetadataElement.TargetMetadataUuid = existingListItem.PictureparkListItemId;
                    }
                    else
                    {
                        var listItemCreateRequest = new ListItemCreateRequest()
                        {
                            Content         = listItem.Content,
                            ContentSchemaId = schemaId
                        };

                        var listItemDetail = await _client.ListItem.CreateAsync(listItemCreateRequest);

                        listItem.SmintIoMetadataElement.TargetMetadataUuid = listItemDetail.Id;
                    }
                }

                var noMoreExistingListItems = existingListItems.Where(existingListItemInner =>
                                                                      !listItems.Any(listItem => string.Equals(existingListItemInner.SmintIoKey, listItem.SmintIoKey)));

                foreach (var noMoreExistingListItem in noMoreExistingListItems)
                {
                    await _client.ListItem.DeleteAsync(noMoreExistingListItem.PictureparkListItemId);
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"Error importing list items");

                throw;
            }
        }
Пример #4
0
        public async Task ShouldCreateAndUpdateObject()
        {
            // Arrange
            var objectName        = "ThisObjectD" + new Random().Next(0, 999999);
            var createManyRequest = new ListItemCreateManyRequest()
            {
                AllowMissingDependencies = false,
                Items = new List <ListItemCreateRequest>
                {
                    new ListItemCreateRequest
                    {
                        ContentSchemaId = nameof(Tag),
                        Content         = new Tag {
                            Name = objectName
                        }
                    }
                }
            };

            var results = await _client.ListItem.CreateManyAsync(createManyRequest).ConfigureAwait(false);

            var detail = await results.FetchDetail().ConfigureAwait(false);

            var itemId = detail.SucceededIds.First();

            // Act
            var request = new ListItemUpdateRequest
            {
                Content = new Tag {
                    Name = "Foo"
                }
            };
            await _client.ListItem.UpdateAsync(itemId, request).ConfigureAwait(false);

            // Assert
            var newItem = await _client.ListItem.GetAsync(itemId, new[] { ListItemResolveBehavior.Content }).ConfigureAwait(false);

            Assert.Equal("Foo", newItem.ConvertTo <Tag>().Name);
        }
Пример #5
0
        public async Task ShouldCreateAndUpdateObject()
        {
            /// Arrange
            var objectName        = "ThisObjectD" + new Random().Next(0, 999999);
            var createManyRequest = new ListItemCreateManyRequest()
            {
                AllowMissingDependencies = false,
                Requests = new List <ListItemCreateRequest>
                {
                    new ListItemCreateRequest
                    {
                        ContentSchemaId = nameof(Tag),
                        Content         = new Tag {
                            Name = objectName
                        }
                    }
                }
            };

            var results = await _client.ListItems.CreateManyAsync(createManyRequest);

            var result = results.First();

            /// Act
            var request = new ListItemUpdateRequest
            {
                Id      = result.Id,
                Content = new Tag {
                    Name = "Foo"
                }
            };
            await _client.ListItems.UpdateAsync(request);

            /// Assert
            var newItem = await _client.ListItems.GetAsync(result.Id, true);

            Assert.Equal("Foo", newItem.ConvertTo <Tag>(nameof(Tag)).Name);
        }
Пример #6
0
 /// <summary>Updates a list item.</summary>
 /// <param name="updateRequest">The update request.</param>
 /// <param name="resolve">Resolves the data of referenced list items into the contents's content.</param>
 /// <param name="allowMissingDependencies">Allow creating <see cref="ListItem"/>s that refer to list items or contents that don't exist in the system.</param>
 /// <param name="timeout">The timeout in milliseconds to wait for completion.</param>
 /// <param name="patterns">Comma-separated list of display pattern ids. Resolves display values of referenced list items where the display pattern id matches.</param>
 /// <param name="cancellationToken">The cancellation token.</param>
 /// <returns>The updated <see cref="ListItemDetail"/>.</returns>
 public async Task <ListItemDetail> UpdateAsync(ListItemUpdateRequest updateRequest, bool resolve = false, bool allowMissingDependencies = false, TimeSpan?timeout = null, IEnumerable <DisplayPatternType> patterns = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(await UpdateCoreAsync(updateRequest.Id, updateRequest, resolve, allowMissingDependencies, timeout, patterns, cancellationToken).ConfigureAwait(false));
 }