merge
This commit is contained in:
commit
7faa9f266b
|
|
@ -8,4 +8,4 @@ build_property.PlatformNeutralAssembly =
|
|||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = TIAMDLL.Common
|
||||
build_property.ProjectDir = C:\MANGOWEB\TourIAmProject\TIAMDLL.Common\
|
||||
build_property.ProjectDir = C:\Users\Ádám\Source\Repos\TourIAm\TIAMDLL.Common\
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -0,0 +1 @@
|
|||
0aa444ae556d2df6dc138f149eb702065af2ab69
|
||||
Binary file not shown.
|
|
@ -0,0 +1,106 @@
|
|||
@page "/hotel"
|
||||
@using TIAMSharedUI.Shared
|
||||
@inject NavigationManager navManager
|
||||
|
||||
<div class="container-fluid">
|
||||
<section class="py-5">
|
||||
|
||||
<div class="row gx-4 gx-lg-5 align-items-center">
|
||||
<div class="col-md-6">
|
||||
|
||||
<!--Slider here-->
|
||||
<style>
|
||||
.owl-stage-outer {
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
<div style="position: relative; width:100%; height: 100%">
|
||||
<div style="position:absolute; top: 10px; left: 10px; z-index:999; ">
|
||||
<h3 style="backdrop-filter: blur(5px); border-radius: 5px; color: white; padding: 3px; background-color: rgba(0,0,0,.2);">
|
||||
10% DISCOUNT COUPON
|
||||
</h3>
|
||||
</div>
|
||||
<div id="owl-restaurant" class="owl-carousel owl-theme">
|
||||
|
||||
<div class="item d-flex align-items-center">
|
||||
<img src="_content/TIAMSharedUI/images/restaurant_1.jpg" class="my-auto" alt="The Last of us">
|
||||
|
||||
</div>
|
||||
<div class="item d-flex align-items-center">
|
||||
<img src="_content/TIAMSharedUI/images/restaurant_2.jpg" class="my-auto" alt="GTA V">
|
||||
|
||||
</div>
|
||||
<div class="item d-flex align-items-center">
|
||||
<img src="_content/TIAMSharedUI/images/restaurant_3.jpg" class="my-auto" alt="Mirror Edge">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="small mb-1">Authentic</div>
|
||||
<h1 class="display-5 fw-bolder">Mandragóra Restaurant</h1>
|
||||
<div class="fs-5 mb-5">
|
||||
<!--span class="text-decoration-line-through">$45.00</span-->
|
||||
<span>$10.00</span>
|
||||
</div>
|
||||
<p class="lead">A nice Hungarian restaurant that offers a delightful culinary journey with traditional dishes like goulash, stuffed peppers, and chimney cake, in a cozy, welcoming atmosphere.</p>
|
||||
<div class="d-flex">
|
||||
<button class="btn btn-primary" @onclick="next">Book a transfer now</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="embed-responsive">
|
||||
<h3> Location: </h3>
|
||||
<p>Kacsa u. 13, Budapest</p>
|
||||
|
||||
@{
|
||||
var aKey = "AIzaSyAyEYJkpt2KDa3SJ34UNWO4-dNOJKmUtF8";
|
||||
var gUrl = "https://www.google.com/maps/embed/v1/place?key=" + aKey + "&q=Space+Needle,Budapest+HU";
|
||||
}
|
||||
<iframe class="embed-responsive-item"
|
||||
loading="lazy"
|
||||
width="100%"
|
||||
style="height: 30vh; border-radius: 15px;"
|
||||
referrerpolicy="no-referrer-when-downgrade"
|
||||
src=@gUrl>
|
||||
</iframe>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
<!-- Related items section-->
|
||||
<FeaturedItems ItemType="1"></FeaturedItems>
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
|
||||
$("#owl-restaurant").owlCarousel({
|
||||
|
||||
navigation: true, // Show next and prev buttons
|
||||
|
||||
slideSpeed: 300,
|
||||
paginationSpeed: 400,
|
||||
|
||||
items: 1,
|
||||
itemsDesktop: false,
|
||||
itemsDesktopSmall: false,
|
||||
itemsTablet: false,
|
||||
itemsMobile: false
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
@code {
|
||||
public void next() => navManager.NavigateTo("/transfer");
|
||||
|
||||
}
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
<PageTitle>Index</PageTitle>
|
||||
|
||||
<TopRow></TopRow>
|
||||
|
||||
<HeroSlider></HeroSlider>
|
||||
|
||||
<div class="container-fluid" style="align-content: center;">
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
@page "/login"
|
||||
@using TIAMWebApp.Shared.Application.Interfaces;
|
||||
@using TIAMWebApp.Shared.Application.Models;
|
||||
@inject NavigationManager navManager
|
||||
@inject IUserDataService userDataService
|
||||
<PageTitle>Login</PageTitle>
|
||||
|
||||
<div class="wrapper">
|
||||
|
|
@ -19,26 +22,38 @@
|
|||
<input type="password" name="password" id="pwd" placeholder="Password">
|
||||
</div>
|
||||
<div class="form-field d-flex align-items-center">
|
||||
|
||||
<select class="custom-select" title="Destination is required ">
|
||||
<option value="Select" selected disabled="disabled">(Choose Destination)</option>
|
||||
<option value="0" selected>Option1</option>
|
||||
<option value="1" selected>Option2</option>
|
||||
<option value="2" selected>Option3</option>
|
||||
|
||||
|
||||
<select style="width:100%" @bind="CurrentValue" class="custom-select" title="Destination is required ">
|
||||
<option value="0" selected disabled="disabled">(Choose account type)</option>
|
||||
<option value="1" selected>Hotel</option>
|
||||
<option value="2" selected>Transfer</option>
|
||||
<option value="3" selected>Guide</option>
|
||||
<option value="4" selected>Admin</option>
|
||||
<option value="5" selected>User</option>
|
||||
<option value="6" selected>Driver</option>
|
||||
</select>
|
||||
</div>
|
||||
<!--button class="btn btn-primary mt-3" @onclick="next">Login</button-->
|
||||
<a class="btn btn-primary mt-3" @onclick="next">Login</a>
|
||||
</form>
|
||||
<p>@isUserLoggedIn</p><p>@CurrentValue</p>
|
||||
<div class="text-center fs-6">
|
||||
<a href="#">Forget password?</a> or <a href="register">Sign up</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
public void next()
|
||||
|
||||
bool isUserLoggedIn;
|
||||
int CurrentValue = 0;
|
||||
|
||||
public async Task next()
|
||||
{
|
||||
var user = await userDataService.IsLoggedInAsync();
|
||||
user.IsLoggedIn = true;
|
||||
isUserLoggedIn = user.IsLoggedIn;
|
||||
user.UserType = (UserType)CurrentValue;
|
||||
navManager.NavigateTo("home");
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
.wrapper{
|
||||
max-width:400px;
|
||||
}
|
||||
|
||||
select :focus-visible {
|
||||
border-color: transparent !important;
|
||||
}
|
||||
|
|
@ -1,38 +1,48 @@
|
|||
@page "/restaurant"
|
||||
@using TIAMSharedUI.Shared
|
||||
@inject NavigationManager navManager
|
||||
|
||||
<div class="container-fluid">
|
||||
<section class="py-5">
|
||||
|
||||
|
||||
<section class="py-5">
|
||||
<div class="container px-4 px-lg-5 my-5">
|
||||
<div class="row gx-4 gx-lg-5 align-items-center">
|
||||
<div class="col-md-6">
|
||||
|
||||
<!--Slider here-->
|
||||
<div style="position: relative; width:100%; height: 100%">
|
||||
<div style="position:absolute; top: 10px; left: 10px; z-index:999;">
|
||||
<h3>10% DISCOUNT COUPON</h3>
|
||||
</div>
|
||||
<div id="owl-restaurant" class="owl-carousel owl-theme">
|
||||
<div class="col-md-6 my-3">
|
||||
|
||||
<!--Slider here-->
|
||||
<style>
|
||||
.owl-stage-outer {
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
<div style="position: relative; width:100%; height: 100%">
|
||||
<div style="position:absolute; top: 10px; left: 10px; z-index:999; ">
|
||||
<h3 style="backdrop-filter: blur(5px); border-radius: 5px; color: white; padding: 3px; background-color: rgba(0,0,0,.2);">
|
||||
10% DISCOUNT COUPON
|
||||
</h3>
|
||||
</div>
|
||||
<div id="owl-restaurant" class="owl-carousel owl-theme">
|
||||
|
||||
<div class="item d-flex align-items-center">
|
||||
<img src="_content/TIAMSharedUI/images/restaurant_1.jpg" class="my-auto" alt="The Last of us">
|
||||
|
||||
<div class="item d-flex align-items-center">
|
||||
<img src="_content/TIAMSharedUI/images/restaurant_1.jpg" class="my-auto" alt="The Last of us">
|
||||
|
||||
</div>
|
||||
<div class="item d-flex align-items-center">
|
||||
<img src="_content/TIAMSharedUI/images/restaurant_2.jpg" class="my-auto" alt="GTA V">
|
||||
|
||||
<div class="item d-flex align-items-center">
|
||||
<img src="_content/TIAMSharedUI/images/restaurant_2.jpg" class="my-auto" alt="GTA V">
|
||||
|
||||
</div>
|
||||
<div class="item d-flex align-items-center">
|
||||
<img src="_content/TIAMSharedUI/images/restaurant_3.jpg" class="my-auto" alt="Mirror Edge">
|
||||
|
||||
<div class="item d-flex align-items-center">
|
||||
<img src="_content/TIAMSharedUI/images/restaurant_3.jpg" class="my-auto" alt="Mirror Edge">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-6 my-3">
|
||||
<div class="small mb-1">Authentic</div>
|
||||
<h1 class="display-5 fw-bolder">Mandragóra Restaurant</h1>
|
||||
<div class="fs-5 mb-5">
|
||||
|
|
@ -41,19 +51,40 @@
|
|||
</div>
|
||||
<p class="lead">A nice Hungarian restaurant that offers a delightful culinary journey with traditional dishes like goulash, stuffed peppers, and chimney cake, in a cozy, welcoming atmosphere.</p>
|
||||
<div class="d-flex">
|
||||
<input class="form-control text-center me-3" id="inputQuantity" type="num" value="1" style="max-width: 3rem" />
|
||||
<button class="btn btn-primary flex-shrink-0" type="button">
|
||||
<i class="bi-cart-fill me-1"></i>
|
||||
Add to cart
|
||||
</button>
|
||||
<button class="btn btn-primary" @onclick="next">Book a transfer now</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 my-3">
|
||||
<h3> Offer: </h3>
|
||||
<p>Traditional Hungarian cuisine</p>
|
||||
<embed class="bg-light" src="https://newyorkrestaurant.co.za/new-york-menu.pdf" style="width:100%; height:45vh;"/>
|
||||
</div>
|
||||
<div class="col-md-6 my-3">
|
||||
<h3> Location: </h3>
|
||||
<p>Kacsa u. 13, Budapest</p>
|
||||
<div class="embed-responsive">
|
||||
|
||||
|
||||
@{
|
||||
var aKey = "AIzaSyAyEYJkpt2KDa3SJ34UNWO4-dNOJKmUtF8";
|
||||
var gUrl = "https://www.google.com/maps/embed/v1/place?key=" + aKey + "&q=Space+Needle,Kacsa+utca+13,Budapest+HU";
|
||||
}
|
||||
<iframe class="embed-responsive-item"
|
||||
loading="lazy"
|
||||
width="100%"
|
||||
style="height: 45vh; border-radius: 15px;"
|
||||
referrerpolicy="no-referrer-when-downgrade"
|
||||
src=@gUrl>
|
||||
</iframe>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- Related items section-->
|
||||
<FeaturedItems ItemType="1"></FeaturedItems>
|
||||
|
||||
</section>
|
||||
<!-- Related items section-->
|
||||
<FeaturedItems ItemType="2"></FeaturedItems>
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
|
||||
|
|
@ -76,5 +107,8 @@
|
|||
</script>
|
||||
|
||||
@code {
|
||||
public void next() => navManager.NavigateTo("/transfer");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,80 @@
|
|||
@page "/tourferdetails"
|
||||
<PageTitle>Tour order details</PageTitle>
|
||||
|
||||
|
||||
<div class="text-center m-5">
|
||||
<h1>Transfer details</h1>
|
||||
</div>
|
||||
|
||||
<section>
|
||||
<div class="container py-1">
|
||||
<div class="row d-flex justify-content-center align-items-center h-100">
|
||||
<div class="col-md-10 col-lg-8 col-xl-6">
|
||||
<div class="card card-admin card-stepper" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">ID: 1222528743</span>
|
||||
<p class="text-muted">12,March 2019</p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All orders</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body p-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<div class="flex-fill">
|
||||
<h5 class="bold">Passenger: +1 123 12345678</h5>
|
||||
<p class="text-muted"> Budapest, Dózsa György út 35, 1146</p>
|
||||
<h4>27th November, 2023</h4>
|
||||
<h4 class="mb-3 text-muted"> 10:00 AM</h4>
|
||||
<hr />
|
||||
<h3>POX-382</h3>
|
||||
<p class="text-muted"> Silver, Toyota, Prius</p>
|
||||
<hr />
|
||||
<p class="text-muted">Status on: <span class="text-body">11:30pm, Today</span></p>
|
||||
</div>
|
||||
<div>
|
||||
<!--img class="align-self-center img-fluid"
|
||||
src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/E-commerce/Products/6.webp" width="250"-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<ul id="progressbar-1" class="mx-0 mt-0 mb-5 px-0 pt-0 pb-4">
|
||||
<li class="step0 active" id="step1">
|
||||
<span style="margin-left: 22px; margin-top: 12px;">PLACED</span>
|
||||
</li>
|
||||
<li class="step0 active text-center" id="step2"><span>WAITING FOR PICK UP</span></li>
|
||||
<li class="step0 text-muted text-end" id="step3">
|
||||
<span style="margin-right: 22px;">FINISHED</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<h4> $ 35 <span class="small text-muted"> via (COD) </span></h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer p-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
<h5 class="fw-normal mb-0"><a href="#!">Contact driver</a></h5>
|
||||
<div class="border-start h-100"></div>
|
||||
<h5 class="fw-normal mb-0"><a href="#!">Cancel</a></h5>
|
||||
<div class="border-start h-100"></div>
|
||||
<h5 class="fw-normal mb-0"><a href="#!">Modify</a></h5>
|
||||
<div class="border-start h-100"></div>
|
||||
<h5 class="fw-normal mb-0"><a href="#!">Pay</a></h5>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
@code {
|
||||
|
||||
}
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using TIAM.Entities.TransferDestinations;
|
||||
using TIAMWebApp.Shared.Application.Models;
|
||||
|
||||
namespace EmployeePortal.Client.Components
|
||||
{
|
||||
public partial class Transfer : ComponentBase
|
||||
{
|
||||
|
||||
public string DestinationId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
protected TransferDestination TDestinations
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +1,6 @@
|
|||
@page "/transfer"
|
||||
@using TIAMSharedUI.Shared
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@inject ITransferDataService transferDataService
|
||||
|
||||
@inject NavigationManager navManager
|
||||
<PageTitle>Transfer</PageTitle>
|
||||
|
||||
<div class="text-center m-5">
|
||||
|
|
@ -11,15 +9,17 @@
|
|||
</div>
|
||||
|
||||
|
||||
<SliderItemSelector @ref="slider" OnSliderChanged=@DisplaySlideData></SliderItemSelector>
|
||||
<SliderItemSelector @ref="slider" OnSliderChanged=@DisplaySlideData TextChanged="@changeDest"></SliderItemSelector>
|
||||
|
||||
<div class="wrapper">
|
||||
<div class="text-center name">
|
||||
@message
|
||||
</div>
|
||||
|
||||
<form class="p-3 mt-2">
|
||||
<div class="form-field d-flex align-items-center">
|
||||
<input type="tel" name="phone" id="phone" placeholder="Pick up address">
|
||||
<input value=@message2 type="text" name="DestinationAddress" id="destinationAddress" placeholder="Destination" disabled>
|
||||
</div>
|
||||
|
||||
<div class="form-field d-flex align-items-center">
|
||||
<input type="tel" name="phone" id="phone" placeholder="Phone number">
|
||||
</div>
|
||||
<div class="form-field d-flex align-items-center">
|
||||
<input type="text" name="address" id="address" placeholder="Pick up address">
|
||||
|
|
@ -43,11 +43,17 @@
|
|||
|
||||
@code {
|
||||
SliderItemSelector slider;
|
||||
public string message;
|
||||
public string message;
|
||||
public string message2;
|
||||
public List<string> destinations = new List<string>() {"Liszt Ferenc Airport", "Buda Castle", "Chain Bridge"};
|
||||
|
||||
void DisplaySlideData()
|
||||
{
|
||||
message = " Target destination is " + slider.SliderElementId.ToString();
|
||||
if(slider.SliderElementId != 0)
|
||||
{
|
||||
message2 = destinations[slider.SliderElementId-1];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*protected override void OnAfterRender(bool isFirst)
|
||||
|
|
@ -55,16 +61,13 @@
|
|||
message = " Target destination is " + slider.SliderElementId.ToString();
|
||||
}*/
|
||||
|
||||
public void next()
|
||||
void changeDest(string dest)
|
||||
{
|
||||
|
||||
message2 = dest;
|
||||
}
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
var suppliers = await transferDataService.GetDestinationsAsync();
|
||||
Console.WriteLine(string.Join("; ", suppliers.Select(x => x.Name)));
|
||||
}
|
||||
public void next() => navManager.NavigateTo("/transfer2");
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -175,8 +175,8 @@
|
|||
height: 40px;
|
||||
/*background-color: #03A9F4;*/
|
||||
color: #fff;
|
||||
border-radius: 25px;
|
||||
box-shadow: 3px 3px 3px #b1b1b1, -3px -3px 3px #fff;
|
||||
border-radius: 15px;
|
||||
/*box-shadow: 3px 3px 3px #b1b1b1, -3px -3px 3px #fff;*/
|
||||
letter-spacing: 1.3px;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,72 @@
|
|||
@page "/transfer2"
|
||||
<PageTitle>Transferdetails</PageTitle>
|
||||
@inject NavigationManager navManager
|
||||
|
||||
<div class="text-center m-5">
|
||||
<h1>Transfer summary</h1>
|
||||
<h2 style="font-size:small">Please review your transfer!</h2>
|
||||
</div>
|
||||
|
||||
<section>
|
||||
<div class="container py-1">
|
||||
<div class="row d-flex justify-content-center align-items-center h-100">
|
||||
<div class="col-md-10 col-lg-8 col-xl-6">
|
||||
<div class="card card-admin card-stepper" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<h4>27th November, 2023, 10:00 AM</h4>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body p-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<div class="flex-fill">
|
||||
<p class="text-muted"> Passenger info</p>
|
||||
<h5 class="bold"> +1 123 12345678</h5>
|
||||
<hr/>
|
||||
<p class="text-muted">Destination</p>
|
||||
<h5 class="bold">Liszt Ferenc Airport</h5>
|
||||
<hr />
|
||||
<p class="text-muted"> Pick up address</p>
|
||||
<h5> Budapest, Dózsa György út 35, 1146</h5>
|
||||
<hr />
|
||||
<h5>3 persons</h5>
|
||||
<p class="text-muted"> Silver, Toyota, Prius</p>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<!--img class="align-self-center img-fluid"
|
||||
src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/E-commerce/Products/6.webp" width="250"-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<h4> $ 35 <span class="small text-muted"> via (COD) </span></h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer p-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a class="btn btn-danger" href="#!">Cancel</a>
|
||||
<div class="border-start h-100"></div>
|
||||
<a class="btn btn-warning" @onclick="previous">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
<a class="btn btn-success" href="#!">Finalize</a>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
@code {
|
||||
public void next() => navManager.NavigateTo("/transfer");
|
||||
public void previous() => navManager.NavigateTo("/transfer3");
|
||||
}
|
||||
|
|
@ -4,36 +4,35 @@
|
|||
|
||||
<div class="text-center m-5">
|
||||
<h1>Transfer details</h1>
|
||||
<h2 style="font-size:small">Swipe to select your destination!</h2>
|
||||
</div>
|
||||
|
||||
<section>
|
||||
<div class="container py-1">
|
||||
<div class="row d-flex justify-content-center align-items-center h-100">
|
||||
<div class="col-md-10 col-lg-8 col-xl-6">
|
||||
<div class="card card-stepper" style="border-radius: 16px;">
|
||||
<div class="card-header p-4">
|
||||
<div class="card card-admin card-stepper" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<p class="text-muted mb-2"> Order ID <span class="fw-bold text-body">1222528743</span></p>
|
||||
<p class="text-muted mb-0"> Place On <span class="fw-bold text-body">12,March 2019</span> </p>
|
||||
<span class="fw-bold text-body">ID: 1222528743</span>
|
||||
<p class="text-muted">12,March 2019</p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">View Details</a> </h6>
|
||||
<h6 class="mb-0"> <a href="#">All orders</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body p-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<div class="flex-fill">
|
||||
<h5 class="bold">Museum of Ethnography</h5>
|
||||
<h5 class="bold">Passenger: +1 123 12345678</h5>
|
||||
<p class="text-muted"> Budapest, Dózsa György út 35, 1146</p>
|
||||
<h4>27th November, 2023</h4>
|
||||
<h4 class="mb-3 text-muted"> 10:00 AM</h4>
|
||||
<hr class="solid mb-3">
|
||||
<hr />
|
||||
<h3>POX-382</h3>
|
||||
<p class="text-muted"> Silver, Toyota, Prius</p>
|
||||
<hr class="solid mb-3">
|
||||
<hr />
|
||||
<p class="text-muted">Status on: <span class="text-body">11:30pm, Today</span></p>
|
||||
</div>
|
||||
<div>
|
||||
|
|
@ -5,6 +5,7 @@
|
|||
@layout AdminLayout
|
||||
@inject IPopulationStructureDataProvider DataProvider
|
||||
@inject ISupplierService SupplierService
|
||||
@inject IUserDataService UserDataService
|
||||
<PageTitle>Transfer</PageTitle>
|
||||
|
||||
<div class="text-center m-5">
|
||||
|
|
@ -13,520 +14,573 @@
|
|||
</div>
|
||||
|
||||
<div class="container-fluid">
|
||||
<!--App admin-->
|
||||
<div class="row py-3">
|
||||
<div class=" col-12 col-xl-3 col-lg-6">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Transfers</span>
|
||||
<p class="text-muted mb-0">Summary</p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All details</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
|
||||
<h5>New</h5>
|
||||
<p>12</p>
|
||||
<h5>Scheduled</h5>
|
||||
<p>182</p>
|
||||
<h5>Finished</h5>
|
||||
<p>15665</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Manage transgfers</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" col-12 col-xl-3 col-lg-6">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Service providers</span>
|
||||
<p class="text-muted mb-0">Summary</p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All details</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
|
||||
<h5>Guides</h5>
|
||||
<p>32</p>
|
||||
<h5>Hotels</h5>
|
||||
<p>82</p>
|
||||
<h5>Restaurants</h5>
|
||||
<p>15</p>
|
||||
<h5>Transfer company</h5>
|
||||
<p>1</p>
|
||||
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Manage service providers</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" col-12 col-xl-3 col-lg-6">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Finances</span>
|
||||
<p class="text-muted mb-0">Summary</p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All details</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
|
||||
<h5>Income</h5>
|
||||
<p>$32 456</p>
|
||||
<h5>Comission to be paid</h5>
|
||||
<p>$5 345</p>
|
||||
<h5>Service fees to be paid</h5>
|
||||
<p>$23 871</p>
|
||||
<h5>Revenue</h5>
|
||||
<p>$3 240</p>
|
||||
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Manage service providers</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" col-12 col-xl-3 col-lg-6">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Affiliates</span>
|
||||
<p class="text-muted mb-0">Summary</p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All details</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
|
||||
<h5>Top affiliate</h5>
|
||||
<p>Hotel Bambara</p>
|
||||
<h5>Comission Earned</h5>
|
||||
<p>$1 315</p>
|
||||
<hr />
|
||||
<h5>Top referred item</h5>
|
||||
<p>Buda castle tour</p>
|
||||
<hr />
|
||||
<h5>Level 1 affiliates</h5>
|
||||
<p>132</p>
|
||||
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Manage affiliates</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row py-3">
|
||||
|
||||
<div class="col-12 col-xl-6">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Hotel details</span>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All settings</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
|
||||
<DxGrid Data="@AffiliateData">
|
||||
<Columns>
|
||||
<DxGridDataColumn FieldName="AffiliateId" Width="5%" />
|
||||
<DxGridDataColumn FieldName="IncomeThisMonth" Width="15%" />
|
||||
<DxGridDataColumn FieldName="IncomeAlltime" Width="15%" />
|
||||
<DxGridDataColumn FieldName="CompanyName" />
|
||||
<DxGridDataColumn FieldName="Status" Width="10%" />
|
||||
</Columns>
|
||||
</DxGrid>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-xl-6">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Population Data</span>
|
||||
<p class="text-muted mb-0">12,March 2020 </p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">View source</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body py-2 px-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<DxChart T="PopulationAgeStructureItem"
|
||||
Data="@ChartsData"
|
||||
Width="100%" Height="300px">
|
||||
<DxChartTitle Text="Population: Age Structure">
|
||||
<DxChartSubTitle Text="Data Estimate for 2020" />
|
||||
</DxChartTitle>
|
||||
<DxChartBarSeries Name="0-14 years"
|
||||
T="PopulationAgeStructureItem"
|
||||
TArgument="string"
|
||||
TValue="int"
|
||||
ArgumentField="pasi => pasi.Country"
|
||||
ValueField="pasi => pasi.Population"
|
||||
SummaryMethod="Enumerable.Sum"
|
||||
Filter='pasi => pasi.AgeGroup == "0-14 years"' />
|
||||
<DxChartBarSeries Name="15-64 years"
|
||||
T="PopulationAgeStructureItem"
|
||||
TArgument="string"
|
||||
TValue="int"
|
||||
ArgumentField="pasi => pasi.Country"
|
||||
ValueField="pasi => pasi.Population"
|
||||
SummaryMethod="Enumerable.Sum"
|
||||
Filter='pasi => pasi.AgeGroup == "15-64 years"' />
|
||||
<DxChartBarSeries Name="65 years and older"
|
||||
T="PopulationAgeStructureItem"
|
||||
TArgument="string"
|
||||
TValue="int"
|
||||
ArgumentField="pasi => pasi.Country"
|
||||
ValueField="pasi => pasi.Population"
|
||||
SummaryMethod="Enumerable.Sum"
|
||||
Filter='pasi => pasi.AgeGroup == "65 years and older"' />
|
||||
<DxChartLegend Position="RelativePosition.Outside"
|
||||
HorizontalAlignment="HorizontalAlignment.Center"
|
||||
VerticalAlignment="VerticalEdge.Bottom" />
|
||||
<DxChartTooltip Enabled="true"
|
||||
Position="RelativePosition.Outside">
|
||||
<div style="margin: 0.75rem">
|
||||
<div class="fw-bold">@context.Point.Argument</div>
|
||||
<div>Age Group: @context.Point.SeriesName</div>
|
||||
<div>Population: @($"{context.Point.Value:N0}")</div>
|
||||
</div>
|
||||
</DxChartTooltip>
|
||||
</DxChart>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- App admin end-->
|
||||
<!-- Hotel admin-->
|
||||
|
||||
<div class="row py-3">
|
||||
|
||||
<div class=" col-12 col-xl-3">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Hotel details</span>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All settings</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<div class="flex-fill">
|
||||
<h5 class="bold">Your QR code</h5>
|
||||
<p class="text-muted"> Use this in printed material, to gain referrals</p>
|
||||
</div>
|
||||
<div>
|
||||
<img class="align-self-center img-fluid"
|
||||
src="_content/TIAMSharedUI/images/myqr.png" width="128">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<h4> Some <span class="small text-muted"> conclusion </span></h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" col-12 col-xl-3">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">My orders</span>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All settings</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
|
||||
<DxGrid Data="@OrderData">
|
||||
<Columns>
|
||||
<DxGridDataColumn FieldName="Date" DisplayFormat="D" MinWidth="100" />
|
||||
<DxGridDataColumn FieldName="Income" Width="15%" />
|
||||
<DxGridDataColumn FieldName="TransactionId" Width="15%" />
|
||||
<DxGridDataColumn FieldName="Status" Width="10%" />
|
||||
</Columns>
|
||||
</DxGrid>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<h4> Some <span class="small text-muted"> conclusion </span></h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" col-12 col-xl-3">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Hotel details</span>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All settings</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class=" col-12 col-xl-3">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Panel title</span>
|
||||
<p class="text-muted mb-0">Subtitle</p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All details</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<div class="flex-fill">
|
||||
<h5 class="bold">Some info</h5>
|
||||
<p class="text-muted"> Budapest, Dózsa György út 35, 1146</p>
|
||||
</div>
|
||||
<div>
|
||||
<!--img class="align-self-center img-fluid"
|
||||
src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/E-commerce/Products/6.webp" width="250"-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<ul id="progressbar-1" class="mx-0 mt-0 mb-5 px-0 pt-0 pb-4">
|
||||
<li class="step0 active" id="step1">
|
||||
<span style="margin-left: 22px; margin-top: 12px;">PLACED</span>
|
||||
</li>
|
||||
<li class="step0 active text-center" id="step2"><span>WAITING FOR PICK UP</span></li>
|
||||
<li class="step0 text-muted text-end" id="step3">
|
||||
<span style="margin-right: 22px;">FINISHED</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<h4> Some <span class="small text-muted"> conclusion </span></h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Hotel admin end-->
|
||||
|
||||
@{
|
||||
if(userType == 4)
|
||||
{
|
||||
<!--App admin-->
|
||||
<div class="row py-3">
|
||||
<div class=" col-12 col-xl-3 col-lg-6">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Transfers</span>
|
||||
<p class="text-muted mb-0">Summary</p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All details</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
|
||||
<h5>New</h5>
|
||||
<p>12</p>
|
||||
<h5>Scheduled</h5>
|
||||
<p>182</p>
|
||||
<h5>Finished</h5>
|
||||
<p>15665</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Manage transgfers</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" col-12 col-xl-3 col-lg-6">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Service providers</span>
|
||||
<p class="text-muted mb-0">Summary</p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All details</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
|
||||
<h5>Guides</h5>
|
||||
<p>32</p>
|
||||
<h5>Hotels</h5>
|
||||
<p>82</p>
|
||||
<h5>Restaurants</h5>
|
||||
<p>15</p>
|
||||
<h5>Transfer company</h5>
|
||||
<p>1</p>
|
||||
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Manage service providers</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" col-12 col-xl-3 col-lg-6">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Finances</span>
|
||||
<p class="text-muted mb-0">Summary</p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All details</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
|
||||
<h5>Income</h5>
|
||||
<p>$32 456</p>
|
||||
<h5>Comission to be paid</h5>
|
||||
<p>$5 345</p>
|
||||
<h5>Service fees to be paid</h5>
|
||||
<p>$23 871</p>
|
||||
<h5>Revenue</h5>
|
||||
<p>$3 240</p>
|
||||
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Manage service providers</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" col-12 col-xl-3 col-lg-6">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Affiliates</span>
|
||||
<p class="text-muted mb-0">Summary</p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All details</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
|
||||
<h5>Top affiliate</h5>
|
||||
<p>Hotel Bambara</p>
|
||||
<h5>Comission Earned</h5>
|
||||
<p>$1 315</p>
|
||||
<hr />
|
||||
<h5>Top referred item</h5>
|
||||
<p>Buda castle tour</p>
|
||||
<hr />
|
||||
<h5>Level 1 affiliates</h5>
|
||||
<p>132</p>
|
||||
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Manage affiliates</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-xl-6">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Hotel details</span>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All settings</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
|
||||
<DxGrid Data="@AffiliateData">
|
||||
<Columns>
|
||||
<DxGridDataColumn FieldName="AffiliateId" Width="5%" />
|
||||
<DxGridDataColumn FieldName="IncomeThisMonth" Width="15%" />
|
||||
<DxGridDataColumn FieldName="IncomeAlltime" Width="15%" />
|
||||
<DxGridDataColumn FieldName="CompanyName" />
|
||||
<DxGridDataColumn FieldName="Status" Width="10%" />
|
||||
</Columns>
|
||||
</DxGrid>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-xl-6">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Population Data</span>
|
||||
<p class="text-muted mb-0">12,March 2020 </p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">View source</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body py-2 px-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<DxChart T="PopulationAgeStructureItem"
|
||||
Data="@ChartsData"
|
||||
Width="100%" Height="300px">
|
||||
<DxChartTitle Text="Population: Age Structure">
|
||||
<DxChartSubTitle Text="Data Estimate for 2020" />
|
||||
</DxChartTitle>
|
||||
<DxChartBarSeries Name="0-14 years"
|
||||
T="PopulationAgeStructureItem"
|
||||
TArgument="string"
|
||||
TValue="int"
|
||||
ArgumentField="pasi => pasi.Country"
|
||||
ValueField="pasi => pasi.Population"
|
||||
SummaryMethod="Enumerable.Sum"
|
||||
Filter='pasi => pasi.AgeGroup == "0-14 years"' />
|
||||
<DxChartBarSeries Name="15-64 years"
|
||||
T="PopulationAgeStructureItem"
|
||||
TArgument="string"
|
||||
TValue="int"
|
||||
ArgumentField="pasi => pasi.Country"
|
||||
ValueField="pasi => pasi.Population"
|
||||
SummaryMethod="Enumerable.Sum"
|
||||
Filter='pasi => pasi.AgeGroup == "15-64 years"' />
|
||||
<DxChartBarSeries Name="65 years and older"
|
||||
T="PopulationAgeStructureItem"
|
||||
TArgument="string"
|
||||
TValue="int"
|
||||
ArgumentField="pasi => pasi.Country"
|
||||
ValueField="pasi => pasi.Population"
|
||||
SummaryMethod="Enumerable.Sum"
|
||||
Filter='pasi => pasi.AgeGroup == "65 years and older"' />
|
||||
<DxChartLegend Position="RelativePosition.Outside"
|
||||
HorizontalAlignment="HorizontalAlignment.Center"
|
||||
VerticalAlignment="VerticalEdge.Bottom" />
|
||||
<DxChartTooltip Enabled="true"
|
||||
Position="RelativePosition.Outside">
|
||||
<div style="margin: 0.75rem">
|
||||
<div class="fw-bold">@context.Point.Argument</div>
|
||||
<div>Age Group: @context.Point.SeriesName</div>
|
||||
<div>Population: @($"{context.Point.Value:N0}")</div>
|
||||
</div>
|
||||
</DxChartTooltip>
|
||||
</DxChart>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class=" col-12">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Affiliates</span>
|
||||
<p class="text-muted mb-0">Details</p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All details</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
|
||||
<style>
|
||||
.dxbl-grid {
|
||||
--dxbl-grid-font-family: inherit;
|
||||
--dxbl-grid-font-size: 0.75rem;
|
||||
--dxbl-grid-line-height: 1.4285;
|
||||
--dxbl-grid-min-width: 240px;
|
||||
--dxbl-grid-bg: #e7e6f7;
|
||||
--dxbl-grid-color: #58457b;
|
||||
}
|
||||
</style>
|
||||
|
||||
<DxGrid Data="@Data">
|
||||
<Columns>
|
||||
<DxGridDataColumn FieldName="CompanyName" AllowSort="true" />
|
||||
<DxGridDataColumn FieldName="ContactName" />
|
||||
<DxGridDataColumn FieldName="ContactTitle" Width="3%" />
|
||||
<DxGridDataColumn FieldName="Country" Width="10%" />
|
||||
<DxGridDataColumn FieldName="City" Width="10%" />
|
||||
<DxGridDataColumn FieldName="Address" />
|
||||
<DxGridDataColumn FieldName="Phone" Width="10%" />
|
||||
</Columns>
|
||||
</DxGrid>
|
||||
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- App admin end-->
|
||||
<!-- Hotel admin-->
|
||||
}
|
||||
|
||||
else if(userType == 1)
|
||||
{
|
||||
<div class="row py-3">
|
||||
|
||||
<div class=" col-12 col-xl-3">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Hotel details</span>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All settings</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<div class="flex-fill">
|
||||
<h5 class="bold">Your QR code</h5>
|
||||
<p class="text-muted"> Use this in printed material, to gain referrals</p>
|
||||
</div>
|
||||
<div>
|
||||
<img class="align-self-center img-fluid"
|
||||
src="_content/TIAMSharedUI/images/myqr.png" width="128">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<h4> Some <span class="small text-muted"> conclusion </span></h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" col-12 col-xl-3">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">My orders</span>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All settings</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
|
||||
<DxGrid Data="@OrderData">
|
||||
<Columns>
|
||||
<DxGridDataColumn FieldName="Date" DisplayFormat="D" MinWidth="100">
|
||||
<CellDisplayTemplate>
|
||||
<a class="d-block text-left" href="transferdetails">@context.Value</a>
|
||||
</CellDisplayTemplate>
|
||||
|
||||
</DxGridDataColumn>
|
||||
<DxGridDataColumn FieldName="Income" Width="15%" />
|
||||
<DxGridDataColumn FieldName="TransactionId" Width="15%" />
|
||||
<DxGridDataColumn FieldName="Status" Width="10%" />
|
||||
</Columns>
|
||||
</DxGrid>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<h4> Some <span class="small text-muted"> conclusion </span></h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" col-12 col-xl-3">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Hotel details</span>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All settings</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class=" col-12 col-xl-3">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Panel title</span>
|
||||
<p class="text-muted mb-0">Subtitle</p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All details</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<div class="flex-fill">
|
||||
<h5 class="bold">Some info</h5>
|
||||
<p class="text-muted"> Budapest, Dózsa György út 35, 1146</p>
|
||||
</div>
|
||||
<div>
|
||||
<!--img class="align-self-center img-fluid"
|
||||
src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/E-commerce/Products/6.webp" width="250"-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<ul id="progressbar-1" class="mx-0 mt-0 mb-5 px-0 pt-0 pb-4">
|
||||
<li class="step0 active" id="step1">
|
||||
<span style="margin-left: 22px; margin-top: 12px;">PLACED</span>
|
||||
</li>
|
||||
<li class="step0 active text-center" id="step2"><span>WAITING FOR PICK UP</span></li>
|
||||
<li class="step0 text-muted text-end" id="step3">
|
||||
<span style="margin-right: 22px;">FINISHED</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<h4> Some <span class="small text-muted"> conclusion </span></h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" col-12">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Affiliates</span>
|
||||
<p class="text-muted mb-0">Details</p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All details</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
|
||||
<style>
|
||||
.dxbl-grid {
|
||||
--dxbl-grid-font-family: inherit;
|
||||
--dxbl-grid-font-size: 0.75rem;
|
||||
--dxbl-grid-line-height: 1.4285;
|
||||
--dxbl-grid-min-width: 240px;
|
||||
--dxbl-grid-bg: #e7e6f7;
|
||||
--dxbl-grid-color: #58457b;
|
||||
}
|
||||
</style>
|
||||
|
||||
<DxGrid Data="@Data">
|
||||
<Columns>
|
||||
<DxGridDataColumn FieldName="CompanyName" AllowSort="true" />
|
||||
<DxGridDataColumn FieldName="ContactName" />
|
||||
<DxGridDataColumn FieldName="ContactTitle" Width="3%" />
|
||||
<DxGridDataColumn FieldName="Country" Width="10%" />
|
||||
<DxGridDataColumn FieldName="City" Width="10%" />
|
||||
<DxGridDataColumn FieldName="Address" />
|
||||
<DxGridDataColumn FieldName="Phone" Width="10%" />
|
||||
</Columns>
|
||||
</DxGrid>
|
||||
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Hotel admin end-->
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Stats admin-->
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="row py-3">
|
||||
<div class=" col-12">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Affiliates</span>
|
||||
<p class="text-muted mb-0">Details</p>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0"> <a href="#">All details</a> </h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
|
||||
<style>
|
||||
.dxbl-grid {
|
||||
--dxbl-grid-font-family: inherit;
|
||||
--dxbl-grid-font-size: 0.75rem;
|
||||
--dxbl-grid-line-height: 1.4285;
|
||||
--dxbl-grid-min-width: 240px;
|
||||
--dxbl-grid-bg: #e7e6f7;
|
||||
--dxbl-grid-color: #58457b;
|
||||
}
|
||||
</style>
|
||||
|
||||
<DxGrid Data="@Data">
|
||||
<Columns>
|
||||
<DxGridDataColumn FieldName="CompanyName" AllowSort="true" />
|
||||
<DxGridDataColumn FieldName="ContactName" />
|
||||
<DxGridDataColumn FieldName="ContactTitle" Width="3%"/>
|
||||
<DxGridDataColumn FieldName="Country" Width="10%" />
|
||||
<DxGridDataColumn FieldName="City" Width="10%" />
|
||||
<DxGridDataColumn FieldName="Address" />
|
||||
<DxGridDataColumn FieldName="Phone" Width="10%" />
|
||||
</Columns>
|
||||
</DxGrid>
|
||||
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<a href="#!">Modify</a>
|
||||
<div class="border-start h-100"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row py-3">
|
||||
<div class=" col-12 col-xl-3">
|
||||
<div class="card card-admin" style="border-radius: 16px;">
|
||||
|
|
@ -549,7 +603,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<!--img class="align-self-center img-fluid"
|
||||
src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/E-commerce/Products/6.webp" width="250"-->
|
||||
src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/E-commerce/Products/6.webp" width="250"-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -599,7 +653,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<!--img class="align-self-center img-fluid"
|
||||
src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/E-commerce/Products/6.webp" width="250"-->
|
||||
src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/E-commerce/Products/6.webp" width="250"-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -649,7 +703,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<!--img class="align-self-center img-fluid"
|
||||
src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/E-commerce/Products/6.webp" width="250"-->
|
||||
src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/E-commerce/Products/6.webp" width="250"-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -679,7 +733,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class=" col-12 col-xl-3">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -696,10 +750,19 @@
|
|||
|
||||
object? Data { get; set; }
|
||||
|
||||
bool isUserLoggedIn;
|
||||
int userType = 0;
|
||||
|
||||
|
||||
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
base.OnInitialized();
|
||||
|
||||
var user = await UserDataService.IsLoggedInAsync();
|
||||
isUserLoggedIn = user.IsLoggedIn;
|
||||
userType = (int)user.UserType;
|
||||
|
||||
OrderData = new object[]
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,8 +1,12 @@
|
|||
@inherits LayoutComponentBase
|
||||
@using TIAMSharedUI.Shared.User
|
||||
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Models;
|
||||
@inject NavigationManager NavigationManager
|
||||
@inject IUserDataService userDataService
|
||||
<div class="page">
|
||||
<div class="my-sidebar">
|
||||
|
||||
<AdminNavMenu />
|
||||
</div>
|
||||
|
||||
|
|
@ -10,7 +14,30 @@
|
|||
|
||||
|
||||
<article class="content">
|
||||
@{
|
||||
if (isUserLoggedIn)
|
||||
{
|
||||
<TopRow></TopRow>
|
||||
}
|
||||
}
|
||||
@Body
|
||||
</article>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
|
||||
bool isUserLoggedIn;
|
||||
int userType = 0;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
var user = await userDataService.IsLoggedInAsync();
|
||||
isUserLoggedIn = user.IsLoggedIn;
|
||||
|
||||
if (!isUserLoggedIn)
|
||||
{
|
||||
NavigationManager.NavigateTo("/login");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
@inherits LayoutComponentBase
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@inject IUserDataService UserDataService;
|
||||
@inject IJSRuntime jsRuntime
|
||||
|
||||
<div class="page">
|
||||
<div class="my-sidebar">
|
||||
|
|
@ -9,7 +12,47 @@
|
|||
|
||||
|
||||
<article class="content">
|
||||
@{
|
||||
if(isUserLoggedIn)
|
||||
{
|
||||
<TopRow></TopRow>
|
||||
}
|
||||
}
|
||||
|
||||
@Body
|
||||
</article>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
|
||||
bool isUserLoggedIn;
|
||||
int userType = 0;
|
||||
int currentUserRole = 249;
|
||||
//add a new dictionary for the role types
|
||||
|
||||
|
||||
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
var user = await UserDataService.IsLoggedInAsync();
|
||||
isUserLoggedIn = user.IsLoggedIn;
|
||||
|
||||
}
|
||||
|
||||
protected override void OnAfterRender(bool isFirst)
|
||||
{
|
||||
LogToBrowserConsole("0 ");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void LogToBrowserConsole(string message)
|
||||
{
|
||||
jsRuntime.InvokeVoidAsync("console.log", message);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
|
||||
.nav-item ::deep a {
|
||||
color: #58457b;
|
||||
border-radius: 25px;
|
||||
border-radius: 15px;
|
||||
height: 3rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,41 @@
|
|||
|
||||
<div id="owl-selector" class="owl-carousel owl-theme" style="padding-left: 20px; padding-right:20px;">
|
||||
<style>
|
||||
.underlineInput{
|
||||
padding-left: 10px;
|
||||
margin-bottom: 20px;
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
|
||||
.underlineInput > input {
|
||||
padding-left: 10px;
|
||||
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="owl-selector" class="owl-carousel owl-theme" style="padding-left: 20px; padding-right:20px; border-radius: 15px;">
|
||||
<div class="item" id="0" style="background-color: rgba(0,0,0,0.1)">
|
||||
<div class="item-desc text-center pt-3">
|
||||
<h3>Please type an address or swipe to select from preset destinations!</h3>
|
||||
<div class="wrapper" style="max-width: 800px; margin:0 auto">
|
||||
|
||||
|
||||
|
||||
<DxTextBox
|
||||
TextChanged="@((newValue) => OnTextChanged(newValue))"
|
||||
BindValueMode="@BindValueMode"
|
||||
InputDelay="@InputDelay"
|
||||
NullText="Type text..."
|
||||
CssClass="cw-320 form-field underlineInput" />
|
||||
|
||||
</div>
|
||||
|
||||
<p class="demo-text cw-320 mt-2">
|
||||
Text: <b>@TextValue</b>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item" id="1" style="background-image: url(https://images.unsplash.com/photo-1551867633-194f125bddfa?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D); background-position: center;">
|
||||
<div class="item-desc text-center pt-3">
|
||||
<h3>Liszt Ferenc Airport</h3>
|
||||
|
|
@ -20,12 +56,6 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<form>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
|
|
@ -51,20 +81,20 @@
|
|||
|
||||
|
||||
owl.owlCarousel({
|
||||
|
||||
|
||||
navigation: true, // Show next and prev buttons
|
||||
|
||||
loop: true,
|
||||
slideSpeed: 300,
|
||||
paginationSpeed: 400,
|
||||
|
||||
items: 1,
|
||||
itemsDesktop: false,
|
||||
itemsDesktopSmall: false,
|
||||
itemsTablet: false,
|
||||
itemsMobile: false
|
||||
|
||||
itemsMobile: false
|
||||
});
|
||||
|
||||
owl.trigger("to.owl.carousel", owl.maximum)
|
||||
|
||||
});
|
||||
|
||||
function CStoJSCall(dotNetObjRef) {
|
||||
|
|
@ -94,11 +124,19 @@
|
|||
|
||||
@code {
|
||||
|
||||
public string TextValue { get; set; } = null;
|
||||
int? InputDelay { get; set; } = 3500;
|
||||
BindValueMode BindValueMode { get; set; } = BindValueMode.OnInput;
|
||||
bool BindDelayEnabled { get { return BindValueMode == BindValueMode.OnDelayedInput; } }
|
||||
[Parameter]
|
||||
public EventCallback<string> TextChanged { get; set; }
|
||||
|
||||
public int SliderElementId = 0;
|
||||
string content = "";
|
||||
[Parameter]
|
||||
public EventCallback<int> OnSliderChanged { get; set; }
|
||||
|
||||
|
||||
[Inject]
|
||||
public IJSRuntime JSRuntime { get; set; }
|
||||
|
||||
|
|
@ -121,7 +159,13 @@
|
|||
SliderElementId = Convert.ToInt32(itemId);
|
||||
OnSliderChanged.InvokeAsync(Convert.ToInt32(itemId));
|
||||
|
||||
StateHasChanged();
|
||||
/*StateHasChanged();*/
|
||||
}
|
||||
|
||||
void OnTextChanged(string newValue)
|
||||
{
|
||||
TextValue = newValue;
|
||||
TextChanged.InvokeAsync(newValue);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
|
||||
.nav-item ::deep a {
|
||||
color: #58457b;
|
||||
border-radius: 25px;
|
||||
border-radius: 15px;
|
||||
height: 3rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
using DevExpress.Blazor;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.Components.Rendering;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace TIAMSharedUI.Shared.User
|
||||
{
|
||||
|
||||
public class TiamGrid<T> : ComponentBase
|
||||
{
|
||||
[Parameter]
|
||||
public IEnumerable<T> Data { get; set; }
|
||||
[Parameter]
|
||||
public RenderFragment ChildContent { get; set; }
|
||||
[Parameter]
|
||||
public Dictionary<string, object> Settings { get; set; }
|
||||
protected override void BuildRenderTree(RenderTreeBuilder builder)
|
||||
{
|
||||
builder.OpenComponent<DxGrid>(0);
|
||||
builder.AddAttribute(1, "Data", (object)Data);
|
||||
builder.AddAttribute(2, "Columns", ChildContent);
|
||||
if (Settings != null)
|
||||
{
|
||||
builder.AddMultipleAttributes(3, Settings);
|
||||
//OR
|
||||
//int seq = 3;
|
||||
//foreach (var item in Settings) {
|
||||
// builder.AddAttribute(seq++, item.Key, item.Value);
|
||||
//}
|
||||
}
|
||||
builder.CloseComponent();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
@page "/dev/tiamgridexample"
|
||||
|
||||
@using TIAMWebApp.Shared.Application.Interfaces;
|
||||
@using TIAMWebApp.Shared.Application.Models;
|
||||
@inject IWeatherForecastService WeatherForecastService;
|
||||
|
||||
<TiamGrid Data="Forecasts" Settings="InputAttributes">
|
||||
<DxGridCommandColumn Width="150px" />
|
||||
<DxGridDataColumn FieldName="@nameof(WeatherForecast.Date)"></DxGridDataColumn>
|
||||
<DxGridDataColumn FieldName="@nameof(WeatherForecast.TemperatureC)"></DxGridDataColumn>
|
||||
<DxGridDataColumn FieldName="@nameof(WeatherForecast.TemperatureF)"></DxGridDataColumn>
|
||||
<DxGridDataColumn FieldName="@nameof(WeatherForecast.Summary)"></DxGridDataColumn>
|
||||
</TiamGrid>
|
||||
|
||||
@code {
|
||||
|
||||
public List<WeatherForecast>? Forecasts { get; set; }
|
||||
public Dictionary<string, object> InputAttributes { get; set; } =
|
||||
new Dictionary<string, object>() {
|
||||
{ "PageSize", 5 },
|
||||
{ "ShowFilterRow", false },
|
||||
{ "PagerVisible" , false },
|
||||
{ "ShowGroupPanel", true }
|
||||
};
|
||||
protected override async Task OnInitializedAsync() {
|
||||
base.OnInitialized();
|
||||
WeatherForecast[]? data = await WeatherForecastService.GetWeatherForecastAsync();
|
||||
Forecasts = data.ToList();
|
||||
}
|
||||
}
|
||||
|
|
@ -30,11 +30,17 @@ body {
|
|||
}
|
||||
|
||||
.btn-primary {
|
||||
background-color: #475bd6;
|
||||
background-color: #475bd6;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.btn-success, .btn-warning, .btn-danger {
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.btn-secondary {
|
||||
background-color: #f7279f;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.btn-outline .btn-outline-dark {
|
||||
|
|
@ -68,18 +74,28 @@ select {
|
|||
.dxbl-text-edit {
|
||||
background-color: transparent;
|
||||
border-color: transparent;
|
||||
padding-left: 10px;
|
||||
/*padding-left: 10px;
|
||||
margin-bottom: 20px;
|
||||
border-radius: 20px;
|
||||
box-shadow: inset 3px 3px 3px #cbced1, inset -3px -3px 3px #fff;
|
||||
box-shadow: inset 3px 3px 3px #cbced1, inset -3px -3px 3px #fff;*/
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.dxbl-text-edit:focus, .dxbl-text-edit:focus-within {
|
||||
border-color: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.dxbl-text-edit-input {
|
||||
background-color: transparent;
|
||||
margin:10px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.dxbl-text-edit-input:focus, .dxbl-text-edit-input:focus-within {
|
||||
border-color: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/*my blazor overrides end*/
|
||||
.custom-select {
|
||||
padding: 10px 15px 10px 10px !important;
|
||||
|
|
@ -253,7 +269,7 @@ select:focus-visible {
|
|||
height: 40px;
|
||||
/*background-color: #03A9F4;*/
|
||||
color: #fff;
|
||||
border-radius: 25px;
|
||||
border-radius: 15px;
|
||||
/*box-shadow: 3px 3px 3px #b1b1b1, -3px -3px 3px #fff;*/
|
||||
letter-spacing: 1.3px;
|
||||
}
|
||||
|
|
@ -324,6 +340,8 @@ select:focus-visible {
|
|||
border-radius: 15px;*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*End Hero Carousel*/
|
||||
|
||||
/*Admin*/
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ builder.Services.AddScoped<IWeatherForecastService, WeatherForecastService>();
|
|||
builder.Services.AddScoped<ITransferDataService, TransferDataService>();
|
||||
builder.Services.AddScoped<IPopulationStructureDataProvider, PopulationStructureDataProvider>();
|
||||
builder.Services.AddScoped<ISupplierService, SupplierService>();
|
||||
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
|
||||
builder.Services.AddSingleton<IUserDataService, UserDataService>();
|
||||
builder.Services.AddSingleton(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
|
||||
builder.Services.AddDevExpressBlazor(configure => configure.BootstrapVersion = BootstrapVersion.v5);
|
||||
await builder.Build().RunAsync();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,85 @@
|
|||
using System.Net.Http.Json;
|
||||
using TIAMWebApp.Shared.Application.Interfaces;
|
||||
using TIAMWebApp.Shared.Application.Models;
|
||||
using static TIAMSharedUI.Shared.MainLayout;
|
||||
|
||||
namespace TIAMWebApp.Client.Services
|
||||
{
|
||||
public class UserDataService : IUserDataService
|
||||
{
|
||||
private readonly HttpClient http;
|
||||
public User? User { get; set; } = new User();
|
||||
public Dictionary<int, string> userRoleTypes { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
|
||||
|
||||
public UserDataService(HttpClient http)
|
||||
{
|
||||
this.http = http;
|
||||
}
|
||||
|
||||
|
||||
public List<RoleType> roleTypes = new List<RoleType>
|
||||
{
|
||||
new RoleType { Id = 1, RoleName = "Login" },
|
||||
new RoleType { Id = 2, RoleName = "Member" },
|
||||
new RoleType { Id = 4, RoleName = "Vip" },
|
||||
new RoleType { Id = 8, RoleName = "Uvip" },
|
||||
new RoleType { Id = 16, RoleName = "Volunteer" },
|
||||
new RoleType { Id = 32, RoleName = "Guide" },
|
||||
new RoleType { Id = 64, RoleName = "Protector" },
|
||||
new RoleType { Id = 128, RoleName = "Admin" },
|
||||
new RoleType { Id = 256, RoleName = "SuperAdmin" },
|
||||
new RoleType { Id = 512, RoleName = "God" }
|
||||
};
|
||||
|
||||
|
||||
public async Task<User> IsLoggedInAsync()
|
||||
{
|
||||
if (User == null)
|
||||
{
|
||||
User = new User();
|
||||
User.IsLoggedIn = false;
|
||||
User.UserType = UserType.User;
|
||||
return User;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
return User;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public async Task<User> AuthorizeUserAsync(int userType)
|
||||
{
|
||||
if (User == null)
|
||||
{
|
||||
User = new User();
|
||||
}
|
||||
//simply return true for now
|
||||
User.IsLoggedIn = true;
|
||||
User.UserType = (UserType)userType;
|
||||
return User;
|
||||
}
|
||||
|
||||
public Task<Dictionary<int, string>> GetUserRolesAsync(User user)
|
||||
{
|
||||
|
||||
//get the user's roles
|
||||
int role = User.UserRoles;
|
||||
|
||||
foreach (var roleType in roleTypes)
|
||||
{
|
||||
if ((role & roleType.Id) == roleType.Id)
|
||||
{
|
||||
|
||||
//add the role to the dictionary
|
||||
userRoleTypes.Add(roleType.Id, roleType.RoleName);
|
||||
|
||||
}
|
||||
}
|
||||
return Task.FromResult(userRoleTypes);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -15,7 +15,8 @@
|
|||
<link href="_content/TIAMSharedUI/css/app.css" rel="stylesheet" />
|
||||
<link href="_content/TIAMSharedUI/css/TourIAm.css" rel="stylesheet" />
|
||||
<link rel="icon" type="image/png" href="_content/TIAMSharedUI/favicon.png" />
|
||||
<link href="TIAMWebApp.Client.styles.css" rel="stylesheet" />
|
||||
<link href="TIAMWebApp.Client.styles.css" rel="stylesheet" />
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
|
@ -33,6 +34,7 @@
|
|||
<a class="dismiss">🗙</a>
|
||||
</div>
|
||||
<script src="_framework/blazor.webassembly.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/cesiumjs/1.105/Build/Cesium/Cesium.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js" integrity="sha384-cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0EcQF" crossorigin="anonymous"></script>
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,138 @@
|
|||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using GoogleApi.Entities.Common;
|
||||
using GoogleApi.Entities.Common.Enums;
|
||||
using GoogleApi.Entities.Maps.Common;
|
||||
using GoogleApi.Entities.Maps.Common.Enums;
|
||||
using GoogleApi.Entities.Maps.DistanceMatrix.Request;
|
||||
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System.Reflection.Metadata;
|
||||
using TIAMWebApp.Shared.Application.Models;
|
||||
using static DevExpress.XtraPrinting.Native.ExportOptionsPropertiesNames;
|
||||
using System.Net;
|
||||
using GoogleApi.Entities.Maps.DistanceMatrix.Response;
|
||||
|
||||
namespace TIAMWebApp.Server.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[Route("[controller]")]
|
||||
public class GoogleAPIController : ControllerBase
|
||||
{
|
||||
|
||||
|
||||
|
||||
private static readonly TripInfo[] Trips = new TripInfo[]
|
||||
{
|
||||
|
||||
new TripInfo(47.511887f, 19.031920f, 47.510769f, 19.081422f ),
|
||||
|
||||
|
||||
};
|
||||
|
||||
private readonly ILogger<SupplierAPIController> _logger;
|
||||
|
||||
public GoogleAPIController(ILogger<SupplierAPIController> logger)
|
||||
{
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[Route("GetAddressForCoordinates")]
|
||||
public string GetAddressForCoordinates(TripInfo myTrip)
|
||||
{
|
||||
|
||||
var latitude = Trips[0].StartLatitude; // Example latitude
|
||||
|
||||
var longitude = Trips[0].StartLongitude; // Example longitude
|
||||
Console.WriteLine(latitude);
|
||||
Console.WriteLine(longitude);
|
||||
|
||||
try
|
||||
{
|
||||
/*var address = locationService.GetAddressFromLatLang(latitude, longitude);
|
||||
Console.WriteLine(address.Address);
|
||||
string myaddress = address.Address;
|
||||
return "myaddress: " + myaddress;*/
|
||||
return "";
|
||||
}
|
||||
catch (System.Net.WebException ex)
|
||||
{
|
||||
Console.WriteLine("Google Maps API Error {0}", ex.Message);
|
||||
return "Google Maps API Error {0}" + ex.Message;
|
||||
}
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[Route("GetTravelTime")]
|
||||
//public string GetTravelTime(TripInfo)
|
||||
public async Task<string> GetTravelTimeWithGoogleMatrix()
|
||||
{
|
||||
var latitude1 = Trips[0].StartLatitude; // Example latitude
|
||||
|
||||
var longitude1 = Trips[0].StartLongitude; // Example longitude
|
||||
|
||||
var latitude2 = Trips[0].EndLatitude; // Example latitude
|
||||
|
||||
var longitude2 = Trips[0].EndLongitude; // Example longitude
|
||||
|
||||
Console.WriteLine(latitude1);
|
||||
Console.WriteLine(longitude1);
|
||||
Console.WriteLine(latitude2);
|
||||
Console.WriteLine(longitude2);
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
var origin1 = new Address("Margit utca 35, Budapest, Budapest, Magyarország");
|
||||
var origin2 = new Address("Nefelejcs utca 18, Budapest, Budapest, Magyarország");
|
||||
var destination1 = new Address("Százados utca 30/a, Budapest, Budapest, Magyarország");
|
||||
var destination2 = new Address("Novoszadek utca 53, Pilisszántó, Pest, Magyarország");
|
||||
DistanceMatrixResponse? response = null;
|
||||
|
||||
//var response = await GoogleMaps.DistanceMatrix.QueryAsync(request);
|
||||
try
|
||||
{
|
||||
var request = new DistanceMatrixRequest
|
||||
{
|
||||
Key = "AIzaSyAyEYJkpt2KDa3SJ34UNWO4-dNOJKmUtF8",
|
||||
Origins = new[]
|
||||
{
|
||||
new LocationEx(origin1),
|
||||
new LocationEx(origin2)
|
||||
},
|
||||
Destinations = new[]
|
||||
{
|
||||
new LocationEx(destination1),
|
||||
new LocationEx(destination2)
|
||||
},
|
||||
TravelMode = TravelMode.Driving,
|
||||
};
|
||||
|
||||
response = await GoogleApi.GoogleMaps.DistanceMatrix.QueryAsync(request);
|
||||
return response.RawJson;
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
|
||||
Console.Write("Errorcode: {0}", (int)response.Status);
|
||||
|
||||
}
|
||||
|
||||
|
||||
return "";
|
||||
|
||||
}
|
||||
catch (WebException ex)
|
||||
{
|
||||
Console.WriteLine("Google Maps API Error {0}", ex.Message);
|
||||
return "Google Maps API Error {0}" + ex.Message;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -10,7 +10,7 @@ namespace TIAMWebApp.Server.Controllers
|
|||
private static readonly string[] Summaries = new[]
|
||||
{
|
||||
"Freezing", "Bracing", "Kurvahideg", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
|
||||
};
|
||||
};
|
||||
|
||||
private readonly ILogger<WeatherForecastAPIController> _logger;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<DeleteExistingFiles>false</DeleteExistingFiles>
|
||||
<ExcludeApp_Data>false</ExcludeApp_Data>
|
||||
<LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
|
||||
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
|
||||
<LastUsedPlatform>Any CPU</LastUsedPlatform>
|
||||
<PublishProvider>FileSystem</PublishProvider>
|
||||
<PublishUrl>C:\REPOS\AYCODE\Publish\Server</PublishUrl>
|
||||
<WebPublishMethod>FileSystem</WebPublishMethod>
|
||||
<_TargetId>Folder</_TargetId>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -7,6 +7,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="GoogleApi" Version="5.2.4" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="7.0.10" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.13" />
|
||||
</ItemGroup>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,6 @@
|
|||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ActiveDebugProfile>https</ActiveDebugProfile>
|
||||
<NameOfLastUsedPublishProfile>C:\MANGOWEB\TourIAmProject\TIAMWebApp\Server\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
|
||||
<NameOfLastUsedPublishProfile>C:\REPOS\AYCODE\source\TourIAm\TIAMWebApp\Server\Properties\PublishProfiles\FolderProfile1.pubxml</NameOfLastUsedPublishProfile>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TIAMWebApp.Shared.Application.Models;
|
||||
|
||||
namespace TIAMWebApp.Shared.Application.Interfaces
|
||||
{
|
||||
public interface IUserDataService
|
||||
{
|
||||
public User? User { get; set; }
|
||||
public Dictionary<int, string> userRoleTypes { get; set; }
|
||||
|
||||
public Task<User> IsLoggedInAsync();
|
||||
|
||||
public Task<User> AuthorizeUserAsync(int userType);
|
||||
|
||||
public Task<Dictionary<int, string>> GetUserRolesAsync(User user);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace TIAMWebApp.Shared.Application.Models
|
||||
{
|
||||
|
||||
public class RoleType
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string? RoleName { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace TIAMWebApp.Shared.Application.Models
|
||||
{
|
||||
public class TripInfo
|
||||
{
|
||||
public float StartLatitude { get; set; }
|
||||
public float StartLongitude { get; set; }
|
||||
public float EndLatitude { get; set; }
|
||||
public float EndLongitude { get; set; }
|
||||
|
||||
public TripInfo(float startLatitude, float startLongitude, float endLatitude, float endLongitude )
|
||||
{
|
||||
StartLatitude = startLatitude;
|
||||
StartLongitude = startLongitude;
|
||||
EndLatitude = endLatitude;
|
||||
EndLongitude = endLongitude;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace TIAMWebApp.Shared.Application.Models
|
||||
{
|
||||
public class User
|
||||
{
|
||||
public bool IsLoggedIn { get; set; }
|
||||
public UserType UserType { get; set; }
|
||||
public int UserRoles { get; set; }
|
||||
public Dictionary<int, string> UserRolesDictionary { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public enum UserType
|
||||
{
|
||||
Hotel = 1,
|
||||
Transfer = 2,
|
||||
Guide = 3,
|
||||
Admin = 4,
|
||||
User = 5,
|
||||
Driver= 6
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue