This commit is contained in:
Loretta 2024-10-29 10:53:37 +01:00
commit 3b01805d1b
9 changed files with 79 additions and 1259 deletions

View File

@ -12,6 +12,7 @@
@using TIAMWebApp.Shared.Application.Interfaces
@using AyCode.Services.Loggers
@using TIAM.Core.Enums
@using TIAMWebApp.Shared.Application.Models
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
@using TIAMWebApp.Shared.Application.Services
@ -28,6 +29,7 @@
@inject IStringLocalizer<TIAMResources> localizer
@inject IWizardProcessor wizardProcessor
@inject AdminSignalRClient _adminSignalRClient
@inject ExchangeRateService ExchangeRateService
<PageTitle>@localizer.GetString("MyTransfers.Subtitle")</PageTitle>
<div class="text-center m-5">
@ -158,7 +160,8 @@ else
</div>
</div>
<div class="d-flex justify-content-between align-items-center">
<h4>EUR @_transfer.Price <span class="small text-muted"> </span></h4>
<h4>EUR @_transfer.Price</h4>
<h5>HUF @(_transfer.Price * Convert.ToDouble(exchangeRate.EURtoHUF))</h5>
</div>
</div>
@ -315,6 +318,8 @@ else
private bool _popupVisible;
private ExchangeRate exchangeRate;
public List<string> IgnoreList =
[
"ReceiverEmailAddress",
@ -429,6 +434,8 @@ else
_logger = new LoggerClient<EditTransfers>(_logWriters.ToArray());
_logger.Info($"parameter: {transferId.ToString()}");
exchangeRate = await ExchangeRateService.GetExchangeRateAsync();
await LoadTransfer();
sysAdmins = await _adminSignalRClient.GetByIdAsync<List<UserModelDtoDetail>>(SignalRTags.GetAllUserModelDtoDetails, TiamConstClient.SysAdmins[0]);
var test = _transfer.UserId;

View File

@ -3,590 +3,42 @@
@using TIAMWebApp.Shared.Application.Models;
@using TIAMWebApp.Shared.Application.Interfaces;
@using TIAMSharedUI.Shared.Components.BaseComponents
@using TIAMWebApp.Shared.Application.Services
@inherits BasePageComponent
@layout AdminLayout
@* @layout AdminLayout *@
@inject IPopulationStructureDataProvider DataProvider
@inject ISupplierService SupplierService
@inject IUserDataService UserDataService
<PageTitle>Transfer</PageTitle>
@inject ExchangeRateService ExchangeRateService
<PageTitle>Sysadmin</PageTitle>
<div class="text-center m-5">
<h1>Dashboard</h1>
<h1>Welcome</h1>
<h2 style="font-size:small">Have a nice day!</h2>
</div>
<div class="container-fluid">
@{
if(userType == 4)
<div class="row py-3">
<div class=" col-12 col-xl-3">
<div class="card card-admin" style="border-radius: 16px;">
<h3>Exchange Rate</h3>
@if (exchangeRate == null)
{
<!--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;
<p><em>Loading...</em></p>
}
</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)
else
{
<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-->
}
<p>Current EUR to HUF exchange rate: @exchangeRate.EURtoHUF</p>
<input type="number" @bind="exchangeRate.EURtoHUF" step="0.01" />
<button @onclick="SaveExchangeRate">Save</button>
}
<!-- Stats 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="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>
@ -631,112 +83,9 @@
</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 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 col-xl-3">
</div>
</div>
@ -745,89 +94,18 @@
@code {
object? OrderData { get; set; }
object? AffiliateData { get; set; }
IEnumerable<PopulationAgeStructureItem>? ChartsData;
object? Data { get; set; }
bool isUserLoggedIn;
int userType = 0;
private ExchangeRate exchangeRate;
protected override async Task OnInitializedAsync()
{
base.OnInitialized();
OrderData = new object[]
{
new {
Date = DateTime.Now.AddDays(3),
Income = "$5",
TransactionId = "POX987532582",
Status = "Finished"
},
new {
Date = DateTime.Today.AddDays(-2),
Income = "$5",
TransactionId = "POX645646382",
Status = "Finished"
},
new {
Date = DateTime.Today.AddDays(-6),
Income = "$8",
TransactionId = "POX645766311",
Status = "Finished"
},
};
AffiliateData = new object[]
{
new {
AffiliateId = 1,
IncomeThisMonth = "$5",
IncomeAlltime = "9425",
CompanyName = "Upgen Ltd.",
Status = "Active"
},
new {
AffiliateId = 2,
IncomeThisMonth = "$538",
IncomeAlltime = "13425",
CompanyName = "Kovacs hotel Ltd.",
Status = "Active"
},
new {
AffiliateId = 3,
IncomeThisMonth = "$0",
IncomeAlltime = "134200",
CompanyName = "Innosaurus Ltd.",
Status = "Passive"
},
};
ChartsData = await DataProvider.QueryData();
var suppliers = await SupplierService.GetSuppliersAsync();
Data = suppliers.Select(s =>
{
return new
{
CompanyName = s.CompanyName,
ContactName = s.ContactName,
ContactTitle = s.ContactTitle,
Country = s.Country,
City = s.City,
Address = s.Address,
Phone = s.Phone
};
});
}
[Parameter] public bool ShowSeriesPointMarkers { get; set; }
[Parameter] public bool ShowSeriesLabels { get; set; }
exchangeRate = await ExchangeRateService.GetExchangeRateAsync();
}
private async Task SaveExchangeRate()
{
await ExchangeRateService.SetExchangeRateAsync(exchangeRate);
}
}

View File

@ -16,179 +16,14 @@
<!--We need to check if the user is owner of a swerviceprovider-->
<div class="container">
<div class="container-fluid">
<!--App admin-->
<SysAdminComponent></SysAdminComponent>
<!-- App admin end-->
<hr />
<!-- Stats admin-->
<div class="row py-3">
<div class=" col-12 col-xl-3">
<div class="card glass 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 col-xl-3">
<div class="card glass 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 col-xl-3">
<div class="card glass 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 col-xl-3">
</div>
</div>
</div>

View File

@ -3,290 +3,47 @@
@using TIAMSharedUI.Shared
@using TIAMWebApp.Shared.Application.Models;
@using TIAMWebApp.Shared.Application.Interfaces;
@using TIAMWebApp.Shared.Application.Services
@inject ExchangeRateService ExchangeRateService
<div class="row py-3">
<div class=" col-12 col-xl-3 col-lg-6">
<Animation Effect="@Effect.FadeIn" Class="glass" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
<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>
<h3>Exchange Rate</h3>
@if (exchangeRate == null)
{
<p><em>Loading...</em></p>
}
else
{
<p>Current EUR to HUF exchange rate: @exchangeRate.EURtoHUF</p>
<input type="number" @bind="exchangeRate.EURtoHUF" step="0.01" />
<button @onclick="SaveExchangeRate">Save</button>
}
</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>
</Animation>
</div>
<div class=" col-12 col-xl-3 col-lg-6">
<Animation Effect="@Effect.FadeIn" Class="glass" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
<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>
</Animation>
</div>
<div class=" col-12 col-xl-3 col-lg-6">
<Animation Effect="@Effect.FadeIn" Class="glass" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
<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>
</Animation>
</div>
<div class=" col-12 col-xl-3 col-lg-6">
<Animation Effect="@Effect.FadeIn" Class="glass" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
<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>
</Animation>
</div>
<div class="col-12 col-xl-6">
<Animation Effect="@Effect.FadeIn" Class="glass" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
<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>
</Animation>
</div>
<div class="col-12 col-xl-6">
<Animation Effect="@Effect.FadeIn" Class="glass" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
<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>
</Animation>
</div>
</div>
@code {
private ExchangeRate exchangeRate;
protected override async Task OnInitializedAsync()
{
exchangeRate = await ExchangeRateService.GetExchangeRateAsync();
}
private async Task SaveExchangeRate()
{
await ExchangeRateService.SetExchangeRateAsync(exchangeRate);
}
}

View File

@ -1,62 +0,0 @@
using Microsoft.AspNetCore.Components;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TIAMWebApp.Shared.Application.Interfaces;
using TIAMWebApp.Shared.Application.Models;
namespace TIAMSharedUI.Pages.User.SysAdmins
{
public partial class SysAdminComponent : ComponentBase
{
[Inject]
IPopulationStructureDataProvider DataProvider { get; set; }
object? AffiliateData { get; set; }
IEnumerable<PopulationAgeStructureItem>? ChartsData;
protected override async Task OnInitializedAsync()
{
base.OnInitialized();
AffiliateData = new object[]
{
new {
AffiliateId = 1,
IncomeThisMonth = "$5",
IncomeAlltime = "9425",
CompanyName = "Upgen Ltd.",
Status = "Active"
},
new {
AffiliateId = 2,
IncomeThisMonth = "$538",
IncomeAlltime = "13425",
CompanyName = "Kovacs hotel Ltd.",
Status = "Active"
},
new {
AffiliateId = 3,
IncomeThisMonth = "$0",
IncomeAlltime = "134200",
CompanyName = "Innosaurus Ltd.",
Status = "Passive"
},
};
ChartsData = await DataProvider.QueryData();
}
[Parameter] public bool ShowSeriesPointMarkers { get; set; }
[Parameter] public bool ShowSeriesLabels { get; set; }
}
}

View File

@ -25,14 +25,16 @@ namespace TIAMWebApp.Server.Controllers
private SumupService _sumupService;
private readonly TIAM.Core.Loggers.ILogger _logger;
private readonly IMessageSenderService _messageSenderService;
private readonly ExchangeRateService _exchangeRateService;
public PaymentAPIController(AdminDal adminDal, SumupService sumupService, IMessageSenderService messageSenderService, IEnumerable<IAcLogWriterBase> logWriters)
public PaymentAPIController(AdminDal adminDal, SumupService sumupService, IMessageSenderService messageSenderService, IEnumerable<IAcLogWriterBase> logWriters, ExchangeRateService exchangeRateService)
{
_adminDal = adminDal;
_sumupService = sumupService;
_messageSenderService = messageSenderService;
_exchangeRateService = exchangeRateService;
_logger = new TIAM.Core.Loggers.Logger<PaymentAPIController>(logWriters.ToArray());
}
@ -53,12 +55,14 @@ namespace TIAMWebApp.Server.Controllers
{
transferToPay.Price = 1000;
}
var exchangeRate = await _exchangeRateService.GetExchangeRateAsync();
var price = transferToPay.Price * Convert.ToDouble(exchangeRate.EURtoHUF);
var paymentRequest = new SumupPaymentRequest
{
CheckoutReference = transferToPay.OrderId.ToString(),
Amount = transferToPay.Price.ToString(),
Amount = price.ToString(),
Currency = "HUF",
PayToEmail = "6befaf69f97f4320bff2b9adf1a3894d@developer.sumup.com",
Description = "Test transfer payment"

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<ExchangeRate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<EURtoHUF>390</EURtoHUF>
<EURtoHUF>375</EURtoHUF>
</ExchangeRate>

View File

@ -8,8 +8,8 @@ namespace TIAMWebApp.Shared.Application.Models.ClientSide
//public static string BaseUrl = "https://touriam.mangoweb.hu";
//public static string ApiBaseUrl = "https://touriam.mangoweb.hu";
#if RELEASE
public static string BaseUrl = "https://test.touriam.com";
public static string ApiBaseUrl = "https://test.touriam.com";
//public static string BaseUrl = "https://test.touriam.com";
//public static string ApiBaseUrl = "https://test.touriam.com";
//public static string BaseUrl = "https://touriam.com";
//public static string ApiBaseUrl = "https://touriam.com";
//public static string BaseUrl = "https://qa.touriam.com";

View File

@ -26,6 +26,7 @@ namespace TIAMWebApp.Shared.Application.Services
{
var url = $"{Setting.ApiBaseUrl}/{APIUrls.CreatePayment}";
//var url = $"{APIUrls.GetTransferDestinations}";
_logger.Info(url);
var response = await _http.PostAsJsonAsync(url, transferToPay);