public async Task ShouldCreateContent()
        {
            /// Arrange
            var schemas = await _client.Schemas.GenerateSchemasAsync(typeof(ContentItem));

            foreach (var schema in schemas)
            {
                await _client.Schemas.CreateOrUpdateAndWaitForCompletionAsync(schema, false);
            }

            var request = new ContentCreateRequest
            {
                Content         = JsonConvert.DeserializeObject(@"{ ""name"": ""foo"" }"),
                ContentSchemaId = "ContentItem",
                Metadata        = new DataDictionary()
            };

            /// Act
            var result = await _client.Contents.CreateAsync(request, true);

            /// Assert
            string contentId = await _fixture.GetRandomContentIdAsync(".jpg", 20);

            Assert.False(string.IsNullOrEmpty(contentId));
        }
        public ContentCreateResponse Create([FromBody]
                                            ContentCreateRequest contentCreateRequest)
        {
            try
            {
                var dbContent = new DbContent
                {
                    Author      = HttpContextUtility.LoggedUserIdentity(),
                    Type        = contentCreateRequest.Content.Type,
                    Locale      = contentCreateRequest.Content.Locale,
                    Published   = contentCreateRequest.Content.Published,
                    Title       = contentCreateRequest.Content.Title,
                    Subtitle    = contentCreateRequest.Content.Subtitle,
                    HtmlContent = contentCreateRequest.Content.HtmlContent,
                    TextContent = contentCreateRequest.Content.TextContent
                };

                var newContent = _contentService.Create(dbContent);

                return(new ContentCreateResponse
                {
                    Content = newContent.MapToContent()
                });
            }
            catch (Exception ex)
            {
                return(new ContentCreateResponse
                {
                    Success = false,
                    Message = ex.Message
                });
            }
        }
        public async Task <ContentCreateResponse> Create(ContentCreateRequest contentCreateRequest)
        {
            var baseApiResult = await PostRequest <ContentCreateResponse>("Content/Create", contentCreateRequest);

            if (!baseApiResult.Success)
            {
                throw new Exception(baseApiResult.Message);
            }

            return(baseApiResult.Response);
        }
예제 #4
0
        public async Task <IActionResult> OnPost()
        {
            var createRequest = new ContentCreateRequest
            {
                Content = ContentForm.Content
            };

            var result = await _contentApiService.Create(createRequest);

            if (result.Success)
            {
                return(RedirectToPage(ContentForm.SuccessPage, new { Area = ContentForm.SuccessArea }));
            }

            return(RedirectToPage(ContentForm.FailurePage, new { Area = ContentForm.FailureArea }));
        }
예제 #5
0
        private async Task CreateOrUpdateCompoundAssetsAsync(IList <PictureparkAsset> targetAssets)
        {
            foreach (PictureparkAsset targetAsset in targetAssets)
            {
                var targetAssetParts = targetAsset.AssetParts;

                if (targetAssetParts.Count == 0)
                {
                    continue;
                }

                if (string.IsNullOrEmpty(targetAsset.TargetAssetUuid))
                {
                    var contentCreateRequest = new ContentCreateRequest()
                    {
                        ContentSchemaId = nameof(SmintIoCompoundAsset),
                        Content         = GetCompoundAssetsMetadata(targetAsset, targetAssetParts),
                        LayerSchemaIds  = new[] {
                            nameof(SmintIoContentLayer),
                            nameof(SmintIoLicenseLayer)
                        },
                        Metadata = targetAsset.GetMetadata()
                    };

                    await _client.Content.CreateAsync(contentCreateRequest);
                }
                else
                {
                    var contentUpdateRequest = new ContentMetadataUpdateRequest()
                    {
                        Content        = GetCompoundAssetsMetadata(targetAsset, targetAssetParts),
                        LayerSchemaIds = new[] {
                            nameof(SmintIoContentLayer),
                            nameof(SmintIoLicenseLayer)
                        },
                        Metadata = targetAsset.GetMetadata(),
                        LayerSchemasUpdateOptions  = UpdateOption.Merge,
                        ContentFieldsUpdateOptions = UpdateOption.Replace
                    };

                    await _client.Content.UpdateMetadataAsync(targetAsset.TargetAssetUuid, contentUpdateRequest);
                }
            }
        }
        public async Task ShouldCreateContents()
        {
            /// Arrange
            var schemas = await _client.Schemas.GenerateSchemasAsync(typeof(ContentItem));

            foreach (var schema in schemas)
            {
                await _client.Schemas.CreateOrUpdateAndWaitForCompletionAsync(schema, false);
            }

            var request1 = new ContentCreateRequest
            {
                Content         = JsonConvert.DeserializeObject(@"{ ""name"": ""foo"" }"),
                ContentSchemaId = "ContentItem",
                Metadata        = new DataDictionary()
            };

            var request2 = new ContentCreateRequest
            {
                Content         = JsonConvert.DeserializeObject(@"{ ""name"": ""bar"" }"),
                ContentSchemaId = "ContentItem",
                Metadata        = new DataDictionary()
            };

            /// Act
            var result = await _client.Contents.CreateManyAsync(new ContentCreateManyRequest
            {
                AllowMissingDependencies = false,
                Requests = new List <ContentCreateRequest> {
                    request1, request2
                }
            });

            await _client.BusinessProcesses.WaitForCompletionAsync(result.Id);

            /// Assert
            string contentId = await _fixture.GetRandomContentIdAsync(".jpg", 20);

            Assert.False(string.IsNullOrEmpty(contentId));
        }