147 lines
4.9 KiB
Plaintext
147 lines
4.9 KiB
Plaintext
@page "/"
|
|
@using AyCode.Interfaces.StorageHandlers;
|
|
@using Newtonsoft.Json;
|
|
@using TIAMWebApp.Shared.Application.Interfaces
|
|
@using TIAMWebApp.Shared.Application.Models.ClientSide;
|
|
@using AyCode.Blazor.Components;
|
|
@using TIAMWebApp.Shared.Application.Models;
|
|
@using TIAMWebApp.Shared.Application.Utility;
|
|
@using System.IdentityModel.Tokens.Jwt;
|
|
@inject NavigationManager NavManager
|
|
@inject IUserDataService UserDataService;
|
|
@inject IJSRuntime jsRuntime;
|
|
@inject ISecureStorageHandler SecureStorageHandler
|
|
@inject ISessionService sessionService;
|
|
@using TIAMSharedUI.Shared
|
|
|
|
<PageTitle>Index</PageTitle>
|
|
|
|
|
|
<HeroSlider></HeroSlider>
|
|
|
|
<div class="container-fluid" style="align-content: center;">
|
|
|
|
|
|
|
|
<div class="text-center">
|
|
|
|
<h1>Welcome</h1>
|
|
<h2>Please select!</h2>
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
|
|
<NavLink class="nav-link col-md-6 col-lg-4 col-12" href="transfer">
|
|
<div class="card my-3 my-card text-white">
|
|
<img class="card-img" src="_content/TIAMSharedUI/images/m_transfer.jpg" alt="Card image">
|
|
<div class="card-img-overlay">
|
|
|
|
<h3 class="card-title">Transfer</h3>
|
|
|
|
<p class="card-text">Do you need a lift? Book a transfer now!</p>
|
|
|
|
</div>
|
|
</div>
|
|
</NavLink>
|
|
|
|
<NavLink class="nav-link col-md-6 col-lg-4 col-12" href="tours">
|
|
<div class="card my-3 my-card text-white">
|
|
<img class="card-img" src="_content/TIAMSharedUI/images/m_tour.jpg" alt="Card image">
|
|
<div class="card-img-overlay">
|
|
<h3 class="card-title">Tours</h3>
|
|
<p class="card-text">Are you curious about the wonderful sights of Budapest or Hungary? Book a guided tour now!</p>
|
|
|
|
</div>
|
|
</div>
|
|
</NavLink>
|
|
|
|
<NavLink class="nav-link col-md-6 col-lg-4 col-12" href="clubcards">
|
|
<div class="card my-3 my-card text-white">
|
|
<img class="card-img" src="_content/TIAMSharedUI/images/m_restaurant.jpg" alt="Card image">
|
|
<div class="card-img-overlay">
|
|
<h3 class="card-title">Clubcards</h3>
|
|
<p class="card-text">Join the club, and enjoy great offers during your stay!</p>
|
|
|
|
</div>
|
|
</div>
|
|
</NavLink>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
@code {
|
|
|
|
bool isUserLoggedIn;
|
|
int userType = 0;
|
|
int currentUserRole = 249;
|
|
public UserSessionModel MyUser;
|
|
//add a new dictionary for the role types
|
|
|
|
protected async override Task OnInitializedAsync()
|
|
{
|
|
//old
|
|
|
|
|
|
var logToBrowserConsole = new LogToBrowserConsole(jsRuntime);
|
|
//wait for 5 seconds
|
|
//await Task.Delay(5000);
|
|
|
|
string userDetailsStr = await SecureStorageHandler.GetFromSecureStorageAsync(nameof(Setting.UserBasicDetails));
|
|
logToBrowserConsole.LogToBC(userDetailsStr);
|
|
if (!string.IsNullOrWhiteSpace(userDetailsStr))
|
|
{
|
|
var userBasicDetail = JsonConvert.DeserializeObject<UserBasicDetails>(userDetailsStr);
|
|
|
|
var handler = new JwtSecurityTokenHandler();
|
|
var jsontoken = handler.ReadToken(userBasicDetail?.AccessToken) as JwtSecurityToken;
|
|
|
|
if (userBasicDetail != null)
|
|
Setting.UserBasicDetails = userBasicDetail;
|
|
|
|
if (jsontoken?.ValidTo < DateTime.UtcNow)
|
|
{
|
|
logToBrowserConsole.LogToBC("Token needs to be refreshed");
|
|
bool isTokenRefreshed = await UserDataService.RefreshToken();
|
|
|
|
if (isTokenRefreshed)
|
|
{
|
|
logToBrowserConsole.LogToBC("Token refreshed");
|
|
var myId = Guid.Parse(jsontoken.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.NameId).Value);
|
|
//UserDataService.User.Email = jsontoken.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.Email).Value;
|
|
MyUser = await UserDataService.IsLoggedInAsync(myId);
|
|
logToBrowserConsole.LogToBC(MyUser.UserId.ToString());
|
|
}
|
|
else
|
|
{
|
|
logToBrowserConsole.LogToBC("Couldn't refresh token");
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
logToBrowserConsole.LogToBC("Valid token found");
|
|
|
|
var myId = Guid.Parse(jsontoken.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.NameId).Value);
|
|
logToBrowserConsole.LogToBC(myId.ToString());
|
|
//UserDataService.User.Email = jsontoken.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.Email).Value;
|
|
MyUser = await UserDataService.IsLoggedInAsync(myId);
|
|
logToBrowserConsole.LogToBC(MyUser.UserId.ToString());
|
|
sessionService.User = MyUser;
|
|
logToBrowserConsole.LogToBC($"{sessionService.User.UserId.ToString()}, {sessionService.User.Email}.");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
logToBrowserConsole.LogToBC("No token stored yet");
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|