< Summary

Class:MUNity.BlazorServer.Pages.Conference.ConferenceCustomPage
Assembly:MUNity.BlazorServer
File(s):C:\Users\aeuke\source\repos\PeerConradi\munity\src\MUNity.BlazorServer\Pages\Conference\ConferenceCustomPage.razor
Covered lines:0
Uncovered lines:60
Coverable lines:60
Total lines:105
Line coverage:0% (0 of 60)
Covered branches:0
Total branches:22
Branch coverage:0% (0 of 22)
Covered methods:0
Total methods:6
Method coverage:0% (0 of 6)

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
BuildRenderTree(...)0%160%
get_ConferenceId()100%10%
get_PageId()100%10%
get_AuthStateTask()100%10%
.ctor()100%10%
OnParametersSetAsync()0%60%

File(s)

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

#LineLine coverage
 1@using MUNity.Database.Models.Website
 2
 3@layout MUNity.BlazorServer.Shared.ConferenceFrontEndLayout
 4@page "/web/conference/{ConferenceId}/{PageId}"
 5@page "/web/conference/{ConferenceId}"
 6
 7@inject MUNity.Database.Context.MunityContext dbContext
 8@inject Services.UserConferenceAuthService conferenceAuthService
 9
 010@if (loadedPage == null)
 011{
 12    <p>Seite nicht gefunden</p>
 013}
 14else
 015{
 016    @if (isAllowedToEdit)
 017    {
 18        <div class="row">
 19            <div class="col-12">
 20                <div class="alert alert-warning">Hallo, Sie sind bereichtigt diese Seite zu <a href="@($"/c/managewebsit
 21            </div>
 22        </div>
 023    }
 24
 025    <h1>@loadedPage.Title</h1>
 026    @foreach(var comp in loadedPage.Components.OrderBy(n => n.SortOrder))
 027    {
 028        if (comp is WebPageTextElement textElement)
 029        {
 030            <div class="card col-12 p-3"><p>@((MarkupString)textElement.Content)</p></div>
 31
 032        }
 033        else if (comp is CommitteeTopicsElement topicsElement)
 034        {
 035            var committeeId = dbContext.ConferenceWebPageCommitteeTopicsElements.Where(n => n.ConferenceWebPageComponent
 36            <div class="card col-12 p-3">
 37                <h4>Themen</h4>
 38                <ul>
 039                    @foreach(var topic in dbContext.CommitteeTopics.Where(n => n.Committee.CommitteeId == committeeId))
 040                    {
 041                        <li>@topic.TopicFullName</li>
 042                    }
 43                </ul>
 44            </div>
 045        }
 046        else if (comp is CommitteeDelegatesElement seatsElement)
 047        {
 048            var committeeId = dbContext.ConferenceWebPageDelegatesElements.Where(n => n.ConferenceWebPageComponentId == 
 49            <div class="card col-12 p-3">
 50                <h4>Delegationen</h4>
 51                <ul>
 052                    @foreach(var del in dbContext.Delegates.Where(n => n.Committee.CommitteeId == committeeId))
 053                    {
 054                        <li>@del.RoleName</li>
 055                    }
 56                </ul>
 57            </div>
 058        }
 59        else
 060        {
 061            <p>Unknown or unimplemented type @comp.GetType().Name</p>
 62
 63
 064        }
 065    }
 066}
 67
 68@code {
 069    [Parameter] public string ConferenceId { get; set; }
 70
 071    [Parameter] public string PageId { get; set; }
 72
 073    [CascadingParameter] public Task<AuthenticationState> AuthStateTask { get; set; }
 74
 75    private MUNity.Database.Models.Website.ConferenceWebPage loadedPage;
 76
 077    private bool isAllowedToEdit = false;
 78
 79    protected override async Task OnParametersSetAsync()
 080    {
 081        await base.OnParametersSetAsync();
 082        if (string.IsNullOrEmpty(PageId))
 083        {
 84            // Load index page
 085            this.loadedPage = await dbContext.ConferenceWebPages
 086                .Include(n => n.Components)
 087                .AsNoTracking()
 088                .FirstOrDefaultAsync(n => n.Conference.ConferenceId == ConferenceId && n.IsIndexPage);
 089        }
 90        else
 091        {
 92            // Load custom page
 093            this.loadedPage = await dbContext.ConferenceWebPages
 094                .Include(n => n.Components)
 095                .AsNoTracking()
 096                .FirstOrDefaultAsync(n => n.Conference.ConferenceId == ConferenceId && n.ConferenceWebPageId == PageId);
 097        }
 98
 099        var claim = (await AuthStateTask)?.User;
 0100        if (claim != null)
 0101        {
 0102            this.isAllowedToEdit = await conferenceAuthService.IsUserAllowedToEditConference(ConferenceId, claim);
 0103        }
 0104    }
 105}