< Summary

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

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
BuildRenderTree(...)0%100%
.ctor()100%10%
get_Info()100%10%
get_AuthStateTask()100%10%
get_ConferenceId()100%10%
get_SelectedRoleId()100%10%
OnInitialized()100%10%
Toggle()0%40%
AddRoleToDelegation()0%40%

File(s)

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

#LineLine coverage
 1@inject Services.DelegationService delegationService
 2
 3<div class="col-xl-3 col-lg-3 col-sm-6">
 4    <div class="card border-0 mb-3 bg-gray-900 text-white">
 5        <!-- BEGIN card-body -->
 6        <div class="card-body">
 7            <!-- BEGIN title -->
 8            <div class="mb-3 text-gray-300">
 9                <div class="d-flex align-items-center">
 10                    <div class="text-truncate">
 011                        <div>@Info.DelegationName (@Info.DelegationShort)</div>
 12                    </div>
 13                    <div class="ms-auto text-center">
 014                        <div class="text-gray-300">@Info.Roles.Count Slots</div>
 15                    </div>
 16                </div>
 17
 18            </div>
 19
 20
 021            @if (isExpanded)
 022            {
 023                @foreach (var role in Info.Roles)
 024                {
 25                    <div class="d-flex align-items-center mb-15px">
 26                        <div class="text-truncate">
 027                            <div>@role.RoleName</div>
 028                            <div class="text-gray-300">@((!string.IsNullOrEmpty(role.RoleCommitteeName) ? role.RoleCommi
 29                        </div>
 30                        <div class="ms-auto text-center">
 031                            <div class="fs-13px">@((role.HasParicipant) ? "Ist besetzt" : "Rolle ist verfügbar")</div>
 32                            <div class="text-gray-300 fs-10px">Bewerbung erlaubt</div>
 33                        </div>
 34                    </div>
 35
 036                }
 37                <hr />
 38                <div class="row mb-3">
 39                    <EditForm Model="@form" OnValidSubmit="AddRoleToDelegation">
 40                        <div class="col-12 mb-1">
 41                                <InputSelect class="form-select" @bind-Value="@form.SelectedRoleId">
 42                                    <option value="-1">Rolle zum Hinzufügen auswählen</option>
 043                                    @foreach (var role in availableRoles)
 044                                        {
 045                                        <option value="@role.RoleId">@role.RoleName @((!string.IsNullOrEmpty(role.RoleCo
 046                                        }
 47                                </InputSelect>
 48                        </div>
 49                        <div class="col-12">
 50                            <button class="btn btn-block btn-sm btn-success w-100 @((form.SelectedRoleId == -1) ? "disab
 51                        </div>
 52                    </EditForm>
 53
 54                </div>
 055            }
 56            <hr />
 57            <div class="row">
 58                <div class="col-12">
 59                    <div class="text-center text-gray-300-600 text-decoration-underline"
 060                         style="cursor: pointer;" @onclick="() => Toggle()">
 061                    @((!isExpanded) ? "Rollen anzeigen" : "Rollen ausblenden")
 62                    </div>
 63                </div>
 64
 65
 66            </div>
 67        </div>
 68        <!-- END card-body -->
 69    </div>
 70</div>
 71
 72@code {
 073    private bool isExpanded = false;
 74
 075    [Parameter] public MUNity.Schema.Conference.ManageDelegationInfo Info { get; set; }
 76
 077    [CascadingParameter] public Task<AuthenticationState> AuthStateTask { get; set; }
 78
 079    [Parameter] public string ConferenceId { get; set; }
 80
 081    private List<MUNity.Schema.Conference.ManageDelegationRoleInfo> availableRoles = new List<Schema.Conference.ManageDe
 82
 83
 84
 85    private class AddRoleForm
 86    {
 087        public int SelectedRoleId { get; set; } = -1;
 88    }
 89
 090    private AddRoleForm form = new AddRoleForm();
 91
 92        protected override void OnInitialized()
 093        {
 094            base.OnInitialized();
 095        }
 96
 97        private async Task Toggle()
 098    {
 099        if (!isExpanded)
 0100        {
 0101            var claim = (await AuthStateTask)?.User;
 0102            availableRoles = await delegationService.GetAvailableRoles(ConferenceId, claim);
 0103        }
 0104        isExpanded = !isExpanded;
 0105    }
 106
 107    private async Task AddRoleToDelegation()
 0108    {
 0109        var claim = (await AuthStateTask)?.User;
 0110        var result = await delegationService.AddRoleToDelegation(form.SelectedRoleId, Info.DelegationId, claim);
 0111        if (result)
 0112        {
 0113            var role = availableRoles.FirstOrDefault(n => n.RoleId == form.SelectedRoleId);
 0114            Info.Roles.Add(role);
 0115            form.SelectedRoleId = -1;
 116
 0117            availableRoles.Remove(role);
 0118        }
 0119    }
 120
 121
 122}