< Summary

Class:MUNity.BlazorServer.Pages.Conference.ManageConferenceWebsitePage
Assembly:MUNity.BlazorServer
File(s):C:\Users\aeuke\source\repos\PeerConradi\munity\src\MUNity.BlazorServer\Pages\Conference\ManageConferenceWebsitePage.razor
Covered lines:0
Uncovered lines:62
Coverable lines:62
Total lines:144
Line coverage:0% (0 of 62)
Covered branches:0
Total branches:20
Branch coverage:0% (0 of 20)
Covered methods:0
Total methods:8
Method coverage:0% (0 of 8)

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
BuildRenderTree(...)0%120%
get_ConferenceId()100%10%
get_PageId()100%10%
get_AuthStateTask()100%10%
AddPage(...)0%60%
ChangeLoadedPage(...)0%20%
OnInitializedAsync()100%10%
OnParametersSetAsync()100%10%

File(s)

C:\Users\aeuke\source\repos\PeerConradi\munity\src\MUNity.BlazorServer\Pages\Conference\ManageConferenceWebsitePage.razor

#LineLine coverage
 1@using MUNity.BlazorServer.Components.Conference.WebEditor
 2@using MUNity.Schema.Conference.Website
 3@using MUNity.Database.Models.Website
 4
 5@page "/c/managewebsite/{ConferenceId}"
 6@page "/c/managewebsite/{ConferenceId}/{PageId}"
 7
 8@inject Services.UserConferenceAuthService conferenceAuthService
 9@inject MUNity.Database.Context.MunityContext dbContext
 10@inject Services.ConferenceWebsiteService websiteService
 11
 012@if (isAllowed)
 013{
 14    <div class="row">
 15        <div class="col-3">
 16            <div class="panel panel-inverse">
 17                <div class="panel-heading">
 18                    <h4 class="panel-title">Seiten und Menü</h4>
 19                </div>
 20                <div class="panel-body">
 21                    <h5>Seiten</h5>
 22                    <ul>
 023                        @foreach (var menuItem in menuItems)
 024                        {
 25                            <WebEditorMenuItemComponent MenuItem="@menuItem"
 026                                                        AddPage="(i) => AddPage(i)"
 027                                                        PageSelected="(i) => ChangeLoadedPage(i)" />
 28
 029                        }
 30                        <li class="cursor-pointer"><i class="fa fa-folder-plus text-success fa-lg"></i> Neues Verzeichni
 031                        <li class="cursor-pointer" @onclick="() => AddPage(null)"><i class="fa fa-plus text-success fa-l
 32                    </ul>
 33
 34                    <h5>Weitere Funktionen</h5>
 35                    <ul>
 036                        <li><a class="cursor-pointer" @onclick="() => this.editingItem = EditItems.DashboardCard">Karte 
 037                        <li><a class="cursor-pointer" @onclick="() => this.editingItem = EditItems.Footer">Footer</a></l
 38                    </ul>
 39                </div>
 40            </div>
 41        </div>
 42
 43        <div class="col-9">
 44            <div class="panel panel-inverse">
 45                <div class="panel-heading">
 46                    <h4 class="panel-title">Seite Bearbeiten</h4>
 47                </div>
 48                <div class="panel-body">
 049                    @if (this.editingItem == EditItems.Page)
 050                    {
 51                        <ConferenceWebPageEditorComponent ConferenceId=@ConferenceId PageId=@PageId />
 052                    }
 053                    else if (this.editingItem == EditItems.DashboardCard)
 054                    {
 55                        <EditConferenceDashboardCardComponent ConferenceId=@ConferenceId />
 056                    }
 057                    else if (this.editingItem == EditItems.Footer)
 058                    {
 59                        <EditFooterComponent ConferenceId=@ConferenceId />
 060                    }
 061                    else if (this.editingItem == EditItems.None)
 062                    {
 63                        <p>Keine Komponente geladen. Im Menü einen Eintrag auswählen und mit dem Bearbeiten beginnen.</p
 064                    }
 65                </div>
 66            </div>
 67        </div>
 68    </div>
 069}
 70 else
 071{
 72    <p>Zugriff verweigert</p>
 073}
 74
 75
 76
 77@code {
 078    [Parameter] public string ConferenceId { get; set; }
 79
 080    [Parameter] public string PageId { get; set; }
 81
 082    [CascadingParameter] public Task<AuthenticationState> AuthStateTask { get; set; }
 83
 84    private bool isAllowed;
 85
 86    private List<MenuItem> menuItems;
 87
 88    private enum EditItems
 89    {
 90        None,
 91        Page,
 92        DashboardCard,
 93        Footer
 94    }
 95
 96    private EditItems editingItem;
 97
 98    private void AddPage(MenuItem parentItem)
 099    {
 0100        var createdPage = websiteService.AddPage(ConferenceId, parentItem?.Id);
 0101        if (createdPage.Success)
 0102        {
 0103            var newMenuItem = new MenuItem()
 0104            {
 0105                Id = createdPage.MenuItemId,
 0106                PageId = createdPage.PageId,
 0107                Title = "Neue Seite",
 0108                Items = new List<MenuItem>()
 0109            };
 0110            if (parentItem != null)
 0111                parentItem.Items.Add(newMenuItem);
 112            else
 0113                this.menuItems.Add(newMenuItem);
 114
 0115        }
 0116    }
 117
 118    private void ChangeLoadedPage(MUNity.Schema.Conference.Website.MenuItem selectedMenuEntry)
 0119    {
 0120        if (selectedMenuEntry == null)
 0121        {
 0122            PageId = null;
 0123        }
 124        else
 0125        {
 0126            PageId = selectedMenuEntry.PageId;
 0127            this.editingItem = EditItems.Page;
 0128        }
 0129    }
 130
 131    protected override async Task OnInitializedAsync()
 0132    {
 0133        await base.OnInitializedAsync();
 0134        this.isAllowed = await conferenceAuthService.IsUserAllowedToEditConference(ConferenceId, AuthStateTask);
 0135    }
 136
 137
 138
 139    protected override async Task OnParametersSetAsync()
 0140    {
 0141        await base.OnParametersSetAsync();
 0142        this.menuItems = websiteService.GetMenuItems(ConferenceId);
 0143    }
 144}