public async Task <Page> AddPageAsync(Page page)
        {
            VerifyManagementPermission();

            var currentPage = await _pageRepository.GetByHeaderAndLanguageAsync(page.PageHeaderId,
                                                                                page.LanguageId);

            if (currentPage != null)
            {
                throw new GraException("Page already exists for header and language.");
            }

            page.FooterText      = page.FooterText?.Trim();
            page.MetaDescription = page.MetaDescription?.Trim();
            page.NavText         = page.NavText?.Trim();
            page.Title           = page.Title?.Trim();

            return(await _pageRepository.AddSaveAsync(GetClaimId(ClaimType.UserId), page));
        }
Exemple #2
0
        public async Task <Page> AddPageAsync(Page page)
        {
            if (HasPermission(Permission.AddPages))
            {
                var siteId       = GetClaimId(ClaimType.SiteId);
                var existingPage = await _pageRepository.GetByStubAsync(siteId, page.Stub);

                if (existingPage != null)
                {
                    throw new GraException("The stub already exists, please enter a different one.");
                }

                page.SiteId = siteId;
                page.Stub   = page.Stub.ToLower();
                return(await _pageRepository.AddSaveAsync(GetClaimId(ClaimType.UserId), page));
            }
            else
            {
                int userId = GetClaimId(ClaimType.UserId);
                _logger.LogError($"User {userId} doesn't have permission to add pages.");
                throw new GraException("Permission denied.");
            }
        }