< Summary

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

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
BuildRenderTree(...)0%60%
.ctor()100%10%
get_AuthStateTask()100%10%
get_RolesChanged()100%10%
get_GroupInfos()100%10%
get_groupId()100%10%
OnInitialized()100%10%
Show(...)100%10%
Hide()100%10%
CreateRoleGroup()0%60%
Reset()100%10%

File(s)

C:\Users\aeuke\source\repos\PeerConradi\munity\src\MUNity.BlazorServer\Components\Conference\CreateTeamRoleModal.razor

#LineLine coverage
 1<!-- Create Project Modal -->
 2@inject Services.ConferenceRoleService _conferenceRoleService
 3
 04@if (isVisible)
 05{
 6    <div class="modal fade show" style="display: block;" role="dialog">
 7        <div class="modal-dialog">
 8            <div class="modal-content">
 9                <div class="modal-header">
 10                    <h4 class="modal-title">Neue Teamrolle</h4>
 011                    <button type="button" class="btn-close" @onclick="() => Hide()"></button>
 12                </div>
 013                @if (response == null)
 014                {
 15                    <EditForm Model="request" OnValidSubmit="CreateRoleGroup">
 16                        <DataAnnotationsValidator />
 17                        <ValidationSummary />
 18                        <div class="modal-body">
 19                            <h3>Über Teamrollen</h3>
 20                            <p>Um später MitgliederInnen zum Team hinzufügen zu können müssen hierfür Rollen definiert w
 21                            <p>Im Gegensatz zu Gruppennamen ist es erlaubt, den gleichen Namen mehrfach zu vergeben. Rol
 22
 23                            <div class="row mb-15px">
 24                                <label class="form-label col-form-label col-md-3">Rollenname</label>
 25                                <div class="col-md-9">
 26                                    <InputText type="text" class="form-control mb-5px" placeholder="Projektleitung" @bin
 27                                    <small class="fs-12px text-gray-500-darker">Der Name der Role. Zum Beispiel Projektl
 28                                </div>
 29                            </div>
 30
 31                            <div class="row mb-15px">
 32                                <label class="form-label col-form-label col-md-3">Vollständiger Rollenname</label>
 33                                <div class="col-md-9">
 34                                    <InputText type="text" class="form-control mb-5px" placeholder="Projektleitung MUN..
 35                                    <small class="fs-12px text-gray-500-darker">Ein erweiterter Name für die Gruppe. Zum
 36                                </div>
 37                            </div>
 38
 39                            <div class="row mb-15px">
 40                                <label class="form-label col-form-label col-md-3">Rollenkürzel</label>
 41                                <div class="col-md-9">
 42                                    <InputText type="text" class="form-control mb-5px" placeholder="PL" @bind-Value="@re
 43                                    <small class="fs-12px text-gray-500-darker">Eine Kurzform für die Rolle zum Beispiel
 44                                </div>
 45                            </div>
 46
 047                            @if (GroupInfos != null)
 048                {
 49                        <div class="row mb-15px">
 50                            <label class="form-label col-form-label col-md-3">Übergeordnete Rolle</label>
 51                            <div class="col-md-9">
 52                                <InputSelect @bind-Value="@request.ParentRoleId" class="form-select">
 53                                    <option value="-1">Keine</option>
 054                                    @foreach (var group in GroupInfos)
 055                                                {
 56                                <optgroup label="@group.Name">
 057                                    @if (group.Roles != null && group.Roles.Count > 0)
 058                                                {
 059                                        foreach (var role in group.Roles)
 060                                                    {
 061                                            <option value="@role.TeamRoleId">@role.Name</option>
 62
 063                                                    }
 064                                                }
 65
 66                                </optgroup>
 067                                                }
 68                                </InputSelect>
 69                                <small class="fs-12px text-gray-500-darker">Eine Rolle, welcher diese Rolle untersteht. 
 70                            </div>
 71                        </div>
 072                }
 73
 74
 75                        </div>
 76                        <div class="modal-footer">
 077                            <button class="btn btn-white" @onclick="() => Hide()">Abbrechen</button>
 78                            <button class="btn btn-success" type="submit">Rolle erstellen</button>
 79                        </div>
 80                    </EditForm>
 081                }
 82                else
 083                {
 84                    <div class="modal-body">
 85                        <div class="col-12">
 086                            @if (!response.HasError)
 087                            {
 088                                <div class="alert alert-success">Die Rolle wurde erfolgreich erstellt <button class="btn
 089                            }
 90                        </div>
 91
 92                    </div>
 93                    <div class="modal-footer">
 094                        <button class="btn btn-white" @onclick="() => Hide()">Schließen</button>
 95                    </div>
 096                }
 97
 98            </div>
 99        </div>
 100    </div>
 101    <div class="modal-backdrop fade show"></div>
 0102}
 103
 104
 105@code {
 0106    private bool isVisible = false;
 107
 0108    [CascadingParameter] public Task<AuthenticationState> AuthStateTask { get; set; }
 109
 0110    [Parameter] public EventCallback RolesChanged { get; set; }
 111
 0112    [Parameter] public List<MUNity.Schema.Conference.TeamRoleGroupInfo> GroupInfos { get; set; }
 113
 0114    private int groupId { get; set; }
 115
 116    private Schema.Conference.CreateTeamRoleRequest request;
 117
 118    private Schema.Conference.CreateTeamRoleResponse response;
 119
 120
 121    protected override void OnInitialized()
 0122    {
 0123        this.request = new Schema.Conference.CreateTeamRoleRequest();
 0124    }
 125
 126    public void Show(int groupId)
 0127    {
 0128        isVisible = true;
 0129        this.request.RoleGroupId = groupId;
 0130        StateHasChanged();
 0131    }
 132
 133    public void Hide()
 0134    {
 0135        isVisible = false;
 0136    }
 137
 138    public async Task CreateRoleGroup()
 0139    {
 0140        var claim = (await AuthStateTask)?.User;
 0141        if (claim != null)
 0142        {
 0143            this.response = await _conferenceRoleService.CreateTeamRoleAsync(request, claim);
 0144            if (!response.HasError)
 0145                await RolesChanged.InvokeAsync();
 0146        }
 147
 0148    }
 149
 150    private void Reset()
 0151    {
 0152        request.ParentRoleId = -1;
 0153        request.RoleFullName = null;
 0154        request.RoleName = null;
 0155        request.RoleShort = null;
 0156        response = null;
 0157    }
 158}