268 lines
10 KiB
Plaintext
268 lines
10 KiB
Plaintext
@using AyCode.Services.Loggers
|
|
@using Microsoft.AspNetCore.Components.Authorization
|
|
@using Newtonsoft.Json
|
|
@using TIAM.Core.Loggers
|
|
@using TIAMWebApp.Shared.Application.Interfaces
|
|
@using AyCode.Interfaces.StorageHandlers;
|
|
@using TIAMWebApp.Shared.Application.Utility
|
|
@inject ISecureStorageHandler SecureStorageHandler
|
|
@inject ISessionService SessionService
|
|
@inject IUserDataService UserDataService
|
|
@inject AuthenticationStateProvider AuthStateProvider
|
|
@inject NavigationManager NavigationManager
|
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
|
|
|
|
|
<div class="w-100" style="height:40px; position:fixed;">
|
|
<DxMenu Title="Tour I Am" ItemsPosition="ItemPosition.End" CollapseItemsToHamburgerMenu="true"
|
|
Orientation="Orientation"
|
|
DisplayMode="DisplayMode">
|
|
<Items>
|
|
<DxMenuItem NavigateUrl="/" Text="Home" IconCssClass="menu-icon-home menu-icon" />
|
|
<DxMenuItem NavigateUrl="user/properties" Text="My companies" IconCssClass="menu-icon-home menu-icon" />
|
|
<DxMenuItem NavigateUrl="user/media" Text="Media" IconCssClass="menu-icon-home menu-icon" />
|
|
<DxMenuItem NavigateUrl="user/messages" Text="Media" IconCssClass="menu-icon-home menu-icon" />
|
|
|
|
<DxMenuItem Text="Driver" Visible="@IsDriver" IconCssClass="menu-icon-products menu-icon">
|
|
<Items>
|
|
<DxMenuItem NavigateUrl="driver/dashboard" Text="Dashboard" />
|
|
<DxMenuItem NavigateUrl="driver/transfers" Text="My transfers" />
|
|
@{
|
|
string url = $"driver/cars/{SessionService.DriverPersmissionId.ToString()}";
|
|
<DxMenuItem NavigateUrl="@url" Text="My cars" />
|
|
}
|
|
|
|
<DxMenuItem NavigateUrl="sysadmin/users" Text="Users" />
|
|
</Items>
|
|
</DxMenuItem>
|
|
|
|
<DxMenuItem Text="SysAdmin" Visible="@IsSysAdmin" IconCssClass="menu-icon-products menu-icon">
|
|
<Items>
|
|
<DxMenuItem NavigateUrl="user/sysadmin" Text="Dashboard" />
|
|
<DxMenuItem NavigateUrl="sysadmin/transfers" Text="Transfers" />
|
|
<DxMenuItem NavigateUrl="sysadmin/destinations" Text="Destinations" />
|
|
<DxMenuItem NavigateUrl="sysadmin/companies" Text="Companies" />
|
|
<DxMenuItem NavigateUrl="sysadmin/prices" Text="Partner prices" />
|
|
<DxMenuItem NavigateUrl="sysadmin/products" Text="Services" />
|
|
<DxMenuItem NavigateUrl="sysadmin/drivers" Text="Drivers" />
|
|
<DxMenuItem NavigateUrl="sysadmin/cars" Text="Cars" />
|
|
|
|
<DxMenuItem NavigateUrl="sysadmin/userproductmappings" Text="Permissions" />
|
|
<DxMenuItem NavigateUrl="sysadmin/users" Text="Users" />
|
|
</Items>
|
|
</DxMenuItem>
|
|
|
|
<DxMenuItem Text="DevAdmin" Visible="@IsDevAdmin" IconCssClass="menu-icon-products menu-icon">
|
|
<Items>
|
|
<DxMenuItem NavigateUrl="sysadmin/logs" Text="Logs" />
|
|
</Items>
|
|
</DxMenuItem>
|
|
|
|
<DxMenuItem Text="HotelAdmin" IconCssClass="menu-icon-support menu-icon">
|
|
<Items>
|
|
<DxMenuItem NavigateUrl="user/hoteladmin" Text="Dashboard" />
|
|
<DxMenuItem NavigateUrl="user/createAndManageTransfer" Text="Transfers" />
|
|
<DxMenuItem NavigateUrl="user/serviceprovider/5453-a87f77787d-khj899" Text="Manage hotel" />
|
|
</Items>
|
|
</DxMenuItem>
|
|
</Items>
|
|
</DxMenu>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
@* <div class="top-row ps-3 navbar navbar-light">
|
|
<div class="container-fluid">
|
|
<a class="navbar-brand my-navbar-brand" href=""></a>
|
|
<button title="Navigation menu" class="navbar-toggler my-navbar-toggler" @onclick="ToggleNavMenu">
|
|
<img src="_content/TIAMSharedUI/images/navbar-toggler.png" width="40" />
|
|
</button>
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
<div class="@NavMenuCssClass nav-scrollable" @onclick="ToggleNavMenu">
|
|
<div style="display: flex; align-content: center; justify-content:center" class="my-navbar-hero">
|
|
|
|
<a class="navbar-brand my-navbar-brand" href=""><img src="_content/TIAMSharedUI/images/logo_wide.png" alt="TourIam Logo" title="TourIAm Logo" /></a>
|
|
|
|
</div>
|
|
<nav class="flex-column">
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="">
|
|
Home
|
|
</NavLink>
|
|
</div>
|
|
|
|
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="user/properties">
|
|
My companies
|
|
</NavLink>
|
|
</div>
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="user/products">
|
|
Services
|
|
</NavLink>
|
|
</div>
|
|
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="user/media">
|
|
Media
|
|
</NavLink>
|
|
</div>
|
|
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" @onclick="()=>expandSysAdminNav = !expandSysAdminNav">
|
|
<span class="oi oi-list-rich" aria-hidden="true"></span> System Admin
|
|
</NavLink>
|
|
</div>
|
|
@if (expandSysAdminNav)
|
|
{
|
|
<hr />
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="user/sysadmin">
|
|
Dashboard
|
|
</NavLink>
|
|
</div>
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="user/transfers">
|
|
Transfers
|
|
</NavLink>
|
|
</div>
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="user/companies">
|
|
Partners
|
|
</NavLink>
|
|
</div>
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="user/users">
|
|
Users
|
|
</NavLink>
|
|
</div>
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="user/destinations">
|
|
Destinations
|
|
</NavLink>
|
|
</div>
|
|
|
|
<hr />
|
|
}
|
|
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" @onclick="()=>expandHotelAdminNav = !expandHotelAdminNav">
|
|
<span class="oi oi-list-rich" aria-hidden="true"></span> Hotel Admin
|
|
</NavLink>
|
|
</div>
|
|
@if (expandHotelAdminNav)
|
|
{
|
|
<hr />
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="user/hoteladmin">
|
|
Hotel Dashboard
|
|
</NavLink>
|
|
</div>
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="user/createAndManageTransfer">
|
|
Transfer
|
|
</NavLink>
|
|
</div>
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="user/serviceprovider/5453-a87f77787d-khj899">
|
|
Manage
|
|
</NavLink>
|
|
</div>
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="serviceprovider">
|
|
Public profile
|
|
</NavLink>
|
|
</div>
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="counter">
|
|
My earnings
|
|
</NavLink>
|
|
</div>
|
|
<hr />
|
|
}
|
|
|
|
|
|
|
|
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="user/profile">
|
|
Profile
|
|
</NavLink>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="#" @onclick="SignOut">
|
|
Signout
|
|
</NavLink>
|
|
</div>
|
|
</nav>
|
|
</div> *@
|
|
|
|
@code {
|
|
private bool collapseNavMenu = true;
|
|
private bool expandSysAdminNav = false;
|
|
private bool expandHotelAdminNav = false;
|
|
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
|
|
|
|
private bool IsDevAdmin;
|
|
private bool IsSysAdmin;
|
|
private bool IsDriver;
|
|
|
|
private ILogger _logger;
|
|
|
|
MenuDisplayMode DisplayMode { get; set; } = MenuDisplayMode.Auto;
|
|
Orientation Orientation { get; set; } = Orientation.Horizontal;
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
_logger = new LoggerClient<AdminNavMenu>(LogWriters.ToArray());
|
|
_logger.Debug($"UserId: {SessionService.User.UserModelDto.Id}");
|
|
IsDevAdmin = SessionService.IsDevAdmin;
|
|
_logger.Debug($"UserId: {SessionService.IsDevAdmin}");
|
|
IsSysAdmin = SessionService.IsSysAdmin;
|
|
_logger.Debug($"UserId: {SessionService.IsSysAdmin}");
|
|
IsDriver = SessionService.IsDriver;
|
|
_logger.Debug($"UserId: {SessionService.IsDriver}");
|
|
|
|
base.OnInitialized();
|
|
}
|
|
|
|
private void ToggleNavMenu()
|
|
{
|
|
collapseNavMenu = !collapseNavMenu;
|
|
}
|
|
|
|
private void NavigateBack()
|
|
{
|
|
|
|
}
|
|
|
|
private async Task SignOut()
|
|
{
|
|
bool serverResult;
|
|
string userDetailsStr = await SecureStorageHandler.GetFromSecureStorageAsync(nameof(Setting.UserBasicDetails));
|
|
if (!string.IsNullOrEmpty(userDetailsStr))
|
|
{
|
|
var userBasicDetail = JsonConvert.DeserializeObject<UserBasicDetails>(userDetailsStr);
|
|
serverResult = await UserDataService.Logout(userBasicDetail.RefreshToken);
|
|
}
|
|
await SecureStorageHandler.ClearAllSecureStorageAsync();
|
|
var result = await AuthStateProvider.GetAuthenticationStateAsync();
|
|
|
|
SessionService.User = null;
|
|
SessionService.IsAuthenticated = false;
|
|
NavigationManager.NavigateTo("/");
|
|
|
|
}
|
|
|
|
}
|