< Summary

Class:MUNity.BlazorServer.Pages.User.UserProfilePage
Assembly:MUNity.BlazorServer
File(s):C:\Users\aeuke\source\repos\PeerConradi\munity\src\MUNity.BlazorServer\Pages\User\UserProfilePage.razor
Covered lines:0
Uncovered lines:42
Coverable lines:42
Total lines:113
Line coverage:0% (0 of 42)
Covered branches:0
Total branches:24
Branch coverage:0% (0 of 24)
Covered methods:0
Total methods:7
Method coverage:0% (0 of 7)

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
BuildRenderTree(...)0%120%
get_UserName()100%10%
get_Tab()100%10%
get_AuthStateTask()100%10%
.ctor()100%10%
OnParametersSetAsync()0%60%
OpenTabByNameIfGiven()0%60%

File(s)

C:\Users\aeuke\source\repos\PeerConradi\munity\src\MUNity.BlazorServer\Pages\User\UserProfilePage.razor

#LineLine coverage
 1@using MUNity.BlazorServer.Components.User.Profile
 2@using MUNity.Database.Models.User
 3
 4@page "/profile/{UserName}"
 5@page "/profile/{UserName}/{Tab}"
 6
 7@inject NavigationManager navManager
 8@inject UserManager<MunityUser> userManager;
 9
 010  @if (user != null)
 011  {
 12    <div class="profile">
 13    <div class="profile-header">
 14      <!-- BEGIN profile-header-cover -->
 15      <div class="profile-header-cover"></div>
 16      <!-- END profile-header-cover -->
 17      <!-- BEGIN profile-header-content -->
 18      <div class="profile-header-content">
 19        <!-- BEGIN profile-header-img -->
 20        <div class="profile-header-img">
 21          <img src="/img/user/user-13.jpg" alt="">
 22        </div>
 23        <!-- END profile-header-img -->
 24        <!-- BEGIN profile-header-info -->
 25        <div class="profile-header-info">
 026          <h4 class="mt-0 mb-1">@((isMe) ? $"{user.Forename} {user.Lastname}" : user.GetDisplayNamePublic)</h4>
 027          <p class="mb-2">@@@user.UserName</p>
 28          @*@if (isMe)
 29          {
 30            <a href="#" class="btn btn-xs btn-yellow">Edit Profile</a>
 31          }*@
 32        </div>
 33        <!-- END profile-header-info -->
 34      </div>
 35      <!-- END profile-header-content -->
 36      <!-- BEGIN profile-header-tab -->
 37      <ul class="profile-header-tab nav nav-tabs">
 038        <li class="nav-item"><a class="nav-link cursor-pointer @((tab == Tabs.Posts) ? "active" : null)" @onclick="() =>
 039        <li class="nav-item"><a class="nav-link cursor-pointer @((tab == Tabs.About) ? "active" : null)" @onclick="() =>
 40        @*<li class="nav-item"><a href="#profile-photos" class="nav-link" data-bs-toggle="tab">PHOTOS</a></li>
 41        <li class="nav-item"><a href="#profile-videos" class="nav-link" data-bs-toggle="tab">VIDEOS</a></li>
 42        <li class="nav-item"><a href="#profile-friends" class="nav-link" data-bs-toggle="tab">FRIENDS</a></li>*@
 43      </ul>
 44      <!-- END profile-header-tab -->
 45    </div>
 46
 47    <div class="profile-content">
 048      @if (tab == Tabs.Posts)
 049      {
 50        <PostHistoryComponent />
 051      }
 052      else if (tab == Tabs.About)
 053      {
 54        <AboutComponent UserName=@UserName IsMe=@isMe />
 055      }
 56    </div>
 57  </div>
 058}
 59else
 060{
 61  <p>Hoppla! Benutzer wurde nicht gefunden.</p>
 062}
 63
 64@code {
 065  [Parameter] public string UserName { get; set; }
 66
 067  [Parameter] public string Tab { get; set; }
 68
 069  [CascadingParameter] public Task<AuthenticationState> AuthStateTask { get; set; }
 70
 71  private enum Tabs
 72  {
 73    Posts,
 74    About
 75  }
 76
 077  private Tabs tab = Tabs.Posts;
 78
 79  private MunityUser user;
 80
 81  private bool isMe;
 82
 83  protected override async Task OnParametersSetAsync()
 084  {
 085    await base.OnParametersSetAsync();
 086    user = await userManager.FindByNameAsync(UserName);
 087    var claim = (await AuthStateTask)?.User;
 088    if (claim != null)
 089    {
 090      var signedInUser = await userManager.GetUserAsync(claim);
 091      if (signedInUser != null)
 092        isMe = signedInUser.Id == user.Id;
 93      else
 094        isMe = false;
 095    }
 96
 97
 098    OpenTabByNameIfGiven();
 099  }
 100
 101  private void OpenTabByNameIfGiven()
 0102  {
 0103    if (Tab != null)
 0104    {
 0105      var tabText = Tab.ToLower();
 0106      if (tabText == "posts")
 0107        tab = Tabs.Posts;
 0108      else if (tabText == "about")
 0109        tab = Tabs.About;
 110
 0111    }
 0112  }
 113}