public async Task <IHttpActionResult> PostAsync(string portalUri, string pageUri, [FromBody] CreatePageDto model, CancellationToken cancellationToken) { if (model == null || !ModelState.IsValid) { return(BadRequest()); } var portal = await _portalManager.FindByUriAsync(portalUri, cancellationToken); await ApiSecurity.AuthorizeAsync(portal, AccessPermission.CanEdit, cancellationToken); var parentPage = default(PageItem); if (pageUri != null) { parentPage = await _portalManager.GetPageByUriAsync(portal, pageUri, cancellationToken); if (parentPage == null) { return(BadRequest(string.Format(PortalApiResources.PageNotFound, pageUri))); } } var page = new PageItem { Uri = model.Uri, Name = model.Name, Description = model.Description, HtmlContent = model.HtmlContent, StyleContent = model.StyleContent }; var validationResult = await _portalManager.AddPageAsync(portal, parentPage, page, cancellationToken); if (!validationResult.Succeeded) { return(this.ValidationContent(validationResult)); } return(CreatedAtRoute("Portal.Pages.GetByUri", new RouteValueDictionary { ["portalUri"] = portalUri, ["pageUri"] = page.Uri }, ModelMapper.ToPageDto(page))); }