Ejemplo n.º 1
0
        public async Task <ContentSearchResult> SearchContent(ContentSearchRequest contentsSearch)
        {
            if (contentsSearch.GetDepth() != ContentsSearchDepth.Item)
            {
                throw new UnsupportedFeatureException($"{contentsSearch.GetDepth()}  not supported by Contentful provider");
            }

            var entry = await _query.GetContentItem(new ContentItemReference
            {
                Id     = contentsSearch.Id,
                Locale = contentsSearch.Language,
            }, contentsSearch.PublishingTarget);

            var contentType = _query.GetContentType(entry);

            return(ConvertToContentSearchResult(entry, contentType, ParsePublishingTarget(contentsSearch.PublishingTarget)));
        }
        public async Task <Unit> Handle(UpdateItemCommand request, CancellationToken cancellationToken)
        {
            var contentManagementClient = _factory.GetContentManagementClient();

            var entry = await _query.GetContentItem(request.ContentItem.GetReference(), PublishingTarget.Preview);

            var contentType = _query.GetContentType(request.ContentItem.Info.TemplateId);

            var newEntry = _converter.TransformContentItem(entry, request.ContentItem, contentType);

            await contentManagementClient.UpdateEntryForLocale(newEntry, request.ContentItem.Info.Id, request.ContentItem.Info.Language);

            return(Unit.Value);
        }
        public async Task <ContentItemReference> Handle(CreateContentCommand request, CancellationToken cancellationToken)
        {
            var contentManagementClient = _factory.GetContentManagementClient();

            var emptyEntry = await contentManagementClient.CreateEntry(new Entry <dynamic>(), request.CreationRequest.TemplateId);

            var itemReference = GetItemReference(emptyEntry, request);

            var entry = await _query.GetContentItem(itemReference, PublishingTarget.Preview);

            var contentType = _query.GetContentType(request.CreationRequest.TemplateId);

            var newEntry = _converter.TransformContentItemData(entry, request.CreationRequest.Fields, contentType);

            await contentManagementClient.UpdateEntryForLocale(newEntry, emptyEntry.SystemProperties.Id, request.CreationRequest.Language);

            return(itemReference);
        }