public async Task <IHttpActionResult> PostAsync([FromBody] CreatePortalDto model, CancellationToken cancellationToken)
        {
            if (model == null || !ModelState.IsValid)
            {
                return(BadRequest());
            }
            var user = await _userManager.FindByEmailAsync(User.Identity.Name, cancellationToken);

            if (user == null)
            {
                return(NotFound());
            }
            var portal = new PortalItem
            {
                Uri          = model.Uri,
                Name         = model.Name,
                Description  = model.Description,
                GATrackingId = model.GATrackingId
            };
            var validationResult = await _portalManager.CreateAsync(portal, new[]
            {
                new AccessRuleItem {
                    User = null, Permission = AccessPermission.CanView, Visibility = AccessVisibility.Public
                },
                new AccessRuleItem {
                    User = user, Permission = AccessPermission.IsOwner
                }
            },
                                                                    model.Template, cancellationToken);

            if (!validationResult.Succeeded)
            {
                return(this.ValidationContent(validationResult));
            }
            if (model.Project != null)
            {
                await ApiSecurity.AuthorizeAsync(AccessObjectType.Project, model.Project.Id, AccessPermission.IsOwner, cancellationToken);

                await _portalManager.SetProjectAsync(portal, model.Project, cancellationToken);
            }
            return(CreatedAtRoute("Portals.GetByUri", new RouteValueDictionary {
                { "uri", portal.Uri }
            }, ModelMapper.ToPortalDto(portal)));
        }