199 lines
8.1 KiB
Plaintext
199 lines
8.1 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; z-index: 10000;">
|
|
<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" />
|
|
@{
|
|
if (userHasCompany)
|
|
{
|
|
<DxMenuItem NavigateUrl="user/properties" Text="My companies" IconCssClass="fa-solid fa-building" />
|
|
}
|
|
if(userHasHotels)
|
|
{
|
|
<DxMenuItem NavigateUrl="user/createAndManageTransfer" IconCssClass="fa-solid fa-route" Text="Transfer" />
|
|
}
|
|
}
|
|
@* <DxMenuItem NavigateUrl="user/media" Text="Media" IconCssClass="menu-icon-home menu-icon" /> *@
|
|
|
|
|
|
<DxMenuItem Text="Driver" Visible="@IsDriver" IconCssClass="fa-solid fa-id-card">
|
|
<Items>
|
|
<DxMenuItem NavigateUrl="driver/dashboard" Text="Dashboard" />
|
|
|
|
|
|
@{
|
|
string url1 = $"driver/transfers/{driverPermissionId}";
|
|
string url2 = $"driver/cars/{driverPermissionId}";
|
|
<DxMenuItem NavigateUrl="@url1" Text="My transfers" />
|
|
<DxMenuItem NavigateUrl="@url2" Text="My cars" />
|
|
}
|
|
|
|
</Items>
|
|
</DxMenuItem>
|
|
|
|
<DxMenuItem Text="SysAdmin" Visible="@IsSysAdmin" IconCssClass="fa-solid fa-unlock-keyhole">
|
|
<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="fa-solid fa-shield-halved">
|
|
<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-->
|
|
@* <DxMenuItem NavigateUrl="user/messages" Text="Messages" IconCssClass="fa-solid fa-envelope" /> *@
|
|
@{
|
|
string url3 = $"user/messages/{userId}";
|
|
<DxMenuItem NavigateUrl="@url3" IconCssClass="fa-solid fa-envelope" />
|
|
}
|
|
|
|
<DxMenuItem CssClass="notoggle" Position="ItemPosition.End">
|
|
<TextTemplate>
|
|
<div class="fa-solid fa-user" />
|
|
</TextTemplate>
|
|
<SubMenuTemplate>
|
|
<div class="w-100 user-profile p-3">
|
|
<div class="flex-column align-items-center justify-content-center">
|
|
<div class="logo-container d-flex align-items-center justify-content-center">
|
|
<div class="menu-icon-large">
|
|
<i class="fa-solid fa-user"></i>
|
|
</div>
|
|
</div>
|
|
<div class="user-name-container bm-3 mb-2">
|
|
<div class="tm-8 text-center">@userEmail</div>
|
|
<div class="text-center">@userFullName</div>
|
|
</div>
|
|
<div class="d-flex justify-content-center log-off-btn">
|
|
<DxButton Text="Manage" RenderStyle="@ButtonRenderStyle.Secondary" Click="NavToAcc"></DxButton>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</SubMenuTemplate>
|
|
</DxMenuItem>
|
|
</Items>
|
|
</DxMenu>
|
|
|
|
</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 bool userHasCompany = false;
|
|
private bool userHasHotels = false;
|
|
private string? userEmail;
|
|
private string? userFullName;
|
|
private Guid? userId;
|
|
|
|
private Guid driverPermissionId;
|
|
|
|
private ILogger _logger;
|
|
|
|
MenuDisplayMode DisplayMode { get; set; } = MenuDisplayMode.Auto;
|
|
Orientation Orientation { get; set; } = Orientation.Horizontal;
|
|
|
|
private void NavToAcc()
|
|
{
|
|
var url = $"user/account/{SessionService.User.UserId}";
|
|
NavigationManager.NavigateTo(url);
|
|
}
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
_logger = new LoggerClient<AdminNavMenu>(LogWriters.ToArray());
|
|
//_logger.Debug($"UserId: {SessionService.User.UserModelDto.Id}"); //errorokat dobott
|
|
IsDevAdmin = SessionService.IsDevAdmin;
|
|
//_logger.Debug($"UserId: {SessionService.IsDevAdmin}");
|
|
IsSysAdmin = SessionService.IsSysAdmin;
|
|
//_logger.Debug($"UserId: {SessionService.IsSysAdmin}");
|
|
IsDriver = SessionService.IsDriver;
|
|
//_logger.Debug($"UserId: {SessionService.IsDriver}");
|
|
userHasCompany = SessionService.HasCompany;
|
|
if (SessionService.GetHotels().Count() > 0)
|
|
{
|
|
userHasHotels = true;
|
|
}
|
|
if (SessionService.User != null)
|
|
{
|
|
userId = SessionService.User.UserId;
|
|
driverPermissionId = SessionService.DriverPersmissionId;
|
|
userEmail = SessionService.User.Email;
|
|
if (SessionService.User.UserModelDto.ProfileDto.FullName != null)
|
|
{
|
|
userFullName = SessionService.User.UserModelDto.ProfileDto.FullName;
|
|
}
|
|
}
|
|
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("/");
|
|
|
|
}
|
|
|
|
}
|