Compare commits
26
Commits
master
...
TIAM_v0.0.6.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2c0e1567cb | ||
|
|
987c6146bf | ||
|
|
3c7e8e501f | ||
|
|
adc34a87b8 | ||
|
|
d17c694af8 | ||
|
|
320853675d | ||
|
|
d900b1c834 | ||
|
|
6d55db3dba | ||
|
|
08c2ed18cd | ||
|
|
8b4586909f | ||
|
|
e8e2f7ae97 | ||
|
|
ee2842ab79 | ||
|
|
b1f5a1cfd9 | ||
|
|
5dd68044a1 | ||
|
|
3265731367 | ||
|
|
3b3b8ae700 | ||
|
|
1378e0199e | ||
|
|
93557fca00 | ||
|
|
68a83ff8a3 | ||
|
|
956abfcc03 | ||
|
|
3566aaca63 | ||
|
|
bd42d4fd51 | ||
|
|
5ffd135813 | ||
|
|
1a2dc36df3 | ||
|
|
ecc56d2279 | ||
|
|
da24b45f5d |
+1
-1
@@ -1,5 +1,5 @@
|
||||
aycode.core rebuild product mode
|
||||
copy: \AyCode.Core\AyCode.Services.Server\bin\Product\net8.0 to \AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0
|
||||
copy: \AyCode.Core\AyCode.Services.Server\bin\Product\net9.0 to \AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0
|
||||
Setting.cs baseurl átállítani: devrelease test.touriam.com, release:touriam.com
|
||||
program.cs-ben átírni a kívánt portot 7116-ról
|
||||
megnézni a Loglevelt és ha olyan, átállítani TiamConstClient.DefaultLogLevelClient
|
||||
|
||||
@@ -6,6 +6,10 @@ namespace TIAM.Core.Consts;
|
||||
public static class TiamConstClient
|
||||
{
|
||||
public static string DefaultLocale = "en-US";
|
||||
|
||||
public static string DevAdminHubName = "DevAdminHub";
|
||||
public static string LoggerHubName = "TiamLoggerHub";
|
||||
|
||||
public static Guid TransferProductId = Guid.Parse("814b5495-c2e9-4f1d-a73f-37cd5d353078");
|
||||
public static Guid[] DevAdminIds = new Guid[2] { Guid.Parse("dcf451d2-cc4c-4ac2-8c1f-da00041be1fd"), Guid.Parse("4cbaed43-2465-4d99-84f1-c8bc6b7025f7") };
|
||||
public static Guid[] SysAdmins = new Guid[3]
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
public enum SeatNumberPriceType : byte
|
||||
{
|
||||
Price1SeatNum = 0,
|
||||
Price2SeatNum = 4,
|
||||
Price3SeatNum = 8,
|
||||
Price2SeatNum = 5,
|
||||
Price3SeatNum = 7,
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
@@ -11,13 +11,13 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AutoMapper" Version="13.0.1" />
|
||||
<PackageReference Include="AutoMapper" Version="15.0.1" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="AyCode.Core">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
@@ -22,17 +22,17 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="8.0.10" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.11" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.11" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="8.0.11" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.11" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.1" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.6.1" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.6.1" />
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.2">
|
||||
<PackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="9.0.8" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.8" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="9.0.8" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="9.0.8" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.8" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="9.0.8" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.8" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.10.3" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.10.3" />
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
@@ -47,46 +47,46 @@
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="AyCode.Core">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Core.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Core.Tests">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Database.Tests\bin\Debug\net8.0\AyCode.Core.Tests.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Database.Tests\bin\TIAM\Debug\net9.0\AyCode.Core.Tests.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Database">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Database.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Database.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Database.Tests">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Database.Tests\bin\Debug\net8.0\AyCode.Database.Tests.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Database.Tests\bin\TIAM\Debug\net9.0\AyCode.Database.Tests.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Services">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Services.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Services.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Services.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Utils">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Utils.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Utils.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -10,11 +10,32 @@ namespace TIAM.Database.DbSets.Transfers;
|
||||
public static class TransferToDriverDbSetExtensions
|
||||
{
|
||||
#region TransferToDriver
|
||||
|
||||
public static TransferToDriver? GetTransferToDriverById(this ITransferToDriverDbSet ctx, Guid transferToDriverId, bool autoInclude = true)
|
||||
=> ctx.TransferToDrivers.FirstOrDefault(x => x.Id == transferToDriverId);
|
||||
=> ctx.TransferToDrivers
|
||||
.Where(x => x.Id == transferToDriverId)
|
||||
.Include(x => x.UserProductMapping.User.Products).ThenInclude(x => x.UserProductMappings)
|
||||
.Include(x => x.Car.UserProductMapping.Product.ServiceProvider).ThenInclude(x => x.Products)
|
||||
.Include(x => x.UserProductMapping.User.Profile.Address)
|
||||
.Include(x => x.Transfer)
|
||||
.FirstOrDefault(x => x.Id == transferToDriverId);
|
||||
|
||||
public static IQueryable<TransferToDriver> GetTransferToDriversByTransferId(this ITransferToDriverDbSet ctx, Guid transferId, bool autoInclude = true)
|
||||
=> ctx.TransferToDrivers.Where(x => x.TransferId == transferId);
|
||||
=> ctx.TransferToDrivers
|
||||
.Where(x => x.TransferId == transferId)
|
||||
.Include(x => x.Car.UserProductMapping.Product.ServiceProvider).ThenInclude(x => x.Products)
|
||||
.Include(x => x.UserProductMapping.User.Profile.Address)
|
||||
.Include(x => x.Transfer);
|
||||
|
||||
//.Include(x => x.UserProductMapping.User.Products).ThenInclude(x => x.UserProductMappings)
|
||||
//.Include(x => x.Car.UserProductMapping.Product.ServiceProvider).ThenInclude(x => x.Products)
|
||||
//.Include(x => x.UserProductMapping.User.Profile.Address)
|
||||
//.Include(x => x.Transfer);
|
||||
|
||||
//.Include(x => x.UserProductMapping.User.Products).ThenInclude(x => x.UserProductMappings).ThenInclude(x => x.User.Profile.Address)
|
||||
//.Include(x => x.Car.UserProductMapping.Product.ServiceProvider).ThenInclude(x => x.Products)
|
||||
//.Include(x => x.UserProductMapping.User.Profile.Address)
|
||||
//.Include(x => x.Transfer);
|
||||
|
||||
public static IQueryable<TransferToDriver> GetTransferToDriversByUpmId(this ITransferToDriverDbSet ctx, Guid upmId, bool autoInclude = true)
|
||||
=> ctx.TransferToDrivers.Where(x => x.UserProductMappingId == upmId);
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="DevExpress.Data" Version="24.2.3" />
|
||||
<PackageReference Include="MessagePack.Annotations" Version="2.5.187" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.11" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="8.0.11" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.11" />
|
||||
<PackageReference Include="MessagePack.Annotations" Version="3.1.4" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.8" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="9.0.8" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.8" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
@@ -34,34 +34,34 @@
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="AyCode.Core">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Core.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Database">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Database.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Database.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Utils">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Utils.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Utils.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
@@ -34,34 +34,34 @@
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="AyCode.Core">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Core.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Database">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Database.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Database.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Utils">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Utils.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Utils.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="AyCode.Core">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Core.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Abstractions" Version="8.0.10" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Abstractions" Version="9.0.8" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="DevExpress.Data" Version="24.2.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\TIAM.Core\TIAM.Core.csproj" />
|
||||
<ProjectReference Include="..\TIAM.Entities.Server\TIAM.Entities.Server.csproj" />
|
||||
@@ -15,31 +19,31 @@
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="AyCode.Core">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Core.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Utils">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Utils.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Utils.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
@@ -12,6 +12,10 @@
|
||||
<Folder Include="GridViewModels\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="DevExpress.Data" Version="24.2.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Aycode.Blazor\AyCode.Blazor.Components\AyCode.Blazor.Components.csproj" />
|
||||
<ProjectReference Include="..\..\Aycode.Blazor\AyCode.Blazor.Models\AyCode.Blazor.Models.csproj" />
|
||||
@@ -22,34 +26,34 @@
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="AyCode.Core">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Core.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Database">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Database.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Database.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Utils">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Utils.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Utils.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
@@ -22,14 +22,14 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.2">
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="8.0.10" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.6.1" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.6.1" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="9.0.8" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.10.3" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.10.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -45,49 +45,49 @@
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="AyCode.Core">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Core.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Core.Tests">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server.Tests\bin\Debug\net8.0\AyCode.Core.Tests.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server.Tests\bin\TIAM\Debug\net9.0\AyCode.Core.Tests.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Database">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Database.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Database.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Database.Tests">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server.Tests\bin\Debug\net8.0\AyCode.Database.Tests.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server.Tests\bin\TIAM\Debug\net9.0\AyCode.Database.Tests.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Services">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Services.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Services.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Services.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Services.Server.Tests">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server.Tests\bin\Debug\net8.0\AyCode.Services.Server.Tests.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server.Tests\bin\TIAM\Debug\net9.0\AyCode.Services.Server.Tests.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Utils">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Utils.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Utils.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"ConnectionStrings": {
|
||||
"DeveloperDbConnection":
|
||||
"Data Source=185.51.190.197;Initial Catalog=TIAM_DEV;Trusted_Connection=false;Encrypt=false;TrustServerCertificate=True;Connect Timeout=200;User ID=Anata_Development_Team;Password=v6f_?xNfg9N1;MultipleActiveResultSets=true"
|
||||
"DeveloperDbConnection": "Data Source=195.26.231.218;Initial Catalog=TIAM_DEV;Trusted_Connection=false;Encrypt=false;TrustServerCertificate=True;Connect Timeout=200;User ID=sa;Password=v6f_?xNfg9N1;MultipleActiveResultSets=true"
|
||||
},
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
@@ -30,7 +30,8 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="8.0.10" />
|
||||
<PackageReference Include="DevExpress.Blazor" Version="24.2.3" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="9.0.8" />
|
||||
<PackageReference Include="SendGrid" Version="9.29.3" />
|
||||
</ItemGroup>
|
||||
|
||||
@@ -46,40 +47,40 @@
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="AyCode.Core">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Core.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Database">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Database.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Database.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Services">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Services.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Services.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.Server.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Services.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Utils">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Utils.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Utils.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ namespace TIAM.Services.Server
|
||||
};
|
||||
}
|
||||
|
||||
public double GetCommission(Guid productId, double Price, TransferDestination to)
|
||||
public double GetCommission(Guid productId, double price, TransferDestination to)
|
||||
{
|
||||
//check if Destination has a custom commissionRate by productId
|
||||
double commissionRate = 0;
|
||||
@@ -92,7 +92,7 @@ namespace TIAM.Services.Server
|
||||
|
||||
}
|
||||
}
|
||||
commission = GetCommission(Price, commissionRate);
|
||||
commission = GetCommission(price, commissionRate);
|
||||
return commission;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="DevExpress.Data" Version="24.2.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\TIAM.Core\TIAM.Core.csproj" />
|
||||
<ProjectReference Include="..\TIAM.Entities\TIAM.Entities.csproj" />
|
||||
@@ -14,19 +18,19 @@
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="AyCode.Core">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Services">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Services.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -47,31 +47,31 @@ namespace TIAMMobileApp
|
||||
|
||||
builder.Services.AddDevExpressBlazor(configure => configure.BootstrapVersion = BootstrapVersion.v5);
|
||||
|
||||
builder.Services.AddScoped<IWeatherForecastService, WeatherForecastService>();
|
||||
builder.Services.AddScoped<ITransferDataService, TransferDataService>();
|
||||
builder.Services.AddSingleton<IWeatherForecastService, WeatherForecastService>();
|
||||
builder.Services.AddSingleton<ITransferDataService, TransferDataService>();
|
||||
|
||||
builder.Services.AddSingleton<IAcLogWriterClientBase, SignaRClientLogItemWriter>();
|
||||
|
||||
builder.Services.AddScoped<IPopulationStructureDataProvider, PopulationStructureDataProvider>();
|
||||
builder.Services.AddScoped<ISupplierService, SupplierService>();
|
||||
builder.Services.AddScoped<IUserDataService, UserDataServiceMobile>();
|
||||
builder.Services.AddScoped<ISecureStorageHandler, SecureStorageHandler>();
|
||||
builder.Services.AddSingleton<ISessionService, SessionServiceMobile>();
|
||||
builder.Services.AddSingleton<IPopulationStructureDataProvider, PopulationStructureDataProvider>();
|
||||
builder.Services.AddSingleton<ISupplierService, SupplierService>();
|
||||
builder.Services.AddSingleton<IUserDataService, UserDataServiceMobile>();
|
||||
builder.Services.AddSingleton<ISecureStorageHandler, SecureStorageHandler>();
|
||||
builder.Services.AddSingleton<ISessionServiceClient, SessionServiceMobile>();
|
||||
builder.Services.AddSingleton<IComponentUpdateService, ComponentUpdateServiceMobile>();
|
||||
builder.Services.AddScoped<IServiceProviderDataService, ServiceProviderDataService>();
|
||||
builder.Services.AddScoped<IClientNoticeSenderService, ClientNoticeSenderService>();
|
||||
builder.Services.AddScoped<IWizardProcessor, WizardProcessor>();
|
||||
builder.Services.AddScoped<IImageDataService, ImageDataService>();
|
||||
builder.Services.AddSingleton<IServiceProviderDataService, ServiceProviderDataService>();
|
||||
builder.Services.AddSingleton<IClientNoticeSenderService, ClientNoticeSenderService>();
|
||||
builder.Services.AddSingleton<IWizardProcessor, WizardProcessor>();
|
||||
builder.Services.AddSingleton<IImageDataService, ImageDataService>();
|
||||
builder.Services.AddSingleton(x => new ResourceManager("TIAMWebApp.Shared.Application.Resources", typeof(Main).Assembly));
|
||||
|
||||
builder.Services.AddSingleton<AdminSignalRClient>();
|
||||
|
||||
builder.Services.AddSingleton<SignalRService>();
|
||||
builder.Services.AddSingleton<SumupService>();
|
||||
builder.Services.AddScoped<AuthenticationStateProvider, CustomAuthStateProvider>();
|
||||
builder.Services.AddScoped<ExchangeRateService>();
|
||||
builder.Services.AddScoped<SmartyStreetsService>();
|
||||
builder.Services.AddScoped<GooglePlacesService>();
|
||||
builder.Services.AddSingleton<AuthenticationStateProvider, CustomAuthStateProvider>();
|
||||
builder.Services.AddSingleton<ExchangeRateService>();
|
||||
builder.Services.AddSingleton<SmartyStreetsService>();
|
||||
builder.Services.AddSingleton<GooglePlacesService>();
|
||||
builder.Services.AddSingleton<PageHistoryState>();
|
||||
builder.Services.AddAuthorizationCore();
|
||||
builder.Services.Configure<AnimationOptions>(Guid.NewGuid().ToString(), c => { });
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using System.Net;
|
||||
using AyCode.Interfaces.StorageHandlers;
|
||||
using Microsoft.AspNetCore.Components.Authorization;
|
||||
using System.Net;
|
||||
using TIAM.Core.Consts;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.Users;
|
||||
@@ -10,16 +12,17 @@ using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||
|
||||
namespace TIAMMobileApp.Services
|
||||
{
|
||||
public class SessionServiceMobile : SessionServiceClientBase
|
||||
public class SessionServiceMobile(ISecureStorageHandler secureStorageHandler, AuthenticationStateProvider authStateProvider)
|
||||
: SessionServiceClientBase(secureStorageHandler, authStateProvider)
|
||||
{
|
||||
public override List<Product> GetHotels()
|
||||
{
|
||||
return base.GetHotels();
|
||||
}
|
||||
|
||||
public override void ClearAll()
|
||||
public override Task ClearAll()
|
||||
{
|
||||
base.ClearAll();
|
||||
return base.ClearAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.Net.Http.Json;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using AyCode.Core.Loggers;
|
||||
using AyCode.Interfaces.StorageHandlers;
|
||||
using AyCode.Services.Loggers;
|
||||
using Newtonsoft.Json;
|
||||
@@ -17,7 +18,7 @@ using TIAMWebApp.Shared.Application.Utility;
|
||||
|
||||
namespace TIAMMobileApp.Services
|
||||
{
|
||||
public class UserDataServiceMobile(HttpClient http, AdminSignalRClient adminSignalRClient, ISessionService sessionService, ISecureStorageHandler secureStorageHandler, IServiceProviderDataService serviceProviderDataService, IEnumerable<IAcLogWriterClientBase> logWriters)
|
||||
public class UserDataServiceMobile(HttpClient http, AdminSignalRClient adminSignalRClient, ISessionServiceClient sessionService, ISecureStorageHandler secureStorageHandler, IServiceProviderDataService serviceProviderDataService, IEnumerable<IAcLogWriterClientBase> logWriters)
|
||||
: UserDataServiceClientBase(http, adminSignalRClient, sessionService, secureStorageHandler, serviceProviderDataService, logWriters);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Razor">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net8.0-maccatalyst;net8.0-ios;net8.0-android34.0</TargetFrameworks>
|
||||
<!-- Uncomment to also build the tizen app. You will need to install tizen by following this: https://github.com/Samsung/Tizen.NET -->
|
||||
<!-- <TargetFrameworks>$(TargetFrameworks);net8.0-tizen</TargetFrameworks> -->
|
||||
<!--<TargetFrameworks>net9.0-maccatalyst;net9.0-ios;net9.0-android35.0</TargetFrameworks>-->
|
||||
<TargetFrameworks>net9.0-maccatalyst;net9.0-ios;net9.0-android35.0</TargetFrameworks>
|
||||
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>TIAMMobileApp</RootNamespace>
|
||||
<UseMaui>true</UseMaui>
|
||||
@@ -24,10 +24,11 @@
|
||||
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">14.2</SupportedOSPlatformVersion>
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">14.0</SupportedOSPlatformVersion>
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">29.0</SupportedOSPlatformVersion>
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">31.0</SupportedOSPlatformVersion>
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</SupportedOSPlatformVersion>
|
||||
<TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</TargetPlatformMinVersion>
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tizen'">6.5</SupportedOSPlatformVersion>
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tizen'">6.5</SupportedOSPlatformVersion>
|
||||
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -50,10 +51,10 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.1" />
|
||||
<PackageReference Include="SkiaSharp" Version="2.88.8" />
|
||||
<PackageReference Include="SkiaSharp.Views.Desktop.Common" Version="2.88.8" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" VersionOverride="7.0.1" Version="9.0.3" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="9.0.8" />
|
||||
<PackageReference Include="SkiaSharp" Version="3.119.0" />
|
||||
<PackageReference Include="SkiaSharp.Views.Desktop.Common" Version="3.119.0" />
|
||||
<!--<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" VersionOverride="7.0.1" Version="9.0.3" />-->
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -70,20 +71,28 @@
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="AyCode.Core">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Entities">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Entities.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Interfaces">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Models">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Models.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Services">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.dll</HintPath>
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\TIAM\Debug\net9.0\AyCode.Services.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Update="Microsoft.AspNetCore.Components.WebView.Maui" Version="9.0.100" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Update="Microsoft.Maui.Controls" Version="9.0.100" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<IsFirstTimeProjectOpen>False</IsFirstTimeProjectOpen>
|
||||
<ActiveDebugFramework>net8.0-maccatalyst</ActiveDebugFramework>
|
||||
<ActiveDebugFramework>net9.0-maccatalyst</ActiveDebugFramework>
|
||||
<ActiveDebugProfile>Mac Catalyst</ActiveDebugProfile>
|
||||
<SelectedPlatformGroup>PhysicalDevice</SelectedPlatformGroup>
|
||||
<DefaultDevice>pixel_5_-_api_31</DefaultDevice>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
Generated
+54
@@ -384,6 +384,15 @@ namespace TIAM.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Who we are.
|
||||
/// </summary>
|
||||
public static string Index_WhoWeAre {
|
||||
get {
|
||||
return ResourceManager.GetString("Index.WhoWeAre", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Login.
|
||||
/// </summary>
|
||||
@@ -456,6 +465,24 @@ namespace TIAM.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Book now!.
|
||||
/// </summary>
|
||||
public static string NavMenu_BookNow {
|
||||
get {
|
||||
return ResourceManager.GetString("NavMenu.BookNow", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Contact.
|
||||
/// </summary>
|
||||
public static string NavMenu_Contact {
|
||||
get {
|
||||
return ResourceManager.GetString("NavMenu.Contact", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Events.
|
||||
/// </summary>
|
||||
@@ -465,6 +492,15 @@ namespace TIAM.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Explore the region.
|
||||
/// </summary>
|
||||
public static string NavMenu_ExploreTheRegion {
|
||||
get {
|
||||
return ResourceManager.GetString("NavMenu.ExploreTheRegion", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to FormulaOne.
|
||||
/// </summary>
|
||||
@@ -483,6 +519,15 @@ namespace TIAM.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to How it works.
|
||||
/// </summary>
|
||||
public static string NavMenu_HowItWorks {
|
||||
get {
|
||||
return ResourceManager.GetString("NavMenu.HowItWorks", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Login.
|
||||
/// </summary>
|
||||
@@ -510,6 +555,15 @@ namespace TIAM.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Signature ride packages.
|
||||
/// </summary>
|
||||
public static string NavMenu_SignatureRidePackages {
|
||||
get {
|
||||
return ResourceManager.GetString("NavMenu.SignatureRidePackages", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Sign out.
|
||||
/// </summary>
|
||||
|
||||
@@ -249,15 +249,27 @@
|
||||
<data name="NavMenu.Admin" xml:space="preserve">
|
||||
<value>Adminisztráció</value>
|
||||
</data>
|
||||
<data name="NavMenu.BookNow" xml:space="preserve">
|
||||
<value>Foglalj most!</value>
|
||||
</data>
|
||||
<data name="NavMenu.Contact" xml:space="preserve">
|
||||
<value>Kapcsolat</value>
|
||||
</data>
|
||||
<data name="NavMenu.Events" xml:space="preserve">
|
||||
<value>Események</value>
|
||||
</data>
|
||||
<data name="NavMenu.ExploreTheRegion" xml:space="preserve">
|
||||
<value>Fedezd fel a térséget</value>
|
||||
</data>
|
||||
<data name="NavMenu.FormulaOne" xml:space="preserve">
|
||||
<value>Forma1</value>
|
||||
</data>
|
||||
<data name="NavMenu.Home" xml:space="preserve">
|
||||
<value>Főoldal</value>
|
||||
</data>
|
||||
<data name="NavMenu.HowItWorks" xml:space="preserve">
|
||||
<value>Miben más a TourIam</value>
|
||||
</data>
|
||||
<data name="NavMenu.Login" xml:space="preserve">
|
||||
<value>Belépés</value>
|
||||
</data>
|
||||
@@ -267,6 +279,9 @@
|
||||
<data name="NavMenu.Settings" xml:space="preserve">
|
||||
<value>Beállítások</value>
|
||||
</data>
|
||||
<data name="NavMenu.SignatureRidePackages" xml:space="preserve">
|
||||
<value>Túrák</value>
|
||||
</data>
|
||||
<data name="NavMenu.SignOut" xml:space="preserve">
|
||||
<value>Kijelentkezés</value>
|
||||
</data>
|
||||
|
||||
@@ -225,6 +225,9 @@
|
||||
<data name="Index.Transfer.Desc" xml:space="preserve">
|
||||
<value>Do you need a lift? Book a transfer now!</value>
|
||||
</data>
|
||||
<data name="Index.WhoWeAre" xml:space="preserve">
|
||||
<value>Who we are</value>
|
||||
</data>
|
||||
<data name="Login" xml:space="preserve">
|
||||
<value>Login</value>
|
||||
</data>
|
||||
@@ -249,15 +252,27 @@
|
||||
<data name="NavMenu.Admin" xml:space="preserve">
|
||||
<value>Admin</value>
|
||||
</data>
|
||||
<data name="NavMenu.BookNow" xml:space="preserve">
|
||||
<value>Book now!</value>
|
||||
</data>
|
||||
<data name="NavMenu.Contact" xml:space="preserve">
|
||||
<value>Contact</value>
|
||||
</data>
|
||||
<data name="NavMenu.Events" xml:space="preserve">
|
||||
<value>Events</value>
|
||||
</data>
|
||||
<data name="NavMenu.ExploreTheRegion" xml:space="preserve">
|
||||
<value>Explore the region</value>
|
||||
</data>
|
||||
<data name="NavMenu.FormulaOne" xml:space="preserve">
|
||||
<value>FormulaOne</value>
|
||||
</data>
|
||||
<data name="NavMenu.Home" xml:space="preserve">
|
||||
<value>Home</value>
|
||||
</data>
|
||||
<data name="NavMenu.HowItWorks" xml:space="preserve">
|
||||
<value>How it works</value>
|
||||
</data>
|
||||
<data name="NavMenu.Login" xml:space="preserve">
|
||||
<value>Login</value>
|
||||
</data>
|
||||
@@ -267,6 +282,9 @@
|
||||
<data name="NavMenu.Settings" xml:space="preserve">
|
||||
<value>Settings</value>
|
||||
</data>
|
||||
<data name="NavMenu.SignatureRidePackages" xml:space="preserve">
|
||||
<value>Signature ride packages</value>
|
||||
</data>
|
||||
<data name="NavMenu.SignOut" xml:space="preserve">
|
||||
<value>Sign out</value>
|
||||
</data>
|
||||
|
||||
@@ -19,10 +19,6 @@
|
||||
|
||||
At Tour I Am, we understand the importance of a seamless and comfortable journey for our valued customers. Whether you're arriving in Budapest for business or leisure, our dedicated team ensures that your transfer experience is hassle-free and enjoyable.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
|
||||
<p class="mb-4 pe-xl-12 ">
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Services.Loggers
|
||||
@using AyCode.Utils.Extensions
|
||||
@using TIAM.Core.Loggers
|
||||
@using TIAM.Models
|
||||
@using TIAM.Services
|
||||
@@ -26,7 +27,7 @@
|
||||
@inject IUserDataService UserDataService
|
||||
@inject IServiceProviderDataService ServiceProviderDataService
|
||||
@inject ISecureStorageHandler SecureStorageHandler
|
||||
@inject ISessionService sessionService;
|
||||
@inject ISessionServiceClient sessionService;
|
||||
@inject HttpClient http;
|
||||
@inject IComponentUpdateService ComponentUpdateService
|
||||
@inject AuthenticationStateProvider AuthStateProvider
|
||||
@@ -213,17 +214,22 @@
|
||||
|
||||
private async Task SignOut()
|
||||
{
|
||||
_logger.Info("SignOut called");
|
||||
_logger.Info("Applaunch->SignOut called");
|
||||
|
||||
var userBasicDetail = userDetailsStr.JsonTo<UserBasicDetails>();
|
||||
// var userBasicDetail = userDetailsStr.JsonTo<UserBasicDetails>();
|
||||
|
||||
await AuthStateProvider.GetAuthenticationStateAsync();
|
||||
await SecureStorageHandler.ClearAllSecureStorageAsync();
|
||||
|
||||
sessionService.ClearAll();
|
||||
ComponentUpdateService.CallRequestRefreshAll();
|
||||
// if (userBasicDetail != null && !userBasicDetail.RefreshToken.IsNullOrWhiteSpace())
|
||||
// await UserDataService.Logout(userBasicDetail.RefreshToken);
|
||||
|
||||
UserDataService.Logout(userBasicDetail?.RefreshToken).Forget();
|
||||
// await SecureStorageHandler.ClearAllSecureStorageAsync();
|
||||
// await AuthStateProvider.GetAuthenticationStateAsync();
|
||||
|
||||
//sessionService.ClearAll();
|
||||
|
||||
await UserDataService.SignOut();
|
||||
|
||||
//navigationManager.NavigateTo("/");
|
||||
ComponentUpdateService.CallRequestRefreshAll();
|
||||
}
|
||||
|
||||
CultureInfo Culture
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@page "/auction"
|
||||
@using TIAMSharedUI.Pages.Components
|
||||
@using TIAMWebApp.Shared.Application.Interfaces;
|
||||
@inject ISessionService sessionService
|
||||
@inject ISessionServiceClient sessionService
|
||||
|
||||
<div class="container-fluid">
|
||||
<h1>Auction</h1>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,133 @@
|
||||
@page "/blogpost/{PostId}"
|
||||
@using TIAMSharedUI.Pages.Components
|
||||
@using TIAMSharedUI.Shared
|
||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@inject HttpClient Http
|
||||
@inject BlogService BlogService
|
||||
|
||||
<HeroSlider SliderItems="@sliders" PBottom="50px" Height="30vh"></HeroSlider>
|
||||
|
||||
@if (Content == null)
|
||||
{
|
||||
<p>Loading post...</p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="container">
|
||||
|
||||
<div class="card p-3" @onclick:stopPropagation>
|
||||
@((MarkupString)Content)
|
||||
</div>
|
||||
|
||||
@if (Tags?.Count > 0)
|
||||
{
|
||||
<p class="mt-3 text-muted small">
|
||||
Tags: @string.Join(", ", Tags)
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
<CallToActionComponent></CallToActionComponent>
|
||||
|
||||
@code {
|
||||
[Parameter]
|
||||
public string PostId { get; set; }
|
||||
|
||||
private string? Content;
|
||||
private string? Title;
|
||||
private string? CoverImage;
|
||||
private List<string>? Tags;
|
||||
|
||||
|
||||
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
var post = await BlogService.GetPostByIdAsync(PostId);
|
||||
if (post != null)
|
||||
{
|
||||
Title = post.Title;
|
||||
CoverImage = post.CoverImage;
|
||||
Tags = post.Tags;
|
||||
|
||||
// ✅ Extract fileId from DriveLink:
|
||||
var fileId = ExtractGoogleDriveFileId(post.DriveLink);
|
||||
if (!string.IsNullOrEmpty(fileId))
|
||||
{
|
||||
// string apiKey = "AIzaSyBLKx4XFpgX97sULTbtpyKA2Ca_ANrjxxs"; // your existing key
|
||||
// // string downloadUrl = $"https://www.googleapis.com/drive/v3/files/{fileId}?alt=media&key={apiKey}";
|
||||
// string downloadUrl = $"https://drive.google.com/uc?export=download&id={fileId}";
|
||||
// Content = await Http.GetStringAsync(downloadUrl);
|
||||
|
||||
Content = null; // Optional: clear previous content while loading new
|
||||
|
||||
try
|
||||
{
|
||||
Content = await Http.GetStringAsync($"/api/blog/postcontent/{PostId}");
|
||||
}
|
||||
catch
|
||||
{
|
||||
Content = "<p class='text-danger'>Failed to load blog post.</p>";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
Content = "<p class='text-danger'>Invalid Google Drive link in post metadata.</p>";
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
Content = "<p class='text-danger'>Failed to load blog post. " + e.ToString()+ "</p>";
|
||||
}
|
||||
}
|
||||
|
||||
private string? ExtractGoogleDriveFileId(string driveLink)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Works with typical Google Drive URLs
|
||||
var match = System.Text.RegularExpressions.Regex.Match(driveLink, @"\/d\/([^\/]+)");
|
||||
return match.Success ? match.Groups[1].Value : null;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public List<HeroSliderItem> sliders = new()
|
||||
{
|
||||
new HeroSliderItem
|
||||
{
|
||||
Title = "Experience Hungary on Your Terms",
|
||||
Subtitle = "Discover the freedom of personalized travel with expert private transfers and curated inspiration.",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1551867633-194f125bddfa?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
||||
ButtonText = "Explore Our Programs",
|
||||
ButtonUrl= "/signature-ride-packages"
|
||||
},
|
||||
new HeroSliderItem
|
||||
{
|
||||
Title = "Experience Hungary on Your Terms",
|
||||
Subtitle = "Discover the freedom of personalized travel with expert private transfers and curated inspiration.",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1549877452-9c387954fbc2?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
||||
ButtonText = "Book now",
|
||||
ButtonUrl= "/transfer"
|
||||
},
|
||||
new HeroSliderItem
|
||||
{
|
||||
Title = "Experience Hungary on Your Terms",
|
||||
Subtitle = "",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1507622560124-621e26755fb8?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
||||
ButtonText = "",
|
||||
ButtonUrl= ""
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
@using TIAMWebApp.Shared.Application.Interfaces;
|
||||
@using TIAMWebApp.Shared.Application.Models.PageModels;
|
||||
@using TIAMWebApp.Shared.Application.Models;
|
||||
@inject ISessionService sessionService;
|
||||
@inject ISessionServiceClient sessionService;
|
||||
|
||||
<EditForm Model="@auctionBidModel" OnValidSubmit="GoToNextStep">
|
||||
<DataAnnotationsValidator />
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
@using TIAMWebApp.Shared.Application.Models.PageModels;
|
||||
@using DevExpress.Blazor
|
||||
@using TIAMWebApp.Shared.Application.Models.PageModels;
|
||||
@using TIAMWebApp.Shared.Application.Models;
|
||||
@using TIAMWebApp.Shared.Application.Interfaces;
|
||||
@inject ISessionService sessionService;
|
||||
@inject ISessionServiceClient sessionService;
|
||||
|
||||
<EditForm Model="@auctionBidModel" OnValidSubmit="GoToNextStep">
|
||||
<DataAnnotationsValidator />
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using AyCode.Core.Loggers;
|
||||
using TIAM.Core.Loggers;
|
||||
using TIAMSharedUI.Shared.Components;
|
||||
using TIAMWebApp.Shared.Application.Interfaces;
|
||||
@@ -18,7 +19,7 @@ namespace TIAMSharedUI.Pages.Components
|
||||
public required IEnumerable<IAcLogWriterClientBase> LogWriters { get; set; }
|
||||
|
||||
[Inject]
|
||||
public ISessionService sessionService { get; set; }
|
||||
public ISessionServiceClient sessionService { get; set; }
|
||||
public bool IsLoggedIn = false;
|
||||
[Inject]
|
||||
public IComponentUpdateService componentUpdateService { get; set; }
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<div class="container text-center py-4 py-md-6 rounded-3">
|
||||
<div class="lc-block card border-0 text-center rounded p-4 p-lg-6" style="background:url(https://cdn.livecanvas.com/media/backgrounds/fffuelco/ffflux.svg) center / cover no-repeat;">
|
||||
<div class="container-fluid text-center pt-4 py-md-6">
|
||||
<div class="lc-block card border-0 text-center py-5" style="background: #4c327b; background-position: center; background-size: cover;">
|
||||
<div class="row card-body mb-3 mb-lg-4">
|
||||
<div class="col-xl-11 col-xxl-9 mx-auto">
|
||||
<div class="lc-block mb-4">
|
||||
<div editable="rich">
|
||||
<p class="text-white">JOIN OUR COMMUNITY</p>
|
||||
<p class="text-white">READY TO GO?</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="lc-block">
|
||||
@@ -14,7 +14,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="lc-block"><a class="btn btn-primary btn-lg" href="#" role="button">Get Started</a></div>
|
||||
<div class="lc-block"><a class="btn btn-primary btn-lg" href="#" role="button">Book now!</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
@using System.Text
|
||||
@using AyCode.Core.Helpers
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAM.Services
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@inject AdminSignalRClient _adminSignalRClient;
|
||||
|
||||
<p>@DriverName</p>
|
||||
|
||||
@code {
|
||||
[Parameter] public Guid TransferId { get; set; }
|
||||
private string DriverName = "";
|
||||
|
||||
protected override void OnParametersSet()
|
||||
{
|
||||
_adminSignalRClient.GetByIdAsync<List<TransferToDriver>>(SignalRTags.GetTransferDriversByTransferId, x =>
|
||||
{
|
||||
//await Task.Delay(1);
|
||||
var keyItemTransferToDriver = x.ResponseData;
|
||||
|
||||
if (keyItemTransferToDriver != null && keyItemTransferToDriver.Count > 0)
|
||||
{
|
||||
foreach (var driver in keyItemTransferToDriver)
|
||||
{
|
||||
if (driver != null && driver.UserProductMapping != null)
|
||||
{
|
||||
if (driver.UserProductMapping.User != null)
|
||||
{
|
||||
|
||||
if (driver.UserProductMapping.User.Profile != null)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(driver.UserProductMapping.User.Profile.Name))
|
||||
{
|
||||
DriverName = driver.UserProductMapping.User.Profile.Name;
|
||||
}
|
||||
else
|
||||
{
|
||||
DriverName = driver.LicencePlate;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
DriverName = "No driver assigned yet";
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
}, TransferId).Forget();
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@
|
||||
@using AyCode.Services.Loggers
|
||||
@using System.Reflection
|
||||
@using AyCode.Blazor.Components.Components
|
||||
@using AyCode.Core.Loggers
|
||||
@using TIAM.Entities.Products
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@@ -11,7 +12,7 @@
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject ISessionService _sessionService
|
||||
@inject ISessionServiceClient _sessionService
|
||||
|
||||
@if (isEditing)
|
||||
{
|
||||
|
||||
@@ -15,6 +15,7 @@ using System.Text.RegularExpressions;
|
||||
using AyCode.Core.Consts;
|
||||
using TIAM.Core.Loggers;
|
||||
using AyCode.Services.Loggers;
|
||||
using AyCode.Core.Loggers;
|
||||
|
||||
|
||||
namespace TIAMSharedUI.Pages.Components
|
||||
@@ -28,7 +29,7 @@ namespace TIAMSharedUI.Pages.Components
|
||||
IStringLocalizer<TIAMResources> localizer { get; set; }
|
||||
|
||||
[Inject]
|
||||
public ISessionService sessionService { get; set; }
|
||||
public ISessionServiceClient sessionService { get; set; }
|
||||
|
||||
public Dictionary<int, Guid> FormSteps { get; set; } = new Dictionary<int, Guid>();
|
||||
public int CurrentStep { get; set; } = 0;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@using TIAMWebApp.Shared.Application.Interfaces;
|
||||
@using TIAMWebApp.Shared.Application.Models;
|
||||
@inject ISessionService sessionService;
|
||||
@inject ISessionServiceClient sessionService;
|
||||
|
||||
<EditForm Model="@auctionBidModel" OnValidSubmit="GoToNextStep">
|
||||
<DataAnnotationsValidator />
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
@using TIAMWebApp.Shared.Application.Models;
|
||||
@using DevExpress.Blazor
|
||||
@using TIAMWebApp.Shared.Application.Models;
|
||||
@using TIAMWebApp.Shared.Application.Interfaces;
|
||||
@inject ISessionService sessionService;
|
||||
@inject ISessionServiceClient sessionService;
|
||||
|
||||
<EditForm Model="@auctionBidModel" OnValidSubmit="GoToNextStep">
|
||||
<DataAnnotationsValidator />
|
||||
|
||||
@@ -155,7 +155,7 @@ else
|
||||
|
||||
<hr />
|
||||
<p class="text-muted">Status on: <span class="text-body">@DateTime.Now.ToString("hh:mm tt"), @DateTime.Today.ToString("MMMM dd, yyyy")</span></p>
|
||||
<h5 class="text-muted">@TransferStatusModel.GetStatusModel(_transfer.TransferStatusType);</h5>
|
||||
<h5 class="text-muted">@TransferStatusModel.GetStatusModel(_transfer.TransferStatusType).StatusName;</h5>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -524,8 +524,9 @@ else
|
||||
private async Task UpdateTransferEventHandler(MouseEventArgs e, bool shouldRedirect = false)
|
||||
{
|
||||
var result = await UpdateTransfer(shouldRedirect);
|
||||
_editMode = false;
|
||||
if (result != null && shouldRedirect)
|
||||
navManager.NavigateTo("/mytransfers"); // Redirect to a list or another page after successful update
|
||||
navManager.NavigateTo($"/mytransfers/{_transfer.Id}"); // Redirect to a list or another page after successful update
|
||||
}
|
||||
|
||||
private async Task CancelTransferEventHandler(MouseEventArgs e, bool shouldRedirect = false)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<div class="item" style="background-image: url(@item.ImageUrl);">
|
||||
|
||||
<div class="item-desc" style="height: 100%; background-color: rgba(0,0,0,0.3);">
|
||||
<!--h3>item.Name</h3-->
|
||||
|
||||
|
||||
<h3 class="card-title" style="margin-top: 80px;">@item.Name</h3>
|
||||
<p>@item.DateAndTime</p>
|
||||
@@ -37,14 +37,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="login">
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
</div>
|
||||
</section>
|
||||
@@ -102,4 +95,4 @@
|
||||
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
@page "/formulaone"
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Interfaces.StorageHandlers;
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAMSharedUI.Shared.Components
|
||||
@@ -17,7 +18,7 @@
|
||||
@inject IUserDataService UserDataService;
|
||||
@inject IJSRuntime jsRuntime;
|
||||
@inject ISecureStorageHandler SecureStorageHandler
|
||||
@inject ISessionService sessionService;
|
||||
@inject ISessionServiceClient sessionService;
|
||||
@inject IStringLocalizer<MyResources> localizer;
|
||||
@inject NavigationManager navManager
|
||||
@inject IAcLogWriterClientBase BrowserConsoleLogWriter
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
@page "/"
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Interfaces.StorageHandlers;
|
||||
@using BlazorAnimation
|
||||
@using TIAMSharedUI.Shared.Components
|
||||
@using TIAMSharedUI.Shared.Components.BaseComponents
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Models
|
||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAMSharedUI.Pages.Components;
|
||||
@@ -14,7 +17,7 @@
|
||||
@inject IUserDataService UserDataService;
|
||||
@inject IJSRuntime jsRuntime;
|
||||
@inject ISecureStorageHandler SecureStorageHandler
|
||||
@inject ISessionService sessionService;
|
||||
@inject ISessionServiceClient sessionService;
|
||||
@inject IStringLocalizer<TIAMResources> localizer;
|
||||
@inject NavigationManager navManager
|
||||
@inject IAcLogWriterClientBase BrowserConsoleLogWriter
|
||||
@@ -24,8 +27,8 @@
|
||||
|
||||
<AuthComponent />
|
||||
|
||||
<HeroSlider SliderItems="@sliders" PBottom="50px" Height="30vh"></HeroSlider>
|
||||
@* <div class="container-fluid" style="position: relative; z-index: 2;">
|
||||
<HeroSlider SliderItems="@sliders" PBottom="50px" Height="70vh"></HeroSlider>
|
||||
@* <div class="container-fluid" style="position: relative; z-index: 2;">
|
||||
<div class="row d-flex justify-content-center">
|
||||
<div class="col-12 col-lg-6">
|
||||
<div class="card bg-white p-3">
|
||||
@@ -42,9 +45,7 @@
|
||||
</div> *@
|
||||
|
||||
|
||||
<div class="container-fluid" style="align-content: center;">
|
||||
|
||||
|
||||
@* <div class="container-fluid" style="align-content: center;">
|
||||
|
||||
<div class="text-center">
|
||||
|
||||
@@ -52,49 +53,49 @@
|
||||
<h2>@localizer.GetString("Index.Subtitle")</h2>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
</div> *@
|
||||
|
||||
<NavLink class="nav-link col-md-6 col-lg-4 col-12" href="transfer">
|
||||
<Animation Effect="@Effect.FadeIn" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
|
||||
<div class="card m-3 my-card text-white">
|
||||
<img class="card-img" src="_content/TIAMSharedUI/images/m_transfer.jpg" alt="Card image">
|
||||
<div class="card-img-overlay">
|
||||
|
||||
<h3 class="card-title">@localizer.GetString("Index.Transfer")</h3>
|
||||
|
||||
<p class="card-text">@localizer.GetString("Index.Transfer.Desc")</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</Animation>
|
||||
</NavLink>
|
||||
<NavLink class="nav-link col-md-6 col-lg-4 col-12" href="tours">
|
||||
<Animation Effect="@Effect.FadeIn" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
|
||||
<div class="card m-3 my-card text-white">
|
||||
<img class="card-img" src="_content/TIAMSharedUI/images/m_tour.jpg" alt="Card image">
|
||||
<div class="card-img-overlay">
|
||||
<h3 class="card-title">@localizer.GetString("Index.Tours")</h3>
|
||||
<p class="card-text">@localizer.GetString("Index.Tours.Desc")</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</Animation>
|
||||
</NavLink>
|
||||
<NavLink class="nav-link col-md-6 col-lg-4 col-12" href="clubcards">
|
||||
<Animation Effect="@Effect.FadeIn" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
|
||||
<div class="card m-3 my-card text-white">
|
||||
<img class="card-img" src="_content/TIAMSharedUI/images/m_restaurant.jpg" alt="Card image">
|
||||
<div class="card-img-overlay">
|
||||
<h3 class="card-title">@localizer.GetString("Index.Clubcards")</h3>
|
||||
<p class="card-text">@localizer.GetString("Index.Clubcards.Desc")</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</Animation>
|
||||
</NavLink>
|
||||
<section class="py-5 bg-light">
|
||||
<div class="container">
|
||||
<div class="row align-items-center">
|
||||
<!-- Text Content -->
|
||||
<div class="col-md-6">
|
||||
<h2>@localizer.GetString("Index.WhoWeAre")</h2>
|
||||
<p>We’re not here to take over your trip. We’re here to help shape it — with smooth rides, flexible options, and curated experiences you can actually enjoy.</p>
|
||||
<p>Think of us as your private ride — whether you’re heading to the airport, a spa town, a winery, or somewhere off the map.</p>
|
||||
<p>You can follow one of our signature routes, or create your own. We adapt. You decide. We take care of the road.</p>
|
||||
<p>Our role changes with every guest. Sometimes we’re your calm in the chaos. Sometimes we’re your quiet local expert. Sometimes we’re just there — when you need someone who knows the way.</p>
|
||||
</div>
|
||||
<!-- Image Placeholder -->
|
||||
<div class="col-md-6 text-center">
|
||||
<img src="https://images.unsplash.com/photo-1563461660947-507ef49e9c47?q=80&w=1974&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" alt="Who we are" class="img-fluid rounded shadow">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
<section class="py-5 bg-gradient">
|
||||
<ToursComponent />
|
||||
</section>
|
||||
<section class="py-5">
|
||||
<BlogComponent />
|
||||
</section>
|
||||
|
||||
<CallToActionComponent></CallToActionComponent>
|
||||
|
||||
<script>
|
||||
$(".custom-carousel").owlCarousel({
|
||||
autoWidth: true,
|
||||
loop: true
|
||||
});
|
||||
$(document).ready(function () {
|
||||
$(".custom-carousel .item").click(function () {
|
||||
$(".custom-carousel .item").not($(this)).removeClass("active");
|
||||
$(this).toggleClass("active");
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@code {
|
||||
|
||||
@@ -102,18 +103,27 @@
|
||||
{
|
||||
new HeroSliderItem
|
||||
{
|
||||
Title = "Welcome to TIAM",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1551867633-194f125bddfa?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
|
||||
Title = "Experience Hungary on Your Terms",
|
||||
Subtitle = "Discover the freedom of personalized travel with expert private transfers and curated inspiration.",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1551867633-194f125bddfa?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
||||
ButtonText = "Explore Our Programs",
|
||||
ButtonUrl= "/signature-ride-packages"
|
||||
},
|
||||
new HeroSliderItem
|
||||
{
|
||||
Title = "Welcome to TIAM",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1549877452-9c387954fbc2?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
|
||||
Title = "Experience Hungary on Your Terms",
|
||||
Subtitle = "Discover the freedom of personalized travel with expert private transfers and curated inspiration.",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1549877452-9c387954fbc2?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
||||
ButtonText = "Book now",
|
||||
ButtonUrl= "/transfer"
|
||||
},
|
||||
new HeroSliderItem
|
||||
{
|
||||
Title = "Welcome to TIAM",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1507622560124-621e26755fb8?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
|
||||
Title = "Experience Hungary on Your Terms",
|
||||
Subtitle = "",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1507622560124-621e26755fb8?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
||||
ButtonText = "",
|
||||
ButtonUrl= ""
|
||||
}
|
||||
};
|
||||
|
||||
@@ -122,8 +132,8 @@
|
||||
public List<string> TransferIgnorList = new List<string>
|
||||
{
|
||||
"Id",
|
||||
"UserId",
|
||||
"ProductId",
|
||||
"UserId",
|
||||
"ProductId",
|
||||
"PaymentId",
|
||||
"FirstName",
|
||||
"LastName",
|
||||
@@ -134,24 +144,37 @@
|
||||
"Revenue"
|
||||
};
|
||||
|
||||
/*protected override void OnAfterRender(bool isFirst)
|
||||
{
|
||||
message = " Target destination is " + slider.SliderElementId.ToString();
|
||||
}*/
|
||||
/*protected override void OnAfterRender(bool isFirst)
|
||||
{
|
||||
message = " Target destination is " + slider.SliderElementId.ToString();
|
||||
}*/
|
||||
|
||||
public async Task SubmitForm(object Result)
|
||||
{
|
||||
TransferWizardModel transferWizardModel = Result as TransferWizardModel;
|
||||
if(sessionService.IsAuthenticated)
|
||||
{
|
||||
transferWizardModel.UserId = sessionService.User.UserModelDto.Id;
|
||||
transferWizardModel.ProductId = sessionService.User.UserModelDto.Products.FirstOrDefault().Id;
|
||||
}
|
||||
transferWizardModel.Price = null;
|
||||
var transfer = await WizardProcessor.ProcessWizardAsync<TransferWizardModel>(transferWizardModel.GetType(), transferWizardModel);
|
||||
BrowserConsoleLogWriter.Info($"Submitted nested form: {Result.GetType().FullName}");
|
||||
navManager.NavigateTo("/transfer2/" + transfer.Id);
|
||||
TransferWizardModel transferWizardModel = Result as TransferWizardModel;
|
||||
if (sessionService.IsAuthenticated)
|
||||
{
|
||||
transferWizardModel.UserId = sessionService.User.UserModelDto.Id;
|
||||
transferWizardModel.ProductId = sessionService.User.UserModelDto.Products.FirstOrDefault().Id;
|
||||
}
|
||||
transferWizardModel.Price = null;
|
||||
var transfer = await WizardProcessor.ProcessWizardAsync<TransferWizardModel>(transferWizardModel.GetType(), transferWizardModel);
|
||||
BrowserConsoleLogWriter.Info($"Submitted nested form: {Result.GetType().FullName}");
|
||||
navManager.NavigateTo("/transfer2/" + transfer.Id);
|
||||
}
|
||||
|
||||
public List<Event> MockEvents = new List<Event>
|
||||
{
|
||||
new Event("HONEYBEAST", "A Honeybeast egyedisége abban rejlik, hogy a popzenét rengeteg különféle irányból közelítik meg - hol vidám, hol szomorú, hol pörgős, hogy lassú, koncertjükön az érzelmek széles skáláját élhetjük át együtt.", "2024.05.03", "Budapest Park", "https://tixa.hu/kepek/0027/320/27870-1_20231214141702.jpg"),
|
||||
new Event("VAD FRUTTIK", "A kék a tenger és az ég színe, a nyílt terekkel, valamint a képzelettel és tágassággal társul - végtelen kékség május 3-án a Budapest Parkban!", "2024.04.26", "Budapest Park", "https://tixa.hu/kepek/0027/768/27692-1_20231129185842.jpg"),
|
||||
new Event("DEBORAH DE LUCA", "DEBORAH DE LUCA 2024-ben Magyarországon csak a Budapest Park színpadán", "2024.08.19", "Budapest Park", "https://tixa.hu/kepek/0028/768/28535-1_20240118172423.jpg"),
|
||||
new Event("TOTAL DANCE CABRIO", "Ha nyár, akkor Total Dance Cabrio! Ülj be mellénk a cabrioba, és hagyd, hogy visszarepítsünk a 90-es és 2000-es évekbe! ", "2024.04.26", "Budapest Park", "https://tixa.hu/kepek/0027/768/27829-1_20231206193253.jpg"),
|
||||
new Event("HONEYBEAST", "A Honeybeast egyedisége abban rejlik, hogy a popzenét rengeteg különféle irányból közelítik meg - hol vidám, hol szomorú, hol pörgős, hogy lassú, koncertjükön az érzelmek széles skáláját élhetjük át együtt.", "2024.05.03", "Budapest Park", "https://tixa.hu/kepek/0027/320/27870-1_20231214141702.jpg"),
|
||||
new Event("VAD FRUTTIK", "A kék a tenger és az ég színe, a nyílt terekkel, valamint a képzelettel és tágassággal társul - végtelen kékség május 3-án a Budapest Parkban!", "2024.04.26", "Budapest Park", "https://tixa.hu/kepek/0027/768/27692-1_20231129185842.jpg"),
|
||||
new Event("DEBORAH DE LUCA", "DEBORAH DE LUCA 2024-ben Magyarországon csak a Budapest Park színpadán", "2024.08.19", "Budapest Park", "https://tixa.hu/kepek/0028/768/28535-1_20240118172423.jpg"),
|
||||
new Event("TOTAL DANCE CABRIO", "Ha nyár, akkor Total Dance Cabrio! Ülj be mellénk a cabrioba, és hagyd, hogy visszarepítsünk a 90-es és 2000-es évekbe! ", "2024.04.26", "Budapest Park", "https://tixa.hu/kepek/0027/768/27829-1_20231206193253.jpg"),
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@using Newtonsoft.Json
|
||||
@using System.IdentityModel.Tokens.Jwt
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Interfaces.StorageHandlers;
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAM.Core.Loggers
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.IdentityModel.Tokens.Jwt;
|
||||
using System.Text.Json;
|
||||
using AyCode.Core.Extensions;
|
||||
using AyCode.Core.Helpers;
|
||||
using AyCode.Core.Loggers;
|
||||
using TIAMWebApp.Shared.Application.Models.ClientSide;
|
||||
using TIAMWebApp.Shared.Application.Models;
|
||||
using TIAMWebApp.Shared.Application.Interfaces;
|
||||
@@ -39,7 +40,7 @@ namespace TIAMSharedUI.Pages
|
||||
[Inject]
|
||||
public AuthenticationStateProvider AuthStateProvider { get; set; }
|
||||
[Inject] public IComponentUpdateService componentUpdateService { get; set; }
|
||||
[Inject] public ISessionService sessionService { get; set; }
|
||||
[Inject] public ISessionServiceClient sessionService { get; set; }
|
||||
//fill loginmodel with fake but valid data
|
||||
|
||||
//LoginModel loginModel = new();
|
||||
|
||||
@@ -14,9 +14,10 @@
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@using AyCode.Core.Extensions
|
||||
@using AyCode.Core.Loggers
|
||||
@layout AdminLayout
|
||||
@inject IPopulationStructureDataProvider DataProvider
|
||||
@inject ISessionService SessionService
|
||||
@inject ISessionServiceClient SessionService
|
||||
@inject IUserDataService UserDataService
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject AdminSignalRClient _adminSignalRClient
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace TIAMSharedUI.Pages
|
||||
public IStringLocalizer<MyResources>? localizer { get; set; }
|
||||
|
||||
[Inject]
|
||||
public ISessionService SessionService { get; set; }
|
||||
public ISessionServiceClient SessionService { get; set; }
|
||||
|
||||
public string Language { get; set; } = "en-US";
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
@page "/sumuppayment/{checkoutId}"
|
||||
@using AyCode.Services.Loggers
|
||||
@using System.Text.Json.Serialization
|
||||
@using AyCode.Core.Loggers
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
@page "/dbtest"
|
||||
@using AyCode.Core.Loggers
|
||||
@using TIAMSharedUI.Pages.Components
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
@page "/backgroundtest"
|
||||
@inject IStringLocalizer<TIAMResources> localizer;
|
||||
@using TIAM.Resources
|
||||
@using TIAMSharedUI.Shared
|
||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI
|
||||
|
||||
<div class="hero">
|
||||
|
||||
<div class="parallax-layer layer-6"></div>
|
||||
<div class="parallax-layer layer-5"></div>
|
||||
<div class="parallax-layer layer-4"></div>
|
||||
<div class="parallax-layer bike-1"></div>
|
||||
<div class="parallax-layer bike-2"></div>
|
||||
<div class="parallax-layer layer-3"></div>
|
||||
<div class="parallax-layer layer-2"></div>
|
||||
<div class="parallax-layer layer-1"></div>
|
||||
<div class="logo">
|
||||
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/24650/logo.svg" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<HeroSlider SliderItems="@sliders" PBottom="50px" Height="70vh"></HeroSlider>
|
||||
|
||||
<section class="py-5 bg-light">
|
||||
<div class="container">
|
||||
<div class="row align-items-center">
|
||||
<!-- Text Content -->
|
||||
<div class="col-md-6">
|
||||
<h2>@localizer.GetString("Index.WhoWeAre")</h2>
|
||||
<p>We’re not here to take over your trip. We’re here to help shape it — with smooth rides, flexible options, and curated experiences you can actually enjoy.</p>
|
||||
<p>Think of us as your private ride — whether you’re heading to the airport, a spa town, a winery, or somewhere off the map.</p>
|
||||
<p>You can follow one of our signature routes, or create your own. We adapt. You decide. We take care of the road.</p>
|
||||
<p>Our role changes with every guest. Sometimes we’re your calm in the chaos. Sometimes we’re your quiet local expert. Sometimes we’re just there — when you need someone who knows the way.</p>
|
||||
</div>
|
||||
<!-- Image Placeholder -->
|
||||
<div class="col-md-6 text-center">
|
||||
<img src="https://via.placeholder.com/500x350" alt="Who we are" class="img-fluid rounded shadow">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@code {
|
||||
public List<HeroSliderItem> sliders = new List<HeroSliderItem>
|
||||
{
|
||||
new HeroSliderItem
|
||||
{
|
||||
Title = "Experience Hungary on Your Terms",
|
||||
Subtitle = "Discover the freedom of personalized travel with expert private transfers and curated inspiration.",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1551867633-194f125bddfa?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
||||
ButtonText = "Explore Our Programs",
|
||||
ButtonUrl= "/signature-ride-packages"
|
||||
},
|
||||
new HeroSliderItem
|
||||
{
|
||||
Title = "Experience Hungary on Your Terms",
|
||||
Subtitle = "Discover the freedom of personalized travel with expert private transfers and curated inspiration.",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1549877452-9c387954fbc2?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
||||
ButtonText = "Book now",
|
||||
ButtonUrl= "/transfer"
|
||||
},
|
||||
new HeroSliderItem
|
||||
{
|
||||
Title = "Experience Hungary on Your Terms",
|
||||
Subtitle = "",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1507622560124-621e26755fb8?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
||||
ButtonText = "",
|
||||
ButtonUrl= ""
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,179 @@
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "Lato", sans-serif;
|
||||
}
|
||||
|
||||
.hero {
|
||||
width: 100%;
|
||||
min-height: 450px;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background-color: #d9edfd;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.layer-1 {
|
||||
-webkit-animation: parallax_fg linear 20s infinite both;
|
||||
animation: parallax_fg linear 20s infinite both;
|
||||
background: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/24650/1.png) 0 100% repeat-x;
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-size: auto 136px;
|
||||
}
|
||||
|
||||
.layer-2 {
|
||||
-webkit-animation: parallax_fg linear 30s infinite both;
|
||||
animation: parallax_fg linear 30s infinite both;
|
||||
background: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/24650/2.png) 0 100% repeat-x;
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-size: auto 145px;
|
||||
}
|
||||
|
||||
.layer-3 {
|
||||
-webkit-animation: parallax_fg linear 55s infinite both;
|
||||
animation: parallax_fg linear 55s infinite both;
|
||||
background: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/24650/3.png) 0 100% repeat-x;
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-size: auto 158px;
|
||||
}
|
||||
|
||||
.layer-4 {
|
||||
-webkit-animation: parallax_fg linear 75s infinite both;
|
||||
animation: parallax_fg linear 75s infinite both;
|
||||
background: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/24650/4.png) 0 100% repeat-x;
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-size: auto 468px;
|
||||
}
|
||||
|
||||
.layer-5 {
|
||||
-webkit-animation: parallax_fg linear 95s infinite both;
|
||||
animation: parallax_fg linear 95s infinite both;
|
||||
background: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/24650/5.png) 0 100% repeat-x;
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-size: auto 311px;
|
||||
}
|
||||
|
||||
.layer-6 {
|
||||
-webkit-animation: parallax_fg linear 120s infinite both;
|
||||
animation: parallax_fg linear 120s infinite both;
|
||||
background: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/24650/6.png) 0 100% repeat-x;
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-size: auto 222px;
|
||||
}
|
||||
|
||||
.bike-1,
|
||||
.bike-2 {
|
||||
background: url(images/car.png) 0 100% no-repeat;
|
||||
z-index: 1;
|
||||
position: fixed;
|
||||
bottom: 100px;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-size: auto 75px;
|
||||
}
|
||||
|
||||
.bike-1 {
|
||||
-webkit-animation: parallax_bike linear 10s infinite both;
|
||||
animation: parallax_bike linear 10s infinite both;
|
||||
}
|
||||
|
||||
.bike-2 {
|
||||
-webkit-animation: parallax_bike linear 15s infinite both;
|
||||
animation: parallax_bike linear 15s infinite both;
|
||||
}
|
||||
|
||||
@-webkit-keyframes parallax_fg {
|
||||
0% {
|
||||
background-position: 2765px 100%;
|
||||
}
|
||||
|
||||
100% {
|
||||
background-position: 550px 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes parallax_fg {
|
||||
0% {
|
||||
background-position: 2765px 100%;
|
||||
}
|
||||
|
||||
100% {
|
||||
background-position: 550px 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes parallax_bike {
|
||||
0% {
|
||||
background-position: -300px 100%;
|
||||
}
|
||||
|
||||
100% {
|
||||
background-position: 2000px 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes parallax_bike {
|
||||
0% {
|
||||
background-position: -300px 100%;
|
||||
}
|
||||
|
||||
100% {
|
||||
background-position: 2000px 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.logo {
|
||||
margin: 70px auto;
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.logo img {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
@media (max-width: 700px) {
|
||||
.logo img {
|
||||
max-width: 90%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
@page "/tictactoe"
|
||||
@using AyCode.Core.Loggers
|
||||
@using Microsoft.AspNetCore.SignalR.Client
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
@page "/tours"
|
||||
@using TIAMSharedUI.Shared
|
||||
|
||||
<HeroSlider></HeroSlider>
|
||||
|
||||
<div class="container">
|
||||
<section class="game-section" style="max-width: 100%; overflow-x:hidden">
|
||||
<div class="text-center">
|
||||
|
||||
<h1>Tours</h1>
|
||||
<h2>Please select!</h2>
|
||||
</div>
|
||||
<div class="owl-carousel custom-carousel owl-theme">
|
||||
<a href="login">
|
||||
<div class="item active" style="background-image: url(_content/TIAMSharedUI/images/slider1.jpg);">
|
||||
|
||||
<div class="item-desc">
|
||||
<h3>Parliament of Hungary</h3>
|
||||
<p>The Parliament of Hungary, located in Budapest, is a magnificent neo-Gothic building along the Danube River, housing the country's legislature and representing a symbol of Hungary's political and historical significance.</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</a>
|
||||
<div class="item" style="background-image: url(_content/TIAMSharedUI/images/slider2.jpg);">
|
||||
<div class="item-desc">
|
||||
<h3>Buda Castle</h3>
|
||||
<p>Buda Castle, located in Budapest, Hungary, is a historic palace complex that has served as the royal residence and administrative center for Hungarian kings throughout history. </p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item" style="background-image: url(_content/TIAMSharedUI/images/slider3.jpg);">
|
||||
<div class="item-desc">
|
||||
<h3>Aggtelek National Park</h3>
|
||||
<p>Aggtelek Cave, in northeastern Hungary, is a UNESCO World Heritage site renowned for its intricate karst formations, underground river, and breathtaking natural beauty, making it a must-visit destination for cave enthusiasts and nature lovers.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item" style="background-image: url(_content/TIAMSharedUI/images/slider4.jpg);">
|
||||
<div class="item-desc">
|
||||
<h3>Margaret Island</h3>
|
||||
<p>Margaret Island, also in Budapest, is a serene green oasis situated in the middle of the Danube River, offering recreational opportunities, gardens, and a relaxing escape from the city.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item" style="background-image: url(_content/TIAMSharedUI/images/slider5.jpg);">
|
||||
<div class="item-desc">
|
||||
<h3>Heroes square</h3>
|
||||
<p>Heroes' Square in Budapest, Hungary, is a grand public square featuring iconic statues and monuments honoring the nation's historic leaders and heroes.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item" style="background-image: url(_content/TIAMSharedUI/images/slider6.jpg);">
|
||||
<div class="item-desc">
|
||||
<h3>Vajdahunyad Castle</h3>
|
||||
<p>Vajdahunyad Castle, also in Budapest, is a fairytale-like complex showcasing architectural styles from various historical periods, making it a unique and picturesque cultural destination.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<EventsComponent ItemType="0"></EventsComponent>
|
||||
<FeaturedItems ItemType="0"></FeaturedItems>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(".custom-carousel").owlCarousel({
|
||||
autoWidth: true,
|
||||
loop: true
|
||||
});
|
||||
$(document).ready(function () {
|
||||
$(".custom-carousel .item").click(function () {
|
||||
$(".custom-carousel .item").not($(this)).removeClass("active");
|
||||
$(this).toggleClass("active");
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,39 @@
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAMWebApp.Shared.Application.Models
|
||||
|
||||
|
||||
<EditForm Model="@Tour" OnValidSubmit="@HandleValidSubmit">
|
||||
<DataAnnotationsValidator />
|
||||
<ValidationSummary />
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Title</label>
|
||||
<InputText class="form-control" @bind-Value="Tour.Title" />
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Fancy Description</label>
|
||||
<InputTextArea class="form-control" @bind-Value="Tour.FancyDescription" rows="4" />
|
||||
</div>
|
||||
|
||||
<div class="d-flex gap-2">
|
||||
<button type="submit" class="btn btn-success">Save</button>
|
||||
<button type="button" class="btn btn-secondary" @onclick="HandleCancel">Cancel</button>
|
||||
</div>
|
||||
</EditForm>
|
||||
|
||||
@code {
|
||||
[Parameter] public TourInfo Tour { get; set; } = new();
|
||||
[Parameter] public EventCallback<TourInfo> OnSave { get; set; }
|
||||
[Parameter] public EventCallback OnCancel { get; set; }
|
||||
|
||||
private async Task HandleValidSubmit()
|
||||
{
|
||||
await OnSave.InvokeAsync(Tour);
|
||||
}
|
||||
|
||||
private async Task HandleCancel()
|
||||
{
|
||||
await OnCancel.InvokeAsync(Tour);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
@page "/signature-ride-packages"
|
||||
@inject TourService TourService
|
||||
@using TIAMSharedUI.Shared
|
||||
@using TIAMSharedUI.Shared.Components
|
||||
@using TIAMWebApp.Shared.Application.Models
|
||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
|
||||
@using Microsoft.AspNetCore.Components.Web
|
||||
|
||||
<HeroSlider SliderItems="@sliders" PBottom="50px" Height="30vh"></HeroSlider>
|
||||
|
||||
|
||||
|
||||
<ToursComponent />
|
||||
@* <FeaturedItems ItemType="0" /> *@
|
||||
|
||||
|
||||
@code {
|
||||
public List<HeroSliderItem> sliders = new()
|
||||
{
|
||||
new HeroSliderItem
|
||||
{
|
||||
Title = "Experience Hungary on Your Terms",
|
||||
Subtitle = "Discover the freedom of personalized travel with expert private transfers and curated inspiration.",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1551867633-194f125bddfa?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
||||
ButtonText = "Explore Our Programs",
|
||||
ButtonUrl= "/signature-ride-packages"
|
||||
},
|
||||
new HeroSliderItem
|
||||
{
|
||||
Title = "Experience Hungary on Your Terms",
|
||||
Subtitle = "Discover the freedom of personalized travel with expert private transfers and curated inspiration.",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1549877452-9c387954fbc2?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
||||
ButtonText = "Book now",
|
||||
ButtonUrl= "/transfer"
|
||||
},
|
||||
new HeroSliderItem
|
||||
{
|
||||
Title = "Experience Hungary on Your Terms",
|
||||
Subtitle = "",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1507622560124-621e26755fb8?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
||||
ButtonText = "",
|
||||
ButtonUrl= ""
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,420 @@
|
||||
@page "/book-a-tour/{TransferDestinationId}/{PriceCategory:int}"
|
||||
@using AyCode.Core.Consts
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Core.Loggers
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@using TIAM.Services
|
||||
@using TIAMSharedUI.Pages.Components
|
||||
@using TIAMSharedUI.Pages.Components.EditComponents
|
||||
@using TIAMSharedUI.Shared
|
||||
@using TIAMSharedUI.Shared.Components.BaseComponents
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Models
|
||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI
|
||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAMSharedUI.Pages.User.Hotels
|
||||
@using TIAMWebApp.Shared.Application.Models.PageModels
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@inherits BasePageComponent
|
||||
@inject NavigationManager navManager
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject IWizardProcessor WizardProcessor
|
||||
@inject IUserDataService UserDataService
|
||||
@inject AdminSignalRClient _adminSignalRClient
|
||||
@inject ITransferDataService TransferDataService
|
||||
@inject TourService TourService
|
||||
|
||||
<PageTitle>Transfer</PageTitle>
|
||||
|
||||
<HeroSlider SliderItems="sliders" Height="30vh"></HeroSlider>
|
||||
<div class="container-fluid" style="position: relative; z-index: 2;">
|
||||
<div class="row d-flex justify-content-center">
|
||||
|
||||
@{
|
||||
if (_displayHelp)
|
||||
{
|
||||
<div class="col-md-6 col-12 px-5">
|
||||
<!-- Step 1 -->
|
||||
<div class="card mb-3 shadow-sm">
|
||||
|
||||
<div class="card-body">
|
||||
<p>
|
||||
Step 1: Choose Your Transfer Direction
|
||||
</p>
|
||||
<p class="text-muted">At the top of the form, select whether you need a transfer <strong>"To the Airport"</strong> or <strong>"From the Airport"</strong> by clicking on the corresponding tab.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Step 2 -->
|
||||
<div class="card mb-3 shadow-sm">
|
||||
|
||||
|
||||
<div class="card-body">
|
||||
<p>
|
||||
|
||||
Step 2: Enter the Destination (or Pickup) Address
|
||||
|
||||
</p>
|
||||
<p class="text-muted">In the <strong>PickupAddress</strong> section, select your address:</p>
|
||||
<ul>
|
||||
<li><strong>Preset addresses:</strong> Click on the dropdown menu under “Preset addresses” and choose an address from the list. For example, you may see options like "Széchenyi fürdő."</li>
|
||||
<li><strong>Custom address:</strong> If your address is not listed, click on the "Custom address" tab to manually enter your address.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Step 3 -->
|
||||
<div class="card mb-3 shadow-sm">
|
||||
|
||||
|
||||
<div class="card-body">
|
||||
<p>
|
||||
Step 3: Confirm the Destination
|
||||
</p>
|
||||
<p class="text-muted">Once you select or enter the address, the form will display it as the "Selected address." Make sure this is correct before proceeding.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Step 4 -->
|
||||
<div class="card mb-3 shadow-sm">
|
||||
|
||||
|
||||
<div class="card-body">
|
||||
<p>
|
||||
Step 4: Enter Flight Information (Optional)
|
||||
</p>
|
||||
<p class="text-muted">If applicable, fill in your <strong>FlightNumber</strong>. This is optional, so you can leave it blank if you don't have or don’t want to provide it.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Step 5 -->
|
||||
<div class="card mb-3 shadow-sm">
|
||||
|
||||
|
||||
<div class="card-body">
|
||||
<p>
|
||||
Step 5: Specify the Number of Passengers
|
||||
</p>
|
||||
<p>In the <strong>NumberOfPassengers</strong> field, enter the number of people who will be traveling. The default is set to 1, but you can change it as needed.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Step 6 -->
|
||||
<div class="card mb-3 shadow-sm">
|
||||
|
||||
|
||||
<div class="card-body">
|
||||
<p>
|
||||
Step 6: Indicate the Amount of Luggage
|
||||
</p>
|
||||
<p class="text-muted">In the <strong>NumberOfLuggage</strong> field, enter the total number of luggage items you will be bringing.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Step 7 -->
|
||||
<div class="card mb-3 shadow-sm">
|
||||
|
||||
|
||||
<div class="card-body">
|
||||
<p>
|
||||
Step 7: Fill in Your Personal Information
|
||||
</p>
|
||||
<p class="text-muted">Under <strong>FullName</strong>, enter your first and last name in the respective fields. Provide your <strong>PhoneNumber</strong> in the designated field. The phone number appears to be pre-filled with a sample number ("+11234567890"), so be sure to update it with your actual contact number. Enter your <strong>EmailAddress</strong> to receive confirmation and any further communication regarding your transfer.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Step 8 -->
|
||||
<div class="card mb-3 shadow-sm">
|
||||
|
||||
|
||||
<div class="card-body">
|
||||
<p>
|
||||
Step 8: Add Additional Comments (Optional)
|
||||
</p>
|
||||
<p class="text-muted">If you have any special requests or additional information you’d like to provide, use the <strong>Comment</strong> section to do so.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Step 9 -->
|
||||
<div class="card mb-3 shadow-sm">
|
||||
|
||||
|
||||
<div class="card-body">
|
||||
<p>
|
||||
Step 9: Submit Your Request
|
||||
</p>
|
||||
<p>Once all fields are filled in correctly, click the <strong>Submit</strong> button at the bottom of the form to place your transfer order.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Step 10 -->
|
||||
<div class="card mb-3 shadow-sm">
|
||||
|
||||
|
||||
<div class="card-body">
|
||||
<p>
|
||||
Step 10: Confirmation
|
||||
</p>
|
||||
|
||||
<p>After submitting, you should receive a confirmation email or message. Ensure all the details are correct, and you’re all set!</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
<div class="col-12 col-md-6">
|
||||
<DxToolbar ItemRenderStyleMode="ToolbarRenderStyleMode.Contained">
|
||||
<Items>
|
||||
<DxToolbarItem Alignment="ToolbarItemAlignment.Right" Text="Help" RenderStyle="ButtonRenderStyle.Secondary" IconCssClass="grid-icon-column-chooser" Click="ShowHelp_Click" />
|
||||
</Items>
|
||||
</DxToolbar>
|
||||
<div style="max-height: 300px; overflow-y: hidden">
|
||||
<img class="img-fluid" src="@tourInfo.CoverImageUrl" alt="@tourInfo.Title"/>
|
||||
</div>
|
||||
<DynamicEditForm Data="_myModel" TitleString="@($"To: {tourInfo.Title}, Price: {_myModel.Price} EUR")" isEditing="true" IgnoreReflection="_transferIgnorList1" OnSubmit="SubmitForm"></DynamicEditForm>
|
||||
|
||||
<InputWizard Data=@_myModel
|
||||
OnSubmit="SubmitForm"
|
||||
IgnoreReflection="@_transferIgnorList1"
|
||||
SubmitButtonText="ButtonSend"
|
||||
TitleResourceString="TransferTitle"
|
||||
SubtitleResourceString="TransferSubtitle"></InputWizard>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="container mt-5">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 col-sm-6 p-5">
|
||||
<h1>Book an Airport Transfer</h1>
|
||||
<p>Welcome to Tour I Am! Book your airport transfer with us for a smooth and stress-free experience. Our professional drivers are ready to take you to and from the airport in comfort and style. We offer competitive rates and reliable service, ensuring you get to your destination on time.</p>
|
||||
|
||||
<h2>Why Choose Tour I Am?</h2>
|
||||
<ul class="list-unstyled">
|
||||
<li><strong>Reliable Service:</strong> Punctual pickups and drop-offs.</li>
|
||||
<li><strong>Professional Drivers:</strong> Experienced and courteous drivers.</li>
|
||||
<li><strong>Affordable Rates:</strong> Competitive pricing with no hidden fees.</li>
|
||||
<li><strong>Comfortable Vehicles:</strong> Clean, modern, and well-maintained cars.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="col-12 col-sm-6 p-5">
|
||||
<img class="img-fluid" src="_content/TIAMSharedUI/images/about1.jpg" />
|
||||
</div>
|
||||
<div class="col-12 col-sm-6 p-5">
|
||||
<img class="img-fluid" src="_content/TIAMSharedUI/images/about2.jpg" />
|
||||
</div>
|
||||
<div class="col-12 col-sm-6 p-5">
|
||||
|
||||
<h2>How to Book</h2>
|
||||
<p>Booking your airport transfer is easy! Simply visit our <a href="/transfer">booking page</a>, enter your details, and confirm your reservation. You can also contact us at <a href="mailto:info@touriam.com">info@touriam.com</a> or call us at (123) 456-7890 for assistance.</p>
|
||||
|
||||
<p>Experience the convenience and reliability of Tour I Am. Book your airport transfer today and travel with peace of mind!</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@code {
|
||||
[Parameter] public string TransferDestinationId { get; set; }
|
||||
[Parameter] public int PriceCategory { get; set; } = 1;
|
||||
private LoggerClient<TransferPage> _logger;
|
||||
|
||||
private readonly TransferWizardModel _myModel = new TransferWizardModel();
|
||||
private TourInfo? tourInfo = new();
|
||||
|
||||
private bool _displayHelp = false;
|
||||
|
||||
public List<HeroSliderItem> sliders = new List<HeroSliderItem>
|
||||
{
|
||||
new HeroSliderItem
|
||||
{
|
||||
Title = "Experience Hungary on Your Terms",
|
||||
Subtitle = "Discover the freedom of personalized travel with expert private transfers and curated inspiration.",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1551867633-194f125bddfa?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
||||
ButtonText = "Explore Our Programs",
|
||||
ButtonUrl= "/signature-ride-packages"
|
||||
},
|
||||
new HeroSliderItem
|
||||
{
|
||||
Title = "Experience Hungary on Your Terms",
|
||||
Subtitle = "Discover the freedom of personalized travel with expert private transfers and curated inspiration.",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1549877452-9c387954fbc2?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
||||
ButtonText = "Book now",
|
||||
ButtonUrl= "/transfer"
|
||||
},
|
||||
new HeroSliderItem
|
||||
{
|
||||
Title = "Experience Hungary on Your Terms",
|
||||
Subtitle = "",
|
||||
ImageUrl = "https://images.unsplash.com/photo-1507622560124-621e26755fb8?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
||||
ButtonText = "",
|
||||
ButtonUrl= ""
|
||||
}
|
||||
};
|
||||
|
||||
private readonly List<string> _transferIgnorList1 =
|
||||
[
|
||||
"Id",
|
||||
"Destination",
|
||||
"UserId",
|
||||
"ProductId",
|
||||
"PaymentId",
|
||||
"FirstName",
|
||||
"LastName",
|
||||
"UserProductMappingId",
|
||||
"UserProductToCarId",
|
||||
"ReferralId",
|
||||
"Price"
|
||||
];
|
||||
|
||||
|
||||
public async Task SubmitForm(object result)
|
||||
{
|
||||
var resModel = (TransferWizardModel)result;
|
||||
|
||||
//let's check if user exists with this email
|
||||
var user = await UserDataService.GetUserByEmailAsync(resModel.EmailAddress!);
|
||||
if (user != null && user.Id != Guid.Empty)
|
||||
{
|
||||
resModel.UserId = user.Id;
|
||||
//user exists already
|
||||
|
||||
if (_sessionService.User != null)
|
||||
{
|
||||
if (_sessionService.User.UserId == user.Id)
|
||||
{
|
||||
|
||||
//I have ordered for myself
|
||||
resModel.ReferralId = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
//if I am logged in and different user I become referrer (if no referrer already)
|
||||
var transferUserDetail = await UserDataService.GetUserDetailByIdAsync(user.Id);
|
||||
var userDetail = await UserDataService.GetUserDetailByIdAsync(_sessionService.User.UserId);
|
||||
|
||||
if (transferUserDetail.UserDto.RefferalId != null)
|
||||
{
|
||||
//user has aready a referrer so we use that
|
||||
resModel.ReferralId = transferUserDetail.UserDto.RefferalId;
|
||||
}
|
||||
else
|
||||
{
|
||||
//user has no referrer so I am the referrer
|
||||
resModel.ReferralId = userDetail.UserDto.RefferalId;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//create a guest user and set referralId
|
||||
var registration = new RegistrationModel();
|
||||
|
||||
var password = AcCharsGenerator.NewPassword(AcConst.MinPasswordLength, 16);
|
||||
|
||||
registration.Email = resModel.EmailAddress;
|
||||
registration.PhoneNumber = resModel.PhoneNumber;
|
||||
registration.Password = password;
|
||||
//get list with one member!
|
||||
|
||||
var createResult = await UserDataService.CreateGuestUser(registration);
|
||||
if (createResult.isSuccess)
|
||||
{
|
||||
if (createResult.user != null)
|
||||
{
|
||||
if (_sessionService.User != null)
|
||||
{
|
||||
//if I am logged in user I become referrer
|
||||
var userDetail = await UserDataService.GetUserDetailByIdAsync(_sessionService.User.UserId);
|
||||
var createdUserDetail = await UserDataService.GetUserDetailByIdAsync(createResult.user.Id);
|
||||
if (createdUserDetail != null)
|
||||
{
|
||||
createdUserDetail.UserDto.RefferalId = userDetail.UserDto.RefferalId;
|
||||
|
||||
var updatedNewUser = await _adminSignalRClient.UpdateUserModelDtoDetail(userDetail);
|
||||
if (updatedNewUser != null)
|
||||
{
|
||||
//referral set
|
||||
}
|
||||
else
|
||||
{
|
||||
//something wrong
|
||||
}
|
||||
}
|
||||
|
||||
resModel.ReferralId = userDetail.UserDto.RefferalId;
|
||||
}
|
||||
|
||||
resModel.UserId = createResult.user.Id;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//some error handling
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var transfer = await WizardProcessor.ProcessWizardAsync<TransferWizardModel>(result.GetType(), result);
|
||||
_logger.Info($"Submitted nested form: {result.GetType().FullName}");
|
||||
navManager.NavigateTo($"/mytransfers/{resModel.Id}");
|
||||
}
|
||||
|
||||
protected override Task OnInitializedAsync()
|
||||
{
|
||||
_logger = new LoggerClient<TransferPage>(LogWriters.ToArray());
|
||||
|
||||
|
||||
return base.OnInitializedAsync();
|
||||
}
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
//get transferDestination
|
||||
var destination = await TransferDataService.GetTransferDestinationbyIdAsync(Guid.Parse(TransferDestinationId));
|
||||
_myModel.Destination = destination.AddressString;
|
||||
switch (PriceCategory)
|
||||
{
|
||||
case 1:
|
||||
_myModel.Price = destination.Price;
|
||||
break;
|
||||
case 2:
|
||||
_myModel.Price = destination.Price2;
|
||||
break;
|
||||
case 3:
|
||||
_myModel.Price = destination.Price3;
|
||||
break;
|
||||
}
|
||||
|
||||
tourInfo = await TourService.GetAsync(destination.Id);
|
||||
|
||||
|
||||
|
||||
await base.OnParametersSetAsync();
|
||||
}
|
||||
|
||||
private void ShowHelp_Click()
|
||||
{
|
||||
_displayHelp = !_displayHelp;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,202 @@
|
||||
.container {
|
||||
padding-right: 15px;
|
||||
padding-left: 15px;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.container {
|
||||
width: 750px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.container {
|
||||
width: 970px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
.container {
|
||||
width: 1170px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
#featureContainer .carousel-inner .carousel-item > div {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#featureContainer .carousel-inner .carousel-item > div:first-child {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
#featureContainer .carousel-inner .carousel-item.active,
|
||||
#featureContainer .carousel-inner .carousel-item-next,
|
||||
#featureContainer .carousel-inner .carousel-item-prev {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
|
||||
#featureContainer .carousel-inner .carousel-item-end.active,
|
||||
#featureContainer .carousel-inner .carousel-item-next {
|
||||
transform: translateX(25%);
|
||||
}
|
||||
|
||||
#featureContainer .carousel-inner .carousel-item-start.active,
|
||||
#featureContainer .carousel-inner .carousel-item-prev {
|
||||
transform: translateX(-25%);
|
||||
}
|
||||
|
||||
#featureContainer .card img {
|
||||
width: 90%;
|
||||
height: 40vh;
|
||||
}
|
||||
|
||||
#featureContainer .carousel-item {
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
#featureContainer .card img {
|
||||
width: 100%;
|
||||
height: 75vh;
|
||||
}
|
||||
}
|
||||
|
||||
#featureContainer .carousel-inner .carousel-item-end,
|
||||
#featureContainer .carousel-inner .carousel-item-start {
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
#featureContainer .card {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
#featureContainer .card {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#featureContainer .card .card-img-overlays {
|
||||
position: absolute;
|
||||
bottom: 15%;
|
||||
left: 10%;
|
||||
}
|
||||
|
||||
#featureContainer a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#featureContainer .indicator {
|
||||
border: 1px solid rgb(202, 202, 202);
|
||||
padding: 3px 6px 3px 6px;
|
||||
}
|
||||
|
||||
#featureContainer .indicator:hover {
|
||||
background-color: blue;
|
||||
border: 1px solid blue;
|
||||
transition: 200ms;
|
||||
}
|
||||
|
||||
#featureContainer .indicator:hover {
|
||||
color: white;
|
||||
transition: 200ms;
|
||||
}
|
||||
|
||||
#featureContainer .indicator {
|
||||
color: lightgray;
|
||||
}
|
||||
|
||||
#featureContainer .float-end {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* Reseting */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
font-family: 'Poppins', sans-serif;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
max-width: 800px;
|
||||
min-height: 500px;
|
||||
margin: 10px auto;
|
||||
padding: 30px 30px 30px 30px;
|
||||
/*background-color: #ecf0f3;*/
|
||||
border-radius: 15px;
|
||||
/*box-shadow: 13px 13px 20px #cbced1, -13px -13px 20px #fff;*/
|
||||
}
|
||||
|
||||
|
||||
.wrapper .name {
|
||||
font-weight: 600;
|
||||
font-size: 1.4rem;
|
||||
letter-spacing: 1.3px;
|
||||
padding-left: 10px;
|
||||
/*color: #555*/;
|
||||
}
|
||||
|
||||
.wrapper .form-field input {
|
||||
width: 100%;
|
||||
display: block;
|
||||
border: none;
|
||||
outline: none;
|
||||
background: none;
|
||||
font-size: 1.2rem;
|
||||
color: #666;
|
||||
padding: 10px 15px 10px 10px;
|
||||
/* border: 1px solid red; */
|
||||
}
|
||||
|
||||
.wrapper .form-field {
|
||||
padding-left: 10px;
|
||||
margin-bottom: 20px;
|
||||
border-bottom: 1px solid;
|
||||
/*border-radius: 20px;*/
|
||||
//*ox-shadow: inset 3px 3px 3px #cbced1, inset -3px -3px 3px #fff;*/
|
||||
}
|
||||
|
||||
.wrapper .form-field .fas {
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.wrapper .btn {
|
||||
box-shadow: none;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
/*background-color: #03A9F4;*/
|
||||
color: #fff;
|
||||
border-radius: 15px;
|
||||
/*box-shadow: 3px 3px 3px #b1b1b1, -3px -3px 3px #fff;*/
|
||||
letter-spacing: 1.3px;
|
||||
}
|
||||
|
||||
.wrapper .btn:hover {
|
||||
background-color: #039BE5;
|
||||
}
|
||||
|
||||
.wrapper a {
|
||||
text-decoration: none;
|
||||
font-size: 0.8rem;
|
||||
color: #03A9F4;
|
||||
}
|
||||
|
||||
.wrapper a:hover {
|
||||
color: #039BE5;
|
||||
}
|
||||
|
||||
@media(max-width: 380px) {
|
||||
.wrapper {
|
||||
margin: 30px 20px;
|
||||
padding: 40px 15px 15px 15px;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
@page "/transfer"
|
||||
@using AyCode.Core.Consts
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Core.Loggers
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@using TIAM.Services
|
||||
@using TIAMSharedUI.Pages.Components
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
@using AyCode.Core.Enums
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Services.Loggers
|
||||
@using BlazorAnimation
|
||||
@using TIAM.Core.Consts
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
@page "/driver/cars/{driverId:guid}"
|
||||
@using AyCode.Core.Loggers
|
||||
@using BlazorAnimation
|
||||
@using TIAM.Entities.Drivers
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@@ -17,7 +18,7 @@
|
||||
@layout AdminLayout
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject IStringLocalizer<TIAMResources> Localizer
|
||||
@inject ISessionService SessionService
|
||||
@inject ISessionServiceClient SessionService
|
||||
@inject IWizardProcessor WizardProcessor
|
||||
@inject IUserDataService UserDataService
|
||||
<PageTitle>Car list</PageTitle>
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
@using AyCode.Core.Consts
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Services.SignalRs
|
||||
@using DevExpress.Data.Filtering
|
||||
@using TIAM.Entities.Emails
|
||||
@@ -34,7 +35,7 @@
|
||||
@inject IStringLocalizer<TIAMResources> localizer
|
||||
@inject IWizardProcessor wizardProcessor
|
||||
@inject ITransferDataService transferDataService;
|
||||
@inject ISessionService sessionService;
|
||||
@inject ISessionServiceClient sessionService;
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
<PageTitle>Transfers</PageTitle>
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
@page "/user/createAndManageTransfer"
|
||||
@using AyCode.Core.Consts
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Core.Loggers
|
||||
@using TIAM.Entities.Products
|
||||
@using TIAM.Entities.ServiceProviders
|
||||
@using TIAM.Entities.Transfers
|
||||
|
||||
@@ -16,6 +16,7 @@ using TIAMWebApp.Shared.Application.Models.ClientSide.UI;
|
||||
using TIAMWebApp.Shared.Application.Services;
|
||||
using TIAMWebApp.Shared.Application.Utility;
|
||||
using System.Collections.Generic;
|
||||
using AyCode.Core.Loggers;
|
||||
|
||||
namespace TIAMSharedUI.Pages.User.Hotels
|
||||
{
|
||||
@@ -37,7 +38,7 @@ namespace TIAMSharedUI.Pages.User.Hotels
|
||||
|
||||
[Inject] IEnumerable<IAcLogWriterClientBase> LogWriters { get; set; }
|
||||
|
||||
[Inject] ISessionService SessionService { get; set; }
|
||||
[Inject] ISessionServiceClient SessionService { get; set; }
|
||||
|
||||
private LoggerClient<HotelComponent> _logger;
|
||||
|
||||
|
||||
@@ -1,29 +1,30 @@
|
||||
@page "/hotel/transfers/{HotelId:guid}"
|
||||
@using AyCode.Blazor.Components.Components.Grids
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Consts
|
||||
@using AyCode.Core.Enums
|
||||
@using AyCode.Core.Extensions
|
||||
@using AyCode.Core.Helpers
|
||||
@using BlazorAnimation
|
||||
@using DevExpress.Data.Filtering
|
||||
@using TIAM.Core.Consts
|
||||
@using TIAM.Core.Enums
|
||||
@using TIAM.Entities.Emails
|
||||
@using TIAM.Entities.Emails
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAM.Resources
|
||||
@using TIAM.Services
|
||||
@using TIAMSharedUI.Pages.Components
|
||||
@using TIAMSharedUI.Pages.User.SysAdmins
|
||||
@using TIAMSharedUI.Shared
|
||||
@using TIAMSharedUI.Shared.Components.BaseComponents
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI
|
||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
|
||||
@using TIAMWebApp.Shared.Application.Models.PageModels
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using AyCode.Core.Enums
|
||||
@using AyCode.Core.Extensions
|
||||
@using AyCode.Core.Consts
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Helpers
|
||||
@using DevExpress.Data.Filtering
|
||||
@using TIAM.Entities.Emails
|
||||
@using TIAMSharedUI.Shared.Components.BaseComponents
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@inherits UserBasePageComponent
|
||||
@layout AdminLayout
|
||||
@inject IWizardProcessor wizardProcessor
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
@using AyCode.Core.Consts
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Core.Loggers
|
||||
@using DevExpress.Data.Filtering
|
||||
@using TIAM.Entities.Emails
|
||||
@using TIAMSharedUI.Shared.Components.BaseComponents
|
||||
@@ -29,7 +30,7 @@
|
||||
@inject IStringLocalizer<TIAMResources> localizer
|
||||
@inject IWizardProcessor wizardProcessor
|
||||
@inject ITransferDataService transferDataService
|
||||
@inject ISessionService sessionService
|
||||
@inject ISessionServiceClient sessionService
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
<PageTitle>Transfers</PageTitle>
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
@using AyCode.Core.Consts
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Core.Loggers
|
||||
@using DevExpress.Data.Filtering
|
||||
@using TIAMSharedUI.Shared.Components.BaseComponents
|
||||
@inherits BasePageComponent
|
||||
@@ -33,7 +34,7 @@
|
||||
@inject IStringLocalizer<TIAMResources> localizer
|
||||
@inject IWizardProcessor wizardProcessor
|
||||
@inject ITransferDataService transferDataService
|
||||
@inject ISessionService sessionService
|
||||
@inject ISessionServiceClient sessionService
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
<PageTitle>Transfers</PageTitle>
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
@page "/user/serviceprovider/{id}"
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Services.Loggers
|
||||
@using BlazorAnimation
|
||||
@using TIAM.Entities.ServiceProviders
|
||||
@@ -19,7 +20,7 @@
|
||||
@inject IStringLocalizer<TIAMResources> localizer
|
||||
@inject IServiceProviderDataService serviceProviderDataService
|
||||
@inject IUserDataService userDataService
|
||||
@inject ISessionService sessionService
|
||||
@inject ISessionServiceClient sessionService
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
<PageTitle>Admin - Companies</PageTitle>
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
@rendermode RenderMode.InteractiveWebAssembly
|
||||
@page "/user/media"
|
||||
@using System.Net.Http.Headers
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAMSharedUI.Shared
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
@using TIAMSharedUI.Pages.User.SysAdmins
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@inject ISessionService sessionService;
|
||||
@inject ISessionServiceClient sessionService;
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
@inject IJSRuntime jsRuntime
|
||||
|
||||
|
||||
@@ -13,13 +13,14 @@
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Core.Loggers
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using TIAMSharedUI.Pages.User.CardComponents
|
||||
@inherits BasePageComponent
|
||||
@layout AdminLayout
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject IStringLocalizer<TIAMResources> localizer
|
||||
@inject ISessionService SessionService
|
||||
@inject ISessionServiceClient SessionService
|
||||
@inject IServiceProviderDataService ServiceProviderDataService
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
<PageTitle>User permissions</PageTitle>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
@page "/user/serviceproviderold/{id}"
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAM.Entities.ServiceProviders
|
||||
@using TIAM.Resources
|
||||
@@ -16,7 +17,7 @@
|
||||
@inject IStringLocalizer<TIAMResources> localizer
|
||||
@inject IServiceProviderDataService serviceProviderDataService
|
||||
@inject IUserDataService userDataService
|
||||
@inject ISessionService sessionService
|
||||
@inject ISessionServiceClient sessionService
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
<PageTitle>Admin - Companies</PageTitle>
|
||||
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
@using TIAM.Entities.Products
|
||||
@using TIAM.Entities.ServiceProviders
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAM.Entities.Drivers
|
||||
@using TIAM.Entities.Users
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@using AyCode.Blazor.Components.Components.Grids
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Interfaces.Addresses
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAM.Core.Loggers
|
||||
@using TIAM.Entities.Addresses
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using TIAM.Entities.Drivers
|
||||
@using TIAM.Entities.Products
|
||||
@using TIAM.Entities.ServiceProviders
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAM.Entities.Users
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@using TIAMSharedUI.Pages.Components.EditComponents
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using AyCode.Interfaces.Addresses
|
||||
@using AyCode.Core
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@inject IServiceProviderDataService serviceProviderDataService
|
||||
@inject IUserDataService userDataService
|
||||
@inject ITransferDataService transferDataService
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using TIAMSharedUI.Pages.Components.EditComponents
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Loggers
|
||||
@inject IServiceProviderDataService serviceProviderDataService
|
||||
@inject IUserDataService userDataService
|
||||
@inject ITransferDataService transferDataService
|
||||
|
||||
@@ -0,0 +1,183 @@
|
||||
@page "/sysadmin/blogs"
|
||||
@using TIAMWebApp.Shared.Application.Models
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using TIAMSharedUI.Shared
|
||||
@layout AdminLayout
|
||||
@inject BlogService BlogService
|
||||
|
||||
<div clss="container">
|
||||
<h3 class="mb-4">Manage Blog Posts</h3>
|
||||
|
||||
<EditForm Model="@Post" OnValidSubmit="@SavePost">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Title</label>
|
||||
<InputText class="form-control" @bind-Value="Post.Title" />
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Lead</label>
|
||||
<InputText class="form-control" @bind-Value="Post.Lead" />
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Google Drive Link</label>
|
||||
<InputText class="form-control" @bind-Value="Post.DriveLink" />
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Tags (comma-separated)</label>
|
||||
<InputText class="form-control" @bind-Value="TagsCsv" />
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Cover Image (optional)</label>
|
||||
<InputFile OnChange="@HandleFileSelected" />
|
||||
</div>
|
||||
|
||||
<button class="btn btn-primary" type="submit" disabled="@IsSaving">
|
||||
@if (IsSaving)
|
||||
{
|
||||
<span class="spinner-border spinner-border-sm"></span> @(IsEditMode ? "Updating..." : "Saving...")
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>@(IsEditMode ? "Update Post" : "Save Post")</span>
|
||||
}
|
||||
</button>
|
||||
|
||||
@if (IsEditMode)
|
||||
{
|
||||
<button type="button" class="btn btn-secondary ms-2" @onclick="CancelEdit">Cancel</button>
|
||||
}
|
||||
</EditForm>
|
||||
|
||||
@if (SaveSuccess)
|
||||
{
|
||||
<div class="alert alert-success mt-3">Post saved successfully!</div>
|
||||
}
|
||||
|
||||
<h4 class="mt-5">Existing Posts</h4>
|
||||
|
||||
@if (Posts.Count == 0)
|
||||
{
|
||||
<p>No blog posts found.</p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<table class="table table-bordered mt-3">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Title</th>
|
||||
<th>Tags</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var item in Posts)
|
||||
{
|
||||
<tr>
|
||||
<td><img src="@item.CoverImage" style="max-height:150px" /></td>
|
||||
<td>@item.Title</td>
|
||||
<td>@string.Join(", ", item.Tags)</td>
|
||||
<td>
|
||||
<button class="btn btn-sm btn-primary me-2" @onclick="() => EditPost(item)">Edit</button>
|
||||
<button class="btn btn-sm btn-danger" @onclick="() => DeletePost(item.Id)">Delete</button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
|
||||
</div>
|
||||
|
||||
@code {
|
||||
private BlogPostMetadata Post = new();
|
||||
private List<BlogPostMetadata> Posts = new();
|
||||
private IBrowserFile? CoverImage;
|
||||
private string TagsCsv = "";
|
||||
private bool IsSaving = false;
|
||||
private bool SaveSuccess = false;
|
||||
private bool IsEditMode = false;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
await LoadPosts();
|
||||
}
|
||||
|
||||
private async Task LoadPosts()
|
||||
{
|
||||
Posts = await BlogService.GetAllPostsAsync();
|
||||
}
|
||||
|
||||
private async Task HandleFileSelected(InputFileChangeEventArgs e)
|
||||
{
|
||||
CoverImage = e.File;
|
||||
}
|
||||
|
||||
private async Task SavePost()
|
||||
{
|
||||
IsSaving = true;
|
||||
SaveSuccess = false;
|
||||
|
||||
Post.Tags = TagsCsv.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries).ToList();
|
||||
|
||||
if (IsEditMode)
|
||||
{
|
||||
await BlogService.UpdatePostAsync(Post, CoverImage);
|
||||
}
|
||||
else
|
||||
{
|
||||
await BlogService.CreatePostAsync(Post, CoverImage);
|
||||
}
|
||||
|
||||
IsSaving = false;
|
||||
SaveSuccess = true;
|
||||
|
||||
await LoadPosts();
|
||||
ResetForm();
|
||||
}
|
||||
|
||||
private void EditPost(BlogPostMetadata post)
|
||||
{
|
||||
Post = new BlogPostMetadata
|
||||
{
|
||||
Id = post.Id,
|
||||
Title = post.Title,
|
||||
Lead = post.Lead,
|
||||
DriveLink = post.DriveLink,
|
||||
Tags = new List<string>(post.Tags),
|
||||
CoverImage = post.CoverImage
|
||||
};
|
||||
TagsCsv = string.Join(", ", post.Tags);
|
||||
IsEditMode = true;
|
||||
SaveSuccess = false;
|
||||
}
|
||||
|
||||
private async Task DeletePost(string id)
|
||||
{
|
||||
if (await ConfirmDeleteAsync())
|
||||
{
|
||||
await BlogService.DeletePostAsync(id);
|
||||
await LoadPosts();
|
||||
}
|
||||
}
|
||||
|
||||
private async Task<bool> ConfirmDeleteAsync()
|
||||
{
|
||||
return await Task.FromResult(true); // Replace with real confirmation popup later
|
||||
}
|
||||
|
||||
private void CancelEdit()
|
||||
{
|
||||
ResetForm();
|
||||
}
|
||||
|
||||
private void ResetForm()
|
||||
{
|
||||
Post = new BlogPostMetadata();
|
||||
TagsCsv = "";
|
||||
CoverImage = null;
|
||||
IsEditMode = false;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
@using TIAM.Entities.ServiceProviders
|
||||
@using AyCode.Core.Loggers
|
||||
@using TIAM.Entities.ServiceProviders
|
||||
@using TIAM.Entities.Users
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
@page "/sysadmin/logs"
|
||||
@using AyCode.Core.Loggers
|
||||
@using BlazorAnimation
|
||||
@using TIAM.Entities.Users
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@@ -15,7 +16,7 @@
|
||||
@layout AdminLayout
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject IStringLocalizer<TIAMResources> Localizer
|
||||
@inject ISessionService SessionService
|
||||
@inject ISessionServiceClient SessionService
|
||||
|
||||
<PageTitle>User permissions</PageTitle>
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
private static DateTime _toDate = DateTime.Today;
|
||||
|
||||
private static int _takeCount = 250;
|
||||
private object[] _contextParams = new object[3] { _takeCount, _fromDate, _toDate };
|
||||
private object[] _contextParams = [_takeCount, _fromDate, _toDate];
|
||||
|
||||
private LoggerClient<LogViewerGridComponent> _logger;
|
||||
private static List<LogLevel> _selectedLogLevels = [LogLevel.Error, LogLevel.Warning, LogLevel.Suggest];
|
||||
@@ -154,12 +154,12 @@
|
||||
|
||||
if (_selectedLogLevels.Count > 0)
|
||||
{
|
||||
filterCriteria = new InOperator(nameof(LogLevel), _selectedLogLevels);
|
||||
filterCriteria = new InOperator(nameof(LogItemViewerModel.LogLevel), _selectedLogLevels);
|
||||
filterText = GetFilterText(_selectedLogLevels);
|
||||
}
|
||||
|
||||
_filterText = filterText;
|
||||
_logViewerGrid.SetFieldFilterCriteria(nameof(LogLevel), filterCriteria);
|
||||
_logViewerGrid.SetFieldFilterCriteria(nameof(LogItemViewerModel.LogLevel), filterCriteria);
|
||||
}
|
||||
|
||||
private async Task OnValueChangedTakeCount(int value)
|
||||
@@ -199,7 +199,7 @@
|
||||
{
|
||||
if (e.ElementType != GridElementType.DataRow) return;
|
||||
|
||||
var logLevelObject = e.Grid?.GetRowValue(e.VisibleIndex, nameof(LogLevel));
|
||||
var logLevelObject = e.Grid?.GetRowValue(e.VisibleIndex, nameof(LogItemViewerModel.LogLevel));
|
||||
if (logLevelObject == null) return;
|
||||
|
||||
var levelObject = (LogLevel)logLevelObject;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
@using TIAM.Core.Consts
|
||||
@layout AdminLayout
|
||||
@inject IStringLocalizer<TIAMResources> Localizer
|
||||
@inject ISessionService SessionService
|
||||
@inject ISessionServiceClient SessionService
|
||||
@using TIAMSharedUI.Shared.Components.BaseComponents
|
||||
@inherits UserBasePageComponent
|
||||
|
||||
|
||||
@@ -1,27 +1,31 @@
|
||||
@page "/sysadmin/transfers"
|
||||
@using AyCode.Blazor.Components.Components.Grids
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Consts
|
||||
@using AyCode.Core.Enums
|
||||
@using AyCode.Core.Extensions
|
||||
@using AyCode.Core.Helpers
|
||||
@using BlazorAnimation
|
||||
@using DevExpress.Data.Filtering
|
||||
@using TIAM.Core.Consts
|
||||
@using TIAM.Core.Enums
|
||||
@using TIAM.Entities.Drivers
|
||||
@using TIAM.Entities.Emails
|
||||
@using TIAM.Entities.Emails
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAM.Entities.Users
|
||||
@using TIAM.Resources
|
||||
@using TIAM.Services
|
||||
@using TIAMSharedUI.Pages.Components
|
||||
@using TIAMSharedUI.Shared
|
||||
@using TIAMSharedUI.Shared.Components.BaseComponents
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI
|
||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
|
||||
@using TIAMWebApp.Shared.Application.Models.PageModels
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using AyCode.Core.Enums
|
||||
@using AyCode.Core.Extensions
|
||||
@using AyCode.Core.Consts
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Helpers
|
||||
@using DevExpress.Data.Filtering
|
||||
@using TIAM.Entities.Emails
|
||||
@using TIAMSharedUI.Shared.Components.BaseComponents
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@inherits UserBasePageComponent
|
||||
@layout AdminLayout
|
||||
@inject IWizardProcessor wizardProcessor
|
||||
@@ -30,469 +34,543 @@
|
||||
<PageTitle>Transfers</PageTitle>
|
||||
|
||||
<div class="text-center m-5">
|
||||
<h1>Transfer management</h1>
|
||||
<h2 style="font-size:small">Manage transfers here!</h2>
|
||||
<h1>Transfer management</h1>
|
||||
<h2 style="font-size:small">Manage transfers here!</h2>
|
||||
</div>
|
||||
|
||||
|
||||
<DxPopup CssClass="popup-demo-events"
|
||||
@bind-Visible="@_popupVisible"
|
||||
ShowFooter="true"
|
||||
CloseOnEscape="true"
|
||||
CloseOnOutsideClick="false"
|
||||
ShowCloseButton="false"
|
||||
HeaderText="MessageBox"
|
||||
Closing="EulaPopupClosing"
|
||||
Closed="EulaPopupClosed">
|
||||
<BodyContentTemplate>
|
||||
<InputWizard Data=@_messageWizardModel
|
||||
OnSubmit="SubmitForm"
|
||||
IgnoreReflection=@IgnoreList
|
||||
TitleResourceString="NewMessage"
|
||||
SubtitleResourceString="NewMessageSubtitle"
|
||||
SubmitButtonText="@_localizer.GetString("ButtonSend")"></InputWizard>
|
||||
</BodyContentTemplate>
|
||||
<FooterContentTemplate Context="Context">
|
||||
<div class="popup-demo-events-footer">
|
||||
<!--DxCheckBox CssClass="popup-demo-events-checkbox" @bind-Checked="@EulaAccepted">I accept the terms of the EULA</!--DxCheckBox-->
|
||||
<!--DxButton CssClass="popup-demo-events-button ms-2" RenderStyle="ButtonRenderStyle.Primary" Text="OK" Click="Context.CloseCallback" /-->
|
||||
<DxButton CssClass="popup-demo-events-button ms-2" RenderStyle="ButtonRenderStyle.Secondary" Text="Cancel" Click="CancelCreateClick" />
|
||||
</div>
|
||||
</FooterContentTemplate>
|
||||
@bind-Visible="@_popupVisible"
|
||||
ShowFooter="true"
|
||||
CloseOnEscape="true"
|
||||
CloseOnOutsideClick="false"
|
||||
ShowCloseButton="false"
|
||||
HeaderText="MessageBox"
|
||||
Closing="EulaPopupClosing"
|
||||
Closed="EulaPopupClosed">
|
||||
<BodyContentTemplate>
|
||||
<InputWizard Data=@_messageWizardModel
|
||||
OnSubmit="SubmitForm"
|
||||
IgnoreReflection=@IgnoreList
|
||||
TitleResourceString="NewMessage"
|
||||
SubtitleResourceString="NewMessageSubtitle"
|
||||
SubmitButtonText="@_localizer.GetString("ButtonSend")"></InputWizard>
|
||||
</BodyContentTemplate>
|
||||
<FooterContentTemplate Context="Context">
|
||||
<div class="popup-demo-events-footer">
|
||||
<!--DxCheckBox CssClass="popup-demo-events-checkbox" @bind-Checked="@EulaAccepted">I accept the terms of the EULA</!--DxCheckBox-->
|
||||
<!--DxButton CssClass="popup-demo-events-button ms-2" RenderStyle="ButtonRenderStyle.Primary" Text="OK" Click="Context.CloseCallback" /-->
|
||||
<DxButton CssClass="popup-demo-events-button ms-2" RenderStyle="ButtonRenderStyle.Secondary" Text="Cancel" Click="CancelCreateClick" />
|
||||
</div>
|
||||
</FooterContentTemplate>
|
||||
</DxPopup>
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class=" col-12">
|
||||
<Animation Effect="@Effect.FadeIn" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
|
||||
<div class="card">
|
||||
<div class="row">
|
||||
<div class=" col-12">
|
||||
<Animation Effect="@Effect.FadeIn" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
|
||||
<div class="card">
|
||||
|
||||
<DxTabs>
|
||||
<DxTabs>
|
||||
|
||||
<DxTabPage Text="DataGrid">
|
||||
<div class="d-flex flex-column mb-4 pb-2">
|
||||
<div class="align-self-end pl-2 pb-2">
|
||||
<DxButton Text="Column Chooser"
|
||||
RenderStyle="ButtonRenderStyle.Secondary"
|
||||
IconCssClass="btn-column-chooser"
|
||||
Click="ColumnChooserButton_Click" />
|
||||
</div>
|
||||
<DxTabPage Text="DataGrid">
|
||||
<div class="d-flex flex-column mb-4 pb-2">
|
||||
<div class="align-self-end pl-2 pb-2">
|
||||
<DxButton Text="Column Chooser"
|
||||
RenderStyle="ButtonRenderStyle.Secondary"
|
||||
IconCssClass="btn-column-chooser"
|
||||
Click="ColumnChooserButton_Click" />
|
||||
</div>
|
||||
|
||||
<TransferGrid @ref="_gridTransfer"
|
||||
Logger="_logger"
|
||||
SignalRClient="AdminSignalRClient"
|
||||
FilterText="@_filterText"
|
||||
OnDataSourceChanged="DataSourceChanged"
|
||||
OnGridItemChanging="DataSourceItemChanging"
|
||||
OnGridItemChanged="DataSourceItemChanged"
|
||||
OnGridItemDeleting="DataItemDeleting"
|
||||
OnGridEditModelSaving="DataItemSaving"
|
||||
CustomizeElement="Grid_CustomizeElement"
|
||||
CustomizeEditModel="Grid_CustomizeEditModel"
|
||||
EditMode="GridEditMode.EditForm"
|
||||
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
||||
PageSize="13"
|
||||
ShowFilterRow="true">
|
||||
<TransferGrid @ref="_gridTransfer"
|
||||
Logger="_logger"
|
||||
SignalRClient="AdminSignalRClient"
|
||||
FilterText="@_filterText"
|
||||
OnDataSourceChanged="DataSourceChanged"
|
||||
OnGridItemChanging="DataSourceItemChanging"
|
||||
OnGridItemChanged="DataSourceItemChanged"
|
||||
OnGridItemDeleting="DataItemDeleting"
|
||||
OnGridEditModelSaving="DataItemSaving"
|
||||
SelectedDataItemChanged="OnSelectedDataItemChanged"
|
||||
CustomizeElement="Grid_CustomizeElement"
|
||||
CustomizeEditModel="Grid_CustomizeEditModel"
|
||||
EditMode="GridEditMode.EditForm"
|
||||
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
||||
PageSize="13"
|
||||
ShowFilterRow="true">
|
||||
|
||||
<Columns>
|
||||
<DxGridCommandColumn NewButtonVisible="false" DeleteButtonVisible="AcDomain.IsDeveloperVersion" Width="80" MinWidth="80" FixedPosition="GridColumnFixedPosition.Left" />
|
||||
<DxGridDataColumn FieldName="Id" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" DisplayFormat="N" />
|
||||
<DxGridDataColumn FieldName="OrderId" Caption="Order" SortIndex="1" SortOrder="GridColumnSortOrder.Descending" Width="70">
|
||||
<CellDisplayTemplate>
|
||||
@{
|
||||
var idKeyField = ((Transfer)context.DataItem).Id.ToString("N");
|
||||
var editUri = $"mytransfers/{idKeyField}";
|
||||
<NavLink href="@editUri">
|
||||
<text>@context.Value</text>
|
||||
</NavLink>
|
||||
}
|
||||
</CellDisplayTemplate>
|
||||
</DxGridDataColumn>
|
||||
<DxGridDataColumn FieldName="FromAddress" />
|
||||
<DxGridDataColumn FieldName="ToAddress" />
|
||||
<DxGridDataColumn FieldName="Appointment" DisplayFormat="g" Width="125" />
|
||||
<DxGridDataColumn FieldName="PassengerCount" Caption="Passengers" Width="90" TextAlignment="GridTextAlignment.Center" CaptionAlignment="GridTextAlignment.Center" />
|
||||
<DxGridDataColumn FieldName="LuggageCount" Caption="Luggages" Width="80" TextAlignment="GridTextAlignment.Center" CaptionAlignment="GridTextAlignment.Center" />
|
||||
<DxGridDataColumn FieldName="FlightNumber" Caption="FlightNum" Width="95" TextAlignment="GridTextAlignment.Center" CaptionAlignment="GridTextAlignment.Center" />
|
||||
<DxGridDataColumn FieldName="Price" Caption="Price" Width="70" CaptionAlignment="GridTextAlignment.Center" />
|
||||
<DxGridDataColumn FieldName="Revenue" Caption="Revenue" Width="70" CaptionAlignment="GridTextAlignment.Center" />
|
||||
<DxGridDataColumn FieldName="FullName" />
|
||||
<DxGridDataColumn FieldName="ContactPhone" Width="120" />
|
||||
<DxGridDataColumn FieldName="ContactEmail" Width="120" />
|
||||
<DxGridDataColumn FieldName="ContactEmail" Width="120">
|
||||
<CellDisplayTemplate>
|
||||
@{
|
||||
var keyField = context.Value;
|
||||
var keyItem = (Transfer)context.DataItem;
|
||||
string buttonText = "Contact";
|
||||
<DxButton Click="() => SendMail(keyItem)" Text="@buttonText" RenderStyle="ButtonRenderStyle.Primary" />
|
||||
}
|
||||
</CellDisplayTemplate>
|
||||
</DxGridDataColumn>
|
||||
<DxGridDataColumn FieldName="PaymentId" DisplayFormat="N" Visible="false" />
|
||||
<DxGridDataColumn Caption="Paid" FieldName="Paid" Width="75" TextAlignment="GridTextAlignment.Center" CaptionAlignment="GridTextAlignment.Center" />
|
||||
<DxGridDataColumn FieldName="TransferStatusType" Caption="Status" SortIndex="0" Width="120" SortOrder="GridColumnSortOrder.Ascending" SortMode="GridColumnSortMode.Value">
|
||||
<CellDisplayTemplate>
|
||||
@{
|
||||
<Columns>
|
||||
<DxGridCommandColumn NewButtonVisible="false" DeleteButtonVisible="AcDomain.IsDeveloperVersion" Width="80" MinWidth="80" FixedPosition="GridColumnFixedPosition.Left" />
|
||||
<DxGridDataColumn FieldName="Id" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" DisplayFormat="N" />
|
||||
<DxGridDataColumn FieldName="OrderId" Caption="Order" SortIndex="1" SortOrder="GridColumnSortOrder.Descending" Width="70">
|
||||
<CellDisplayTemplate>
|
||||
@{
|
||||
var idKeyField = ((Transfer)context.DataItem).Id.ToString("N");
|
||||
var editUri = $"mytransfers/{idKeyField}";
|
||||
<NavLink href="@editUri">
|
||||
<text>@context.Value</text>
|
||||
</NavLink>
|
||||
}
|
||||
</CellDisplayTemplate>
|
||||
</DxGridDataColumn>
|
||||
<DxGridDataColumn FieldName="FromAddress" />
|
||||
<DxGridDataColumn FieldName="ToAddress" />
|
||||
<DxGridDataColumn FieldName="Appointment" DisplayFormat="g" Width="125" />
|
||||
<DxGridDataColumn FieldName="PassengerCount" Caption="Passengers" Width="90" TextAlignment="GridTextAlignment.Center" CaptionAlignment="GridTextAlignment.Center" />
|
||||
<DxGridDataColumn FieldName="LuggageCount" Caption="Luggages" Width="80" TextAlignment="GridTextAlignment.Center" CaptionAlignment="GridTextAlignment.Center" />
|
||||
<DxGridDataColumn FieldName="FlightNumber" Caption="FlightNum" Width="95" TextAlignment="GridTextAlignment.Center" CaptionAlignment="GridTextAlignment.Center" />
|
||||
<DxGridDataColumn FieldName="Price" Caption="Price" Width="70" CaptionAlignment="GridTextAlignment.Center" />
|
||||
<DxGridDataColumn FieldName="Revenue" Caption="Revenue" Width="70" CaptionAlignment="GridTextAlignment.Center" />
|
||||
<DxGridDataColumn FieldName="FullName" />
|
||||
<DxGridDataColumn Caption="Driver" Width="120">
|
||||
<CellDisplayTemplate>
|
||||
@{
|
||||
var keyItem = (Transfer)context.DataItem;
|
||||
<text>@(string.Join(", ", keyItem.TransferToDrivers.Select(x => x.UserProductMapping?.User?.Profile?.GetFullName())))</text>
|
||||
}
|
||||
</CellDisplayTemplate>
|
||||
|
||||
TransferStatusModel keyField = TransferStatusModel.GetStatusModel((TransferStatusType)context.Value);
|
||||
string transferStatusText = keyField.StatusName;
|
||||
<text>@transferStatusText</text>
|
||||
}
|
||||
</CellDisplayTemplate>
|
||||
</DxGridDataColumn>
|
||||
<DxGridDataColumn FieldName="ReferralId" DisplayFormat="N" Visible="false" />
|
||||
<DxGridDataColumn FieldName="Comment" Caption="Comment" />
|
||||
<DxGridDataColumn FieldName="Created" DisplayFormat="g" Width="125" Visible="false" CaptionAlignment="GridTextAlignment.Center" TextAlignment="GridTextAlignment.Center" />
|
||||
</Columns>
|
||||
<DetailRowTemplate>
|
||||
<DxTabs>
|
||||
<DxTabPage Text="Messages">
|
||||
<MessageDetailGridComponent ContextId="((Transfer)context.DataItem).Id" />
|
||||
</DxTabPage>
|
||||
<DxTabPage Text="Driver">
|
||||
<TransferToDriverGridComponent ContextId="((Transfer)context.DataItem).Id" ParentData="(Transfer)context.DataItem" />
|
||||
</DxTabPage>
|
||||
</DxTabs>
|
||||
</DetailRowTemplate>
|
||||
<EditFormTemplate Context="editFormContext">
|
||||
@{
|
||||
var transfer2 = (Transfer)editFormContext.EditModel;
|
||||
}
|
||||
<DxFormLayout CssClass="w-100">
|
||||
<DxFormLayoutItem Caption=@_localizer.GetString(ResourceKeys.FirstName) ColSpanMd="6">
|
||||
@editFormContext.GetEditor("FirstName")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption=@_localizer.GetString(ResourceKeys.LastName) ColSpanMd="6">
|
||||
@editFormContext.GetEditor("LastName")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption=@_localizer.GetString(ResourceKeys.EmailAddress) ColSpanMd="6">
|
||||
@editFormContext.GetEditor("ContactEmail")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption=@_localizer.GetString(ResourceKeys.DestinationAddress) ColSpanMd="6">
|
||||
@editFormContext.GetEditor("ToAddress")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption=@_localizer.GetString(ResourceKeys.PickupAddress) ColSpanMd="6">
|
||||
@editFormContext.GetEditor("FromAddress")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Trip date:" ColSpanMd="3">
|
||||
</DxGridDataColumn>
|
||||
<DxGridDataColumn FieldName="ContactPhone" Width="120" />
|
||||
<DxGridDataColumn FieldName="ContactEmail" Width="120" />
|
||||
|
||||
<DxDateEdit @bind-Date="@transfer2.Appointment"
|
||||
TimeSectionVisible="true"
|
||||
TimeSectionScrollPickerFormat="tt h m">
|
||||
</DxDateEdit>
|
||||
<DxGridDataColumn FieldName="ContactEmail" Width="120">
|
||||
<CellDisplayTemplate>
|
||||
@{
|
||||
var keyItem = (Transfer)context.DataItem;
|
||||
var buttonText = "Contact";
|
||||
<DxButton Click="() => SendMail(keyItem)" Text="@buttonText" RenderStyle="ButtonRenderStyle.Primary" />
|
||||
}
|
||||
</CellDisplayTemplate>
|
||||
</DxGridDataColumn>
|
||||
<DxGridDataColumn FieldName="PaymentId" DisplayFormat="N" Visible="false" />
|
||||
<DxGridDataColumn Caption="Paid" FieldName="Paid" Width="75" TextAlignment="GridTextAlignment.Center" CaptionAlignment="GridTextAlignment.Center" />
|
||||
<DxGridDataColumn FieldName="TransferStatusType" Caption="Status" SortIndex="0" Width="120" SortOrder="GridColumnSortOrder.Ascending" SortMode="GridColumnSortMode.Value">
|
||||
<CellDisplayTemplate>
|
||||
@{
|
||||
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Passengers:" ColSpanMd="3">
|
||||
@editFormContext.GetEditor("PassengerCount")
|
||||
</DxFormLayoutItem>
|
||||
var keyField = TransferStatusModel.GetStatusModel((TransferStatusType)context.Value);
|
||||
var transferStatusText = keyField.StatusName;
|
||||
<text>@transferStatusText</text>
|
||||
}
|
||||
</CellDisplayTemplate>
|
||||
</DxGridDataColumn>
|
||||
<DxGridDataColumn FieldName="ReferralId" DisplayFormat="N" Visible="false" />
|
||||
<DxGridDataColumn FieldName="Comment" Caption="Comment" />
|
||||
<DxGridDataColumn FieldName="Created" DisplayFormat="g" Width="125" Visible="false" CaptionAlignment="GridTextAlignment.Center" TextAlignment="GridTextAlignment.Center" />
|
||||
</Columns>
|
||||
<DetailRowTemplate>
|
||||
<DxTabs>
|
||||
<DxTabPage Text="Messages">
|
||||
<MessageDetailGridComponent ContextId="((Transfer)context.DataItem).Id" />
|
||||
</DxTabPage>
|
||||
<DxTabPage Text="Driver">
|
||||
<TransferToDriverGridComponent ContextId="((Transfer)context.DataItem).Id" ParentData="(Transfer)context.DataItem" />
|
||||
</DxTabPage>
|
||||
</DxTabs>
|
||||
</DetailRowTemplate>
|
||||
<EditFormTemplate Context="editFormContext">
|
||||
@{
|
||||
var transfer2 = (Transfer)editFormContext.EditModel;
|
||||
}
|
||||
<DxFormLayout CssClass="w-100">
|
||||
<DxFormLayoutItem Caption=@_localizer.GetString(ResourceKeys.FirstName) ColSpanMd="6">
|
||||
@editFormContext.GetEditor("FirstName")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption=@_localizer.GetString(ResourceKeys.LastName) ColSpanMd="6">
|
||||
@editFormContext.GetEditor("LastName")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption=@_localizer.GetString(ResourceKeys.EmailAddress) ColSpanMd="6">
|
||||
@editFormContext.GetEditor("ContactEmail")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption=@_localizer.GetString(ResourceKeys.DestinationAddress) ColSpanMd="6">
|
||||
@editFormContext.GetEditor("ToAddress")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption=@_localizer.GetString(ResourceKeys.PickupAddress) ColSpanMd="6">
|
||||
@editFormContext.GetEditor("FromAddress")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Trip date:" ColSpanMd="3">
|
||||
|
||||
<DxDateEdit @bind-Date="@transfer2.Appointment"
|
||||
TimeSectionVisible="true"
|
||||
TimeSectionScrollPickerFormat="tt h m">
|
||||
</DxDateEdit>
|
||||
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Passengers:" ColSpanMd="3">
|
||||
@editFormContext.GetEditor("PassengerCount")
|
||||
</DxFormLayoutItem>
|
||||
|
||||
|
||||
<DxFormLayoutItem Caption="Paid:" ColSpanMd="3">
|
||||
@editFormContext.GetEditor("Payed")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Paid:" ColSpanMd="3">
|
||||
@editFormContext.GetEditor("Payed")
|
||||
</DxFormLayoutItem>
|
||||
|
||||
<DxFormLayoutItem Caption="Status:" ColSpanMd="3">
|
||||
@editFormContext.GetEditor("TransferStatusType")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Price:" ColSpanMd="3">
|
||||
@editFormContext.GetEditor("Price")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Status:" ColSpanMd="3">
|
||||
@editFormContext.GetEditor("TransferStatusType")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Price:" ColSpanMd="3">
|
||||
@editFormContext.GetEditor("Price")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Revenue:" ColSpanMd="3">
|
||||
@editFormContext.GetEditor("Revenue")
|
||||
</DxFormLayoutItem>
|
||||
|
||||
</DxFormLayout>
|
||||
</EditFormTemplate>
|
||||
</DxFormLayout>
|
||||
</EditFormTemplate>
|
||||
|
||||
<ToolbarTemplate>
|
||||
<div>
|
||||
<DxTagBox Data="@TransferStatusModel.AllStatuses.Values" Values="@_selectedCategories" @ref="_filterTag"
|
||||
ValuesChanged="(IEnumerable<TransferStatusModel> values) => TagBox_ValuesChanged(values)"
|
||||
ValueFieldName="StatusValue" TextFieldName="StatusName" NullText="Select status type..."
|
||||
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" aria-label="Select status type" />
|
||||
</div>
|
||||
</ToolbarTemplate>
|
||||
</TransferGrid>
|
||||
</div>
|
||||
</DxTabPage>
|
||||
<ToolbarTemplate>
|
||||
<div>
|
||||
<DxTagBox Data="@(Enum.GetValues<TransferStatusType>().ToList())" Values="@_selectedCategories"
|
||||
NullText="Select status type..." ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" aria-label="Select status type"
|
||||
ValuesChanged="(IEnumerable<TransferStatusType> values) => TagBox_ValuesChanged(values)" />
|
||||
|
||||
<DxTabPage Text="Calendar">
|
||||
<div class="d-flex flex-column mb-4 pb-2">
|
||||
<DxScheduler @bind-StartDate="@StartDate"
|
||||
DataStorage="@_dataStorage"
|
||||
CssClass="w-100">
|
||||
<DxSchedulerTimelineView Duration="@TimeSpan.FromHours(48)" CellMinWidth="80">
|
||||
<Scales>
|
||||
<DxSchedulerTimeScale Unit="@SchedulerTimeScaleUnit.Day" UnitCount="1"></DxSchedulerTimeScale>
|
||||
<DxSchedulerTimeScale Unit="@SchedulerTimeScaleUnit.Hour" UnitCount="2"></DxSchedulerTimeScale>
|
||||
</Scales>
|
||||
</DxSchedulerTimelineView>
|
||||
<DxSchedulerWeekView ShowWorkTimeOnly="false"></DxSchedulerWeekView>
|
||||
<DxSchedulerDayView DayCount="1" ShowWorkTimeOnly="false"></DxSchedulerDayView>
|
||||
</DxScheduler>
|
||||
</div>
|
||||
</DxTabPage>
|
||||
</DxTabs>
|
||||
</div>
|
||||
</Animation>
|
||||
</div>
|
||||
@*//NE TÖRÖLD KI! - J.
|
||||
<DxTagBox TData="@(TransferStatusModel)" TValue="@(TransferStatusModel)" Data="@TransferStatusModel.AllStatuses.Values" Values="@_selectedCategories"
|
||||
@ref="_filterTag" ValuesChanged="(IEnumerable<TransferStatusModel> values) => TagBox_ValuesChanged(values)"
|
||||
ValueFieldName="StatusValue" TextFieldName="StatusName" NullText="Select status type..."
|
||||
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" aria-label="Select status type" />*@
|
||||
</div>
|
||||
</ToolbarTemplate>
|
||||
</TransferGrid>
|
||||
</div>
|
||||
</DxTabPage>
|
||||
|
||||
<div class=" col-12 col-xl-6">
|
||||
</div>
|
||||
<DxTabPage Text="Calendar">
|
||||
<div class="d-flex flex-column mb-4 pb-2">
|
||||
<DxScheduler @bind-StartDate="@StartDate"
|
||||
DataStorage="@_dataStorage"
|
||||
CssClass="w-100">
|
||||
<DxSchedulerTimelineView Duration="@TimeSpan.FromHours(48)" CellMinWidth="80">
|
||||
<Scales>
|
||||
<DxSchedulerTimeScale Unit="@SchedulerTimeScaleUnit.Day" UnitCount="1"></DxSchedulerTimeScale>
|
||||
<DxSchedulerTimeScale Unit="@SchedulerTimeScaleUnit.Hour" UnitCount="2"></DxSchedulerTimeScale>
|
||||
</Scales>
|
||||
</DxSchedulerTimelineView>
|
||||
<DxSchedulerWeekView ShowWorkTimeOnly="false"></DxSchedulerWeekView>
|
||||
<DxSchedulerDayView DayCount="1" ShowWorkTimeOnly="false"></DxSchedulerDayView>
|
||||
</DxScheduler>
|
||||
</div>
|
||||
</DxTabPage>
|
||||
</DxTabs>
|
||||
</div>
|
||||
</Animation>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class=" col-12 col-xl-6">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@code {
|
||||
private LoggerClient<ManageTransfers> _logger;
|
||||
private LoggerClient<ManageTransfers> _logger;
|
||||
|
||||
private bool _popupVisible;
|
||||
private TransferGrid _gridTransfer;
|
||||
private bool _popupVisible;
|
||||
private TransferGrid _gridTransfer;
|
||||
|
||||
private DxTagBox<TransferStatusModel, TransferStatusModel> _filterTag;
|
||||
private DxTagBox<TransferStatusModel, TransferStatusModel> _filterTag;
|
||||
|
||||
public List<string> IgnoreList =
|
||||
[
|
||||
"ReceiverEmailAddress",
|
||||
"ReceiverFullName",
|
||||
"ReceiverId",
|
||||
"SenderEmailAddress",
|
||||
"SenderFullName",
|
||||
"SenderId",
|
||||
"ContextId",
|
||||
"ContextType"
|
||||
];
|
||||
public List<string> IgnoreList =
|
||||
[
|
||||
"ReceiverEmailAddress",
|
||||
"ReceiverFullName",
|
||||
"ReceiverId",
|
||||
"SenderEmailAddress",
|
||||
"SenderFullName",
|
||||
"SenderId",
|
||||
"ContextId",
|
||||
"ContextType"
|
||||
];
|
||||
|
||||
private static List<TransferStatusModel> _selectedCategories = TransferStatusModel.AllStatuses.Values.Where(x => x.StatusValue != TransferStatusType.Finished && x.StatusValue != TransferStatusType.UserCanceled && x.StatusValue != TransferStatusType.AdminDenied).ToList();
|
||||
private string _filterText = GetFilterText(_selectedCategories.Select(x => x.StatusValue).ToList());
|
||||
private static List<TransferStatusType> _selectedCategories = Enum.GetValues<TransferStatusType>().Where(x => x != TransferStatusType.Finished && x != TransferStatusType.UserCanceled && x != TransferStatusType.AdminDenied).ToList();
|
||||
private string _filterText = GetFilterText(_selectedCategories);
|
||||
|
||||
private MessageWizardModel _messageWizardModel = new();
|
||||
// NE TÖRÖLD KI! - J.
|
||||
// private static List<TransferStatusModel> _selectedCategories = TransferStatusModel.AllStatuses.Values.Where(x => x.StatusValue != TransferStatusType.Finished && x.StatusValue != TransferStatusType.UserCanceled && x.StatusValue != TransferStatusType.AdminDenied).ToList();
|
||||
// private string _filterText = GetFilterText(_selectedCategories.Select(x => x.StatusValue).ToList());
|
||||
|
||||
public List<AppointmentModel> AppointmentModels { get; set; } = null!;
|
||||
private MessageWizardModel _messageWizardModel = new();
|
||||
|
||||
DateTime StartDate { get; set; } = DateTime.Today;
|
||||
DxSchedulerDataStorage _dataStorage = new();
|
||||
public List<AppointmentModel> AppointmentModels { get; set; } = null!;
|
||||
|
||||
DateTime StartDate { get; set; } = DateTime.Today;
|
||||
DxSchedulerDataStorage _dataStorage = new();
|
||||
|
||||
void SendMail(Transfer item)
|
||||
{
|
||||
_logger.Info($"Preparing mail to {item.ContactEmail}, {item.Id}");
|
||||
_messageWizardModel.Subject = $"[#{item.OrderId}] New message regarding your transfer";
|
||||
_messageWizardModel.ReceiverId = item.UserId;
|
||||
_messageWizardModel.ContextId = item.Id;
|
||||
_messageWizardModel.ContextType = MessageContextType.Transfer;
|
||||
_messageWizardModel.SenderId = TiamConstClient.SysAccounts["SystemEmailSender"];
|
||||
_messageWizardModel.SenderEmailAddress = TiamConstClient.SystemEmailAddress;
|
||||
_messageWizardModel.ReceiverEmailAddress = item.ContactEmail;
|
||||
_messageWizardModel.ReceiverFullName = item.FullName;
|
||||
_popupVisible = true;
|
||||
}
|
||||
|
||||
void CancelCreateClick()
|
||||
{
|
||||
|
||||
_popupVisible = false;
|
||||
}
|
||||
|
||||
void EulaPopupClosed()
|
||||
{
|
||||
//cancel clicked
|
||||
|
||||
}
|
||||
|
||||
void EulaPopupClosing(PopupClosingEventArgs args)
|
||||
{
|
||||
//myModel = new TransferWizardModel();
|
||||
_messageWizardModel = new MessageWizardModel();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
void SendMail(Transfer item)
|
||||
{
|
||||
_logger.Info($"Preparing mail to {item.ContactEmail}, {item.Id}");
|
||||
_messageWizardModel.Subject = $"[#{item.OrderId}] New message regarding your transfer";
|
||||
_messageWizardModel.ReceiverId = item.UserId;
|
||||
_messageWizardModel.ContextId = item.Id;
|
||||
_messageWizardModel.ContextType = MessageContextType.Transfer;
|
||||
_messageWizardModel.SenderId = TiamConstClient.SysAccounts["SystemEmailSender"];
|
||||
_messageWizardModel.SenderEmailAddress = TiamConstClient.SystemEmailAddress;
|
||||
_messageWizardModel.ReceiverEmailAddress = item.ContactEmail;
|
||||
_messageWizardModel.ReceiverFullName = item.FullName;
|
||||
_popupVisible = true;
|
||||
}
|
||||
public async Task SubmitForm(object result)
|
||||
{
|
||||
var messageModel = (result as MessageWizardModel)!;
|
||||
_logger.Info(messageModel.Content);
|
||||
var email = await wizardProcessor.ProcessWizardAsync<MessageWizardModel>(result.GetType(), messageModel);
|
||||
_logger.Info($"Submitted nested form: {result.GetType().FullName}");
|
||||
CancelCreateClick();
|
||||
}
|
||||
|
||||
void CancelCreateClick()
|
||||
{
|
||||
void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (e.ElementType == GridElementType.HeaderCell)
|
||||
{
|
||||
e.Style = "background-color: rgba(0, 0, 0, 0.08)";
|
||||
e.CssClass = "header-bold";
|
||||
}
|
||||
|
||||
_popupVisible = false;
|
||||
}
|
||||
if (e.ElementType != GridElementType.DataRow) return;
|
||||
|
||||
void EulaPopupClosed()
|
||||
{
|
||||
//cancel clicked
|
||||
var transferStatus = e.Grid?.GetRowValue(e.VisibleIndex, "TransferStatusType");
|
||||
if (transferStatus == null) return;
|
||||
|
||||
}
|
||||
var transferStatusByte = (byte)transferStatus;
|
||||
|
||||
void EulaPopupClosing(PopupClosingEventArgs args)
|
||||
{
|
||||
//myModel = new TransferWizardModel();
|
||||
_messageWizardModel = new MessageWizardModel();
|
||||
}
|
||||
switch (transferStatusByte)
|
||||
{
|
||||
case 5:
|
||||
e.CssClass = "bg-important";
|
||||
break;
|
||||
case > 5 and < 35:
|
||||
e.CssClass = "bg-attention";
|
||||
break;
|
||||
case 35:
|
||||
e.CssClass = "bg-finished";
|
||||
break;
|
||||
case > 35:
|
||||
e.CssClass = "bg-cancel";
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Error($"Grid_CustomizeElement; {ex.Message}", ex);
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------
|
||||
void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e)
|
||||
{
|
||||
if (!e.IsNew) return;
|
||||
|
||||
var transferEditModel = (Transfer)e.EditModel; //TODO not valid cast
|
||||
transferEditModel.Id = Guid.NewGuid();
|
||||
transferEditModel.ToAddress = "Where to?";
|
||||
transferEditModel.FromAddress = "From where?";
|
||||
transferEditModel.Appointment = DateTime.UtcNow.AddDays(3);
|
||||
transferEditModel.PassengerCount = 1;
|
||||
transferEditModel.FirstName = "John";
|
||||
transferEditModel.LastName = "Doe";
|
||||
transferEditModel.ContactPhone = "+00000000000";
|
||||
transferEditModel.ContactEmail = "your@email.address";
|
||||
}
|
||||
|
||||
private static string GetFilterText(ICollection<TransferStatusType> selectedTransferStatuses)
|
||||
=> selectedTransferStatuses.Count == 0 ? string.Empty : CriteriaOperator.FromLambda<Transfer>(t => selectedTransferStatuses.Contains(t.TransferStatusType)).ToString();
|
||||
|
||||
void TagBox_ValuesChanged(IEnumerable<TransferStatusType> newSelectedCategories)
|
||||
{
|
||||
var filterText = string.Empty;
|
||||
InOperator? filterCriteria = null;
|
||||
|
||||
_selectedCategories = newSelectedCategories.ToList();
|
||||
|
||||
if (_selectedCategories.Count > 0)
|
||||
{
|
||||
filterCriteria = new InOperator(nameof(Transfer.TransferStatusType), _selectedCategories);
|
||||
filterText = GetFilterText(_selectedCategories);
|
||||
}
|
||||
|
||||
_filterText = filterText;
|
||||
_gridTransfer.SetFieldFilterCriteria(nameof(Transfer.TransferStatusType), filterCriteria);
|
||||
}
|
||||
|
||||
// NE TÖRÖLD KI! - J.
|
||||
// void TagBox_ValuesChanged(IEnumerable<TransferStatusModel> newSelectedCategories)
|
||||
// {
|
||||
// var filterText = string.Empty;
|
||||
// InOperator? filterCriteria = null;
|
||||
|
||||
// _selectedCategories = newSelectedCategories.ToList();
|
||||
// //_selectedCategories.Clear();
|
||||
// //_selectedCategories.AddRange(newSelectedCategories);
|
||||
|
||||
// if (_selectedCategories.Count > 0)
|
||||
// {
|
||||
// filterCriteria = new InOperator(nameof(Transfer.TransferStatusType), _selectedCategories.Select(c => c.StatusValue));
|
||||
// filterText = GetFilterText(_selectedCategories.Select(x => (TransferStatusType)x.StatusValue).ToList());
|
||||
// }
|
||||
|
||||
// _filterText = filterText;
|
||||
// _gridTransfer.SetFieldFilterCriteria(nameof(Transfer.TransferStatusType), filterCriteria);
|
||||
// }
|
||||
|
||||
private void DataSourceChanged(IList<Transfer> transfers)
|
||||
{
|
||||
_logger.Info("DataSourceChanged called");
|
||||
|
||||
InitializeAppointments(transfers);
|
||||
|
||||
if (_selectedCategories.Count > 0)
|
||||
TagBox_ValuesChanged(_selectedCategories);
|
||||
|
||||
// if(!SelectedCategories.Any())
|
||||
// SelectedCategories = [Statuses.FirstOrDefault(x => x.StatusValue == (byte)TransferStatusType.Finished)!];
|
||||
|
||||
// var filterTransferStatusType = Statuses.FirstOrDefault(x => x.StatusValue == (byte)TransferStatusType.Finished)!;
|
||||
|
||||
// if (SelectedCategories.All(x => x.StatusValue != filterTransferStatusType.StatusValue))
|
||||
// SelectedCategories.Add(filterTransferStatusType);
|
||||
}
|
||||
|
||||
private void DataSourceItemChanging(GridDataItemChangingEventArgs<Transfer> args)
|
||||
{
|
||||
_logger.Info("DataSourceItemChanging called");
|
||||
}
|
||||
|
||||
private void DataSourceItemChanged(GridDataItemChangedEventArgs<Transfer> args)
|
||||
{
|
||||
_logger.Info("DataSourceItemChanged called");
|
||||
|
||||
AppointmentModels.UpdateCollection(CreateAppointmentModel(args.DataItem), args.TrackingState == TrackingState.Remove);
|
||||
}
|
||||
|
||||
private void DataItemSaving(GridEditModelSavingEventArgs e)
|
||||
{
|
||||
_logger.Info("DataItemSaving called");
|
||||
}
|
||||
|
||||
private void DataItemDeleting(GridDataItemDeletingEventArgs e)
|
||||
{
|
||||
_logger.Info($"DataItemDeleting OnItemDeleting");
|
||||
}
|
||||
|
||||
protected override Task OnInitializedAsync()
|
||||
{
|
||||
_logger = new LoggerClient<ManageTransfers>(_logWriters.ToArray());
|
||||
|
||||
//await AdminSignalRClient.GetAllCarsByProductIdAsync(TiamConstClient.TransferProductId, _cars, StateHasChanged);
|
||||
|
||||
//await base.OnInitializedAsync();
|
||||
return base.OnInitializedAsync();
|
||||
}
|
||||
|
||||
private void InitializeAppointments(ICollection<Transfer> transferDataList)
|
||||
{
|
||||
_logger.Info("InitializeAppointments called");
|
||||
|
||||
AppointmentModels = new List<AppointmentModel>(transferDataList.Count);
|
||||
|
||||
foreach (var transfer in transferDataList)
|
||||
{
|
||||
// var bnm = DataStorage.CreateAppointmentItem();
|
||||
// bnm.Start = transfer.Appointment;
|
||||
// bnm.Description = $"{transfer.FullName}, {transfer.ToAddress}";
|
||||
// bnm.Location = transfer.FromAddress;
|
||||
// bnm.Subject = "Simple transfer";
|
||||
|
||||
AppointmentModels.Add(CreateAppointmentModel(transfer));
|
||||
}
|
||||
|
||||
_dataStorage = new DxSchedulerDataStorage
|
||||
{
|
||||
AppointmentMappings = new DxSchedulerAppointmentMappings()
|
||||
{
|
||||
Type = "AppointmentType",
|
||||
Start = "StartDate",
|
||||
End = "EndDate",
|
||||
Subject = "Caption",
|
||||
AllDay = "AllDay",
|
||||
Location = "Location",
|
||||
Description = "Description",
|
||||
LabelId = "Label",
|
||||
StatusId = "Status",
|
||||
RecurrenceInfo = "Recurrence"
|
||||
},
|
||||
|
||||
AppointmentsSource = AppointmentModels
|
||||
};
|
||||
}
|
||||
|
||||
public AppointmentModel CreateAppointmentModel(Transfer transfer)
|
||||
{
|
||||
return new AppointmentModel { Id = transfer.Id, StartDate = transfer.Appointment, EndDate = transfer.Appointment.AddMinutes(30), Description = $"{transfer.FullName}, {transfer.ToAddress}", Location = transfer.FromAddress, Caption = "Simple transfer" };
|
||||
}
|
||||
|
||||
void ColumnChooserButton_Click()
|
||||
{
|
||||
_gridTransfer.ShowColumnChooser();
|
||||
}
|
||||
|
||||
|
||||
public async Task SubmitForm(object result)
|
||||
{
|
||||
var messageModel = (result as MessageWizardModel)!;
|
||||
_logger.Info(messageModel.Content);
|
||||
var email = await wizardProcessor.ProcessWizardAsync<MessageWizardModel>(result.GetType(), messageModel);
|
||||
_logger.Info($"Submitted nested form: {result.GetType().FullName}");
|
||||
CancelCreateClick();
|
||||
}
|
||||
protected override void OnAfterRender(bool firstRender)
|
||||
{
|
||||
if (firstRender)
|
||||
{
|
||||
//_gridTransfer.ExpandDetailRow(0);
|
||||
}
|
||||
}
|
||||
|
||||
void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (e.ElementType == GridElementType.HeaderCell)
|
||||
{
|
||||
e.Style = "background-color: rgba(0, 0, 0, 0.08)";
|
||||
e.CssClass = "header-bold";
|
||||
}
|
||||
private void OnSelectedDataItemChanged(object selectedRow)
|
||||
{
|
||||
if (selectedRow is not Transfer selectedTransfer) return;
|
||||
|
||||
if (e.ElementType != GridElementType.DataRow) return;
|
||||
RefreshTransferToDriversData(selectedTransfer, () => { _gridTransfer.Reload(); });
|
||||
}
|
||||
|
||||
var transferStatus = e.Grid?.GetRowValue(e.VisibleIndex, "TransferStatusType");
|
||||
if (transferStatus == null) return;
|
||||
private void RefreshTransferToDriversData(Transfer? transfer, Action? callback = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (transfer == null || transfer.TransferToDrivers.Count != 0 || transfer.TransferStatusType < TransferStatusType.AssignedToDriver)
|
||||
return;
|
||||
|
||||
var transferStatusByte = (byte)transferStatus;
|
||||
AdminSignalRClient.GetByIdAsync<List<TransferToDriver>?>(SignalRTags.GetTransferDriversByTransferId, x =>
|
||||
{
|
||||
if (x?.ResponseData == null) return Task.CompletedTask;
|
||||
|
||||
switch (transferStatusByte)
|
||||
{
|
||||
case 5:
|
||||
e.CssClass = "bg-important";
|
||||
break;
|
||||
case > 5 and < 35:
|
||||
e.CssClass = "bg-attention";
|
||||
break;
|
||||
case 35:
|
||||
e.CssClass = "bg-finished";
|
||||
break;
|
||||
case > 35:
|
||||
e.CssClass = "bg-cancel";
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Error($"Grid_CustomizeElement; {ex.Message}", ex);
|
||||
}
|
||||
}
|
||||
transfer.TransferToDrivers.UpdateCollection<TransferToDriver>(x.ResponseData, false);
|
||||
callback?.Invoke();
|
||||
|
||||
void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e)
|
||||
{
|
||||
if (!e.IsNew) return;
|
||||
|
||||
var transferEditModel = (Transfer)e.EditModel; //TODO not valid cast
|
||||
transferEditModel.Id = Guid.NewGuid();
|
||||
transferEditModel.ToAddress = "Where to?";
|
||||
transferEditModel.FromAddress = "From where?";
|
||||
transferEditModel.Appointment = DateTime.UtcNow.AddDays(3);
|
||||
transferEditModel.PassengerCount = 1;
|
||||
transferEditModel.FirstName = "John";
|
||||
transferEditModel.LastName = "Doe";
|
||||
transferEditModel.ContactPhone = "+00000000000";
|
||||
transferEditModel.ContactEmail = "your@email.address";
|
||||
}
|
||||
|
||||
private static string GetFilterText(ICollection<TransferStatusType> selectedTransferStatuses)
|
||||
=> selectedTransferStatuses.Count == 0 ? string.Empty : CriteriaOperator.FromLambda<Transfer>(t => selectedTransferStatuses.Contains(t.TransferStatusType)).ToString();
|
||||
|
||||
void TagBox_ValuesChanged(IEnumerable<TransferStatusModel> newSelectedCategories)
|
||||
{
|
||||
var filterText = string.Empty;
|
||||
InOperator? filterCriteria = null;
|
||||
|
||||
_selectedCategories = newSelectedCategories.ToList();
|
||||
|
||||
if (_selectedCategories.Count > 0)
|
||||
{
|
||||
filterCriteria = new InOperator("TransferStatusType", _selectedCategories.Select(c => c.StatusValue));
|
||||
filterText = GetFilterText(_selectedCategories.Select(x => (TransferStatusType)x.StatusValue).ToList());
|
||||
}
|
||||
|
||||
_filterText = filterText;
|
||||
_gridTransfer.SetFieldFilterCriteria("TransferStatusType", filterCriteria);
|
||||
}
|
||||
|
||||
private void DataSourceChanged(IList<Transfer> transfers)
|
||||
{
|
||||
_logger.Info("DataSourceChanged called");
|
||||
|
||||
InitializeAppointments(transfers);
|
||||
|
||||
if (_selectedCategories.Count > 0)
|
||||
TagBox_ValuesChanged(_selectedCategories);
|
||||
|
||||
// if(!SelectedCategories.Any())
|
||||
// SelectedCategories = [Statuses.FirstOrDefault(x => x.StatusValue == (byte)TransferStatusType.Finished)!];
|
||||
|
||||
// var filterTransferStatusType = Statuses.FirstOrDefault(x => x.StatusValue == (byte)TransferStatusType.Finished)!;
|
||||
|
||||
// if (SelectedCategories.All(x => x.StatusValue != filterTransferStatusType.StatusValue))
|
||||
// SelectedCategories.Add(filterTransferStatusType);
|
||||
}
|
||||
|
||||
private void DataSourceItemChanging(GridDataItemChangingEventArgs<Transfer> args)
|
||||
{
|
||||
_logger.Info("DataSourceItemChanging called");
|
||||
}
|
||||
|
||||
private void DataSourceItemChanged(GridDataItemChangedEventArgs<Transfer> args)
|
||||
{
|
||||
_logger.Info("DataSourceItemChanged called");
|
||||
|
||||
AppointmentModels.UpdateCollection(CreateAppointmentModel(args.DataItem), args.TrackingState == TrackingState.Remove);
|
||||
}
|
||||
|
||||
private void DataItemSaving(GridEditModelSavingEventArgs e)
|
||||
{
|
||||
_logger.Info("DataItemSaving called");
|
||||
}
|
||||
|
||||
private void DataItemDeleting(GridDataItemDeletingEventArgs e)
|
||||
{
|
||||
_logger.Info($"DataItemDeleting OnItemDeleting");
|
||||
}
|
||||
|
||||
protected override Task OnInitializedAsync()
|
||||
{
|
||||
_logger = new LoggerClient<ManageTransfers>(_logWriters.ToArray());
|
||||
|
||||
return base.OnInitializedAsync();
|
||||
}
|
||||
|
||||
private void InitializeAppointments(ICollection<Transfer> transferDataList)
|
||||
{
|
||||
_logger.Info("InitializeAppointments called");
|
||||
|
||||
AppointmentModels = new List<AppointmentModel>(transferDataList.Count);
|
||||
|
||||
foreach (var transfer in transferDataList)
|
||||
{
|
||||
// var bnm = DataStorage.CreateAppointmentItem();
|
||||
// bnm.Start = transfer.Appointment;
|
||||
// bnm.Description = $"{transfer.FullName}, {transfer.ToAddress}";
|
||||
// bnm.Location = transfer.FromAddress;
|
||||
// bnm.Subject = "Simple transfer";
|
||||
|
||||
AppointmentModels.Add(CreateAppointmentModel(transfer));
|
||||
}
|
||||
|
||||
_dataStorage = new DxSchedulerDataStorage
|
||||
{
|
||||
AppointmentMappings = new DxSchedulerAppointmentMappings()
|
||||
{
|
||||
Type = "AppointmentType",
|
||||
Start = "StartDate",
|
||||
End = "EndDate",
|
||||
Subject = "Caption",
|
||||
AllDay = "AllDay",
|
||||
Location = "Location",
|
||||
Description = "Description",
|
||||
LabelId = "Label",
|
||||
StatusId = "Status",
|
||||
RecurrenceInfo = "Recurrence"
|
||||
},
|
||||
|
||||
AppointmentsSource = AppointmentModels
|
||||
};
|
||||
}
|
||||
|
||||
public AppointmentModel CreateAppointmentModel(Transfer transfer)
|
||||
{
|
||||
return new AppointmentModel { Id = transfer.Id, StartDate = transfer.Appointment, EndDate = transfer.Appointment.AddMinutes(30), Description = $"{transfer.FullName}, {transfer.ToAddress}", Location = transfer.FromAddress, Caption = "Simple transfer" };
|
||||
}
|
||||
|
||||
void ColumnChooserButton_Click()
|
||||
{
|
||||
_gridTransfer.ShowColumnChooser();
|
||||
}
|
||||
|
||||
|
||||
protected override void OnAfterRender(bool firstRender)
|
||||
{
|
||||
if (firstRender)
|
||||
{
|
||||
//_gridTransfer.ExpandDetailRow(0);
|
||||
}
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
}, transfer.Id).Forget();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Error($"RefreshTransferToDriversData error; transferId: {transfer?.Id}", ex);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -20,12 +20,13 @@
|
||||
@using TIAM.Entities.Emails
|
||||
@using AyCode.Blazor.Components.Services
|
||||
@using AyCode.Core.Extensions
|
||||
@using AyCode.Core.Loggers
|
||||
@using TIAM.Models
|
||||
@using TIAM.Services
|
||||
@inherits UserBasePageComponent
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
@inject ISessionService sessionService
|
||||
@inject ISessionServiceClient sessionService
|
||||
@inject IComponentUpdateService ComponentUpdateService
|
||||
@inject ITransferDataService transferDataService
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
@using AyCode.Interfaces.Addresses
|
||||
@using TIAM.Entities.Emails
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Loggers
|
||||
@inject IServiceProviderDataService serviceProviderDataService
|
||||
@inject IUserDataService userDataService
|
||||
@inject ITransferDataService transferDataService
|
||||
|
||||
@@ -1,24 +1,26 @@
|
||||
@using AyCode.Core.Helpers
|
||||
@using Address = TIAM.Entities.Addresses.Address
|
||||
@using AyCode.Blazor.Components.Components.Grids
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Extensions
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Interfaces.Addresses
|
||||
@using AyCode.Services.Loggers
|
||||
@using Profile = TIAM.Entities.Profiles.Profile
|
||||
@using TIAM.Core.Loggers
|
||||
@using TIAM.Entities.Drivers
|
||||
@using TIAM.Entities.Products
|
||||
@using TIAM.Entities.ServiceProviders
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAM.Entities.Drivers
|
||||
@using TIAM.Entities.Users
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@using TIAM.Resources
|
||||
@using TIAM.Services
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAM.Core.Loggers
|
||||
@using Address = TIAM.Entities.Addresses.Address
|
||||
@using Profile = TIAM.Entities.Profiles.Profile
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using TIAMSharedUI.Pages.Components.EditComponents
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using AyCode.Interfaces.Addresses
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Extensions
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@inject IStringLocalizer<TIAMResources> Localizer
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
@using AyCode.Core.Helpers
|
||||
@using Address = TIAM.Entities.Addresses.Address
|
||||
@using AyCode.Blazor.Components.Components.Grids
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Interfaces.Addresses
|
||||
@using AyCode.Services.Loggers
|
||||
@using Profile = TIAM.Entities.Profiles.Profile
|
||||
@using TIAM.Core.Loggers
|
||||
@using TIAM.Entities.Drivers
|
||||
@using TIAM.Entities.Products
|
||||
@using TIAM.Entities.ServiceProviders
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAM.Entities.Drivers
|
||||
@using TIAM.Entities.Users
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@using TIAM.Resources
|
||||
@using TIAM.Services
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAM.Core.Loggers
|
||||
@using Address = TIAM.Entities.Addresses.Address
|
||||
@using Profile = TIAM.Entities.Profiles.Profile
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using AyCode.Interfaces.Addresses
|
||||
@using AyCode.Core
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@inject IStringLocalizer<TIAMResources> Localizer
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
@using TIAM.Core.Loggers
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Extensions
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Interfaces.Profiles.Dtos
|
||||
@using TIAM.Entities.Addresses
|
||||
@using TIAM.Entities.Profiles
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAM.Core.Loggers
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Loggers
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@inject IServiceProviderDataService ServiceProviderDataService
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
|
||||
@@ -0,0 +1,240 @@
|
||||
@page "/sysadmin/manage-tours"
|
||||
@using System.ComponentModel.DataAnnotations
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Models
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using TIAMSharedUI.Shared
|
||||
@inject ITransferDataService TransferDataService
|
||||
@inject TourService TourService
|
||||
@inject NavigationManager Navigation
|
||||
|
||||
@layout AdminLayout
|
||||
|
||||
<PageTitle>Manage Tours</PageTitle>
|
||||
|
||||
<h1 class="text-center m-4">Manage Tours</h1>
|
||||
|
||||
<div class="container">
|
||||
<div class="mb-4">
|
||||
<h4>Create New Tour</h4>
|
||||
|
||||
<EditForm Model="@newTour" OnValidSubmit="HandleSubmit">
|
||||
<DataAnnotationsValidator />
|
||||
<ValidationSummary />
|
||||
|
||||
<div class="mb-3">
|
||||
<label>Select Transfer Destination</label>
|
||||
<InputSelect @bind-Value="newTour.TransferDestinationId" class="form-control">
|
||||
<option value="">-- Select --</option>
|
||||
@foreach (var dest in TransferDestinations)
|
||||
{
|
||||
<option value="@dest.Id">@dest.Name (@dest.AddressString)</option>
|
||||
}
|
||||
</InputSelect>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label>Tour name</label>
|
||||
<InputTextArea @bind-Value="newTour.Name" class="form-control" />
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label>Description</label>
|
||||
<InputTextArea @bind-Value="newTour.Description" class="form-control" />
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label>Cover Photo</label>
|
||||
<InputFile OnChange="HandleFileChange" />
|
||||
@if (!string.IsNullOrEmpty(UploadStatus))
|
||||
{
|
||||
<div class="text-muted mt-1">@UploadStatus</div>
|
||||
}
|
||||
</div>
|
||||
|
||||
<button class="btn btn-primary me-2" type="submit">
|
||||
@(IsEditing ? "Update Tour" : "Save Tour")
|
||||
</button>
|
||||
@if (IsEditing)
|
||||
{
|
||||
<button class="btn btn-secondary" type="button" @onclick="CancelEdit">Cancel</button>
|
||||
}
|
||||
</EditForm>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div>
|
||||
<h4>Existing Tours</h4>
|
||||
@if (Tours.Any())
|
||||
{
|
||||
<ul class="list-group">
|
||||
@foreach (var tour in Tours)
|
||||
{
|
||||
var dest = TransferDestinations.FirstOrDefault(d => d.Id == tour.TransferDestinationId);
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
<img src="@tour.CoverImageUrl" style="max-height: 100px;"/>
|
||||
<span>
|
||||
<strong>@tour?.Title</strong> — @tour.FancyDescription
|
||||
</span>
|
||||
<button class="btn btn-sm btn-secondary me-2" @onclick="() => EditTour(tour)">Edit</button>
|
||||
<button class="btn btn-sm btn-danger" @onclick="() => DeleteTourAsync(tour.Id)">Delete</button>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p>No tours available.</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
private List<TransferDestination> TransferDestinations = [];
|
||||
private List<TourInfo> Tours = [];
|
||||
|
||||
private TourFormModel newTour = new();
|
||||
private IBrowserFile? uploadedFile;
|
||||
private string UploadStatus = string.Empty;
|
||||
|
||||
private bool IsEditing = false;
|
||||
private Guid? EditingTourId = null;
|
||||
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
TransferDestinations = (await TransferDataService.GetDestinationsAsync()).ToList();
|
||||
Tours = (await TourService.GetAllAsync()).ToList();
|
||||
}
|
||||
|
||||
private void EditTour(TourInfo tour)
|
||||
{
|
||||
newTour = new TourFormModel
|
||||
{
|
||||
TransferDestinationId = tour.TransferDestinationId,
|
||||
Name = tour.Title,
|
||||
Description = tour.FancyDescription,
|
||||
ImageBytes = null,
|
||||
ImageFileName = null
|
||||
};
|
||||
|
||||
IsEditing = true;
|
||||
EditingTourId = tour.Id;
|
||||
UploadStatus = string.Empty;
|
||||
}
|
||||
|
||||
private void CancelEdit()
|
||||
{
|
||||
newTour = new TourFormModel();
|
||||
uploadedFile = null;
|
||||
IsEditing = false;
|
||||
EditingTourId = null;
|
||||
UploadStatus = string.Empty;
|
||||
}
|
||||
|
||||
// private async Task SaveTourAsync()
|
||||
// {
|
||||
// if (uploadedFile is not null)
|
||||
// {
|
||||
// using var stream = uploadedFile.OpenReadStream(maxAllowedSize: 5 * 1024 * 1024);
|
||||
// using var ms = new MemoryStream();
|
||||
// await stream.CopyToAsync(ms);
|
||||
// newTour.ImageBytes = ms.ToArray();
|
||||
// newTour.ImageFileName = uploadedFile.Name;
|
||||
// }
|
||||
|
||||
// TourInfo tourToCreate = new TourInfo();
|
||||
// tourToCreate.TransferDestinationId = newTour.TransferDestinationId;
|
||||
// tourToCreate.FancyDescription = newTour.Description;
|
||||
// tourToCreate.Title = newTour.Name;
|
||||
// tourToCreate.CoverImageUrl = "";
|
||||
// if (tourToCreate.TransferDestinationId == Guid.Empty)
|
||||
// {
|
||||
// throw new InvalidOperationException("Transfer Destination must be selected.");
|
||||
// }
|
||||
|
||||
// await TourService.CreateAsync(tourToCreate, uploadedFile);
|
||||
// newTour = new();
|
||||
// uploadedFile = null;
|
||||
// UploadStatus = string.Empty;
|
||||
// Tours = (await TourService.GetAllAsync()).ToList();
|
||||
// }
|
||||
|
||||
private async Task HandleSubmit()
|
||||
{
|
||||
if (uploadedFile is not null)
|
||||
{
|
||||
using var stream = uploadedFile.OpenReadStream(maxAllowedSize: 5 * 1024 * 1024);
|
||||
using var ms = new MemoryStream();
|
||||
await stream.CopyToAsync(ms);
|
||||
newTour.ImageBytes = ms.ToArray();
|
||||
newTour.ImageFileName = uploadedFile.Name;
|
||||
}
|
||||
|
||||
if (IsEditing && EditingTourId.HasValue)
|
||||
{
|
||||
var updatedTour = new TourInfo
|
||||
{
|
||||
Id = EditingTourId.Value,
|
||||
TransferDestinationId = newTour.TransferDestinationId,
|
||||
Title = newTour.Name,
|
||||
FancyDescription = newTour.Description,
|
||||
CoverImageUrl = "" // assume your service handles image URL logic
|
||||
};
|
||||
|
||||
await TourService.UpdateAsync(updatedTour, uploadedFile);
|
||||
}
|
||||
else
|
||||
{
|
||||
var tourToCreate = new TourInfo
|
||||
{
|
||||
TransferDestinationId = newTour.TransferDestinationId,
|
||||
Title = newTour.Name,
|
||||
FancyDescription = newTour.Description,
|
||||
CoverImageUrl = newTour.ImageFileName
|
||||
};
|
||||
|
||||
await TourService.CreateAsync(tourToCreate, uploadedFile);
|
||||
}
|
||||
|
||||
// Reset form
|
||||
newTour = new TourFormModel();
|
||||
uploadedFile = null;
|
||||
IsEditing = false;
|
||||
EditingTourId = null;
|
||||
UploadStatus = string.Empty;
|
||||
|
||||
Tours = (await TourService.GetAllAsync()).ToList();
|
||||
}
|
||||
|
||||
private void HandleFileChange(InputFileChangeEventArgs e)
|
||||
{
|
||||
uploadedFile = e.File;
|
||||
UploadStatus = $"Selected: {uploadedFile.Name}";
|
||||
}
|
||||
|
||||
private async Task DeleteTourAsync(Guid id)
|
||||
{
|
||||
await TourService.DeleteAsync(id);
|
||||
Tours = (await TourService.GetAllAsync()).ToList();
|
||||
}
|
||||
|
||||
public class TourFormModel
|
||||
{
|
||||
[Required]
|
||||
public Guid TransferDestinationId { get; set; }
|
||||
|
||||
[Required]
|
||||
[StringLength(100, ErrorMessage = "Tour name cannot exceed 100 characters.")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
public string? Description { get; set; }
|
||||
|
||||
public byte[]? ImageBytes { get; set; }
|
||||
public string? ImageFileName { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
@using TIAM.Entities.Addresses
|
||||
@using TIAM.Entities.Transfers
|
||||
@using AyCode.Blazor.Components.Components.Grids
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Enums
|
||||
@using AyCode.Core.Extensions
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAM.Core.Loggers
|
||||
@using TIAM.Entities.Addresses
|
||||
@using TIAM.Entities.Drivers
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@using TIAM.Resources
|
||||
@using TIAM.Services
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@using TIAM.Core.Loggers
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using AyCode.Core.Enums
|
||||
@using AyCode.Core.Extensions
|
||||
@using AyCode.Core
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@inject IUserDataService UserDataService
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
@@ -135,7 +136,7 @@
|
||||
newDestination.Id = Guid.NewGuid();
|
||||
newDestination.Name = "Destination name";
|
||||
newDestination.Description = "Type some description here";
|
||||
newDestination.AddressString = "The address of the destination";
|
||||
newDestination.AddressString = $"The address of: {newDestination.Name}";
|
||||
Guid addressId = Guid.NewGuid();
|
||||
newDestination.Address = new Address();
|
||||
newDestination.Address.Id = addressId;
|
||||
|
||||
+1
@@ -11,6 +11,7 @@
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAM.Core.Loggers
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Loggers
|
||||
@using TIAM.Services
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@inject IServiceProviderDataService ServiceProviderDataService
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
@using TIAM.Core.Loggers
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Extensions
|
||||
@using AyCode.Core.Loggers
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@inject IServiceProviderDataService ServiceProviderDataService
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAM.Entities.Drivers
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@using TIAM.Core.Loggers
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using AyCode.Blazor.Components.Components.Grids
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Enums
|
||||
@using AyCode.Core.Extensions
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Services.Loggers
|
||||
@using AyCode.Services.SignalRs
|
||||
@using AyCode.Utils.Extensions
|
||||
@using TIAM.Core.Consts
|
||||
@using TIAM.Core.Loggers
|
||||
@using TIAM.Entities.Drivers
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAM.Entities.Users
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@using TIAM.Services
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@inject IUserDataService UserDataService
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
@using TIAM.Entities.Products
|
||||
@using TIAM.Entities.Transfers
|
||||
@using AyCode.Blazor.Components.Components.Grids
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Enums
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Models.Users
|
||||
@using AyCode.Services.Loggers
|
||||
@using AyCode.Services.SignalRs
|
||||
@using TIAM.Core.Consts
|
||||
@using TIAM.Core.Loggers
|
||||
@using TIAM.Entities.Drivers
|
||||
@using TIAM.Entities.Products
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAM.Entities.Users
|
||||
@using TIAM.Models.Dtos.Products
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@using TIAM.Services
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@using TIAM.Core.Loggers
|
||||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Services.Loggers
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Enums
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Models.Users
|
||||
@using AyCode.Services.SignalRs
|
||||
@using TIAM.Core.Consts
|
||||
@using TIAM.Models.Dtos.Products
|
||||
@inject IServiceProviderDataService ServiceProviderDataService
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject AdminSignalRClient AdminSignalRClient
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
@using AyCode.Core.Consts
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Core.Loggers
|
||||
@using DevExpress.Data.Filtering
|
||||
@using TIAM.Entities.Emails
|
||||
@using TIAMSharedUI.Shared.Components.BaseComponents
|
||||
@@ -31,7 +32,7 @@
|
||||
@inject IStringLocalizer<TIAMResources> localizer
|
||||
@inject IWizardProcessor wizardProcessor
|
||||
@inject ITransferDataService transferDataService
|
||||
@inject ISessionService sessionService
|
||||
@inject ISessionServiceClient sessionService
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
<PageTitle>Transfers</PageTitle>
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
@inherits LayoutComponentBase
|
||||
|
||||
@using AyCode.Core.Loggers
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
@using TIAMSharedUI.Pages
|
||||
@using TIAMSharedUI.Shared.Users
|
||||
@@ -10,7 +11,7 @@
|
||||
@inject NavigationManager NavManager
|
||||
@inject IJSRuntime jsRuntime
|
||||
@inject ISecureStorageHandler SecureStorageHandler
|
||||
@inject ISessionService sessionService
|
||||
@inject ISessionServiceClient sessionService
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject IUserDataService userDataService
|
||||
@attribute [Authorize]
|
||||
|
||||
@@ -7,6 +7,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using AyCode.Core.Loggers;
|
||||
using TIAM.Resources;
|
||||
using TIAMSharedUI.Pages.User;
|
||||
using TIAMSharedUI.Resources;
|
||||
@@ -29,10 +30,10 @@ namespace TIAMSharedUI.Shared.Components.BaseComponents
|
||||
protected IStringLocalizer<TIAMResources> _localizer { get; set; }
|
||||
|
||||
[Inject]
|
||||
protected ISessionService _sessionService { get; set; }
|
||||
protected ISessionServiceClient _sessionService { get; set; }
|
||||
|
||||
private LoggerClient<BasePageComponent> _logger = null!;
|
||||
public BasePageComponent(NavigationManager navManager, PageHistoryState pageState, IEnumerable<IAcLogWriterClientBase> logWriters, IStringLocalizer<TIAMResources> localizer,ISessionService sessionService)
|
||||
public BasePageComponent(NavigationManager navManager, PageHistoryState pageState, IEnumerable<IAcLogWriterClientBase> logWriters, IStringLocalizer<TIAMResources> localizer,ISessionServiceClient sessionService)
|
||||
{
|
||||
_navManager = navManager;
|
||||
_pageState = pageState;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -18,6 +18,7 @@ using TIAMSharedUI.Shared.Components.Grids;
|
||||
using TIAMWebApp.Shared.Application.Utility;
|
||||
using AyCode.Core.Extensions;
|
||||
using AyCode.Utils.Extensions;
|
||||
using AyCode.Services.Server.SignalRs;
|
||||
|
||||
namespace TIAMSharedUI.Shared.Components.Cards
|
||||
{
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<!-- footer -->
|
||||
<footer class="pt-lg-10 pt-5 footer bg-white">
|
||||
<footer class="pt-lg-10 pt-5 footer bg-light">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-4 col-md-6 col-12">
|
||||
<!-- about company -->
|
||||
<div class="mb-4">
|
||||
<img src="../assets/images/brand/logo/logo.svg" alt="" class="logo-inverse ">
|
||||
<img src="_content/TIAMSharedUI/images/logo_wide.png" alt="" class="logo-inverse ">
|
||||
<div class="mt-4">
|
||||
<p>
|
||||
Geek is feature-rich components and beautifully Bootstrap UIKit for developers, built with bootstrap
|
||||
|
||||
@@ -0,0 +1,335 @@
|
||||
//using System.ComponentModel;
|
||||
//using AyCode.Blazor.Components.Components.Grids;
|
||||
//using AyCode.Core;
|
||||
//using AyCode.Core.Enums;
|
||||
//using AyCode.Core.Extensions;
|
||||
//using AyCode.Core.Helpers;
|
||||
//using AyCode.Core.Interfaces;
|
||||
//using AyCode.Services.Server.SignalRs;
|
||||
//using AyCode.Services.SignalRs;
|
||||
//using AyCode.Utils.Extensions;
|
||||
//using DevExpress.Blazor;
|
||||
//using Microsoft.AspNetCore.Components;
|
||||
//using TIAMWebApp.Shared.Application.Utility;
|
||||
|
||||
//namespace TIAMSharedUI.Shared.Components.Grids;
|
||||
|
||||
//public abstract class MgGridBase<TDataItem> : DxGrid where TDataItem : class, IId<Guid>
|
||||
//{
|
||||
// protected bool IsFirstInitializeParameters;
|
||||
// private SignalRDataSource<TDataItem> _dataSource = null!;
|
||||
// private IList<TDataItem> _dataSourceParam = [];
|
||||
// private string _gridLogName;
|
||||
|
||||
// public MgGridBase() : base()
|
||||
// {
|
||||
// }
|
||||
|
||||
// [Parameter] public LoggerClient Logger { get; set; }
|
||||
// [Parameter] public string GridName { get; set; }
|
||||
// [Parameter] public object[]? ContextIds { get; set; }
|
||||
|
||||
// private string? _filterText = null;
|
||||
|
||||
// [Parameter]
|
||||
// public string? FilterText
|
||||
// {
|
||||
// get => _filterText;
|
||||
// set
|
||||
// {
|
||||
// _filterText = value;
|
||||
|
||||
// if (_dataSource != null! && _dataSource.FilterText != value)
|
||||
// {
|
||||
// _dataSource.FilterText = value;
|
||||
// ReloadDataSourceAsync().Forget();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// [Parameter] public AcSignalRClientBase SignalRClient { get; set; }
|
||||
|
||||
// [Parameter] public int GetAllMessageTag { get; set; }
|
||||
// [Parameter] public int GetItemMessageTag { get; set; }
|
||||
// [Parameter] public int AddMessageTag { get; set; }
|
||||
// [Parameter] public int UpdateMessageTag { get; set; }
|
||||
// [Parameter] public int RemoveMessageTag { get; set; }
|
||||
|
||||
// protected new EventCallback<GridDataItemDeletingEventArgs> DataItemDeleting { get; set; }
|
||||
// [Parameter] public EventCallback<GridDataItemDeletingEventArgs> OnGridItemDeleting { get; set; }
|
||||
|
||||
// protected new EventCallback<GridEditModelSavingEventArgs> EditModelSaving { get; set; }
|
||||
// [Parameter] public EventCallback<GridEditModelSavingEventArgs> OnGridEditModelSaving { get; set; }
|
||||
|
||||
// [Parameter] public EventCallback<IList<TDataItem>> OnDataSourceChanged { get; set; }
|
||||
// [Parameter] public EventCallback<GridDataItemChangingEventArgs<TDataItem>> OnGridItemChanging { get; set; }
|
||||
|
||||
// /// <summary>
|
||||
// /// After the server has responded!
|
||||
// /// </summary>
|
||||
// [Parameter]
|
||||
// public EventCallback<GridDataItemChangedEventArgs<TDataItem>> OnGridItemChanged { get; set; }
|
||||
|
||||
// [Parameter]
|
||||
// [DefaultValue(null)]
|
||||
// [System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "BL0007:Component parameters should be auto properties", Justification = "<Pending>")]
|
||||
// public IList<TDataItem> DataSource
|
||||
// {
|
||||
// get
|
||||
// {
|
||||
// if (_dataSource == null && Data != null)
|
||||
// {
|
||||
// Logger.Error($"{_gridLogName} Use the DataSource parameter instead of Data!");
|
||||
// throw new NullReferenceException($"{_gridLogName} Use the DataSource parameter instead of Data!");
|
||||
// }
|
||||
|
||||
// return _dataSource!;
|
||||
// }
|
||||
// set
|
||||
// {
|
||||
// _dataSourceParam = value;
|
||||
|
||||
// if (_dataSource != null! && _dataSourceParam is List<TDataItem> workingReferenceList)
|
||||
// _dataSource.SetWorkingReferenceList(workingReferenceList);
|
||||
// }
|
||||
// }
|
||||
|
||||
// protected override async Task OnInitializedAsync()
|
||||
// {
|
||||
// if (Logger == null)
|
||||
// throw new NullReferenceException($"[{GetType().Name}] Logger == null");
|
||||
|
||||
// if (SignalRClient == null)
|
||||
// {
|
||||
// Logger.Error($"[{GetType().Name}] SignalRClient == null");
|
||||
// throw new NullReferenceException($"[{GetType().Name}] SignalRClient == null");
|
||||
// }
|
||||
|
||||
// var crudTags = new SignalRCrudTags(GetAllMessageTag, GetItemMessageTag, AddMessageTag, UpdateMessageTag, RemoveMessageTag);
|
||||
// _dataSource = new SignalRDataSource<TDataItem>(SignalRClient, crudTags, ContextIds) { FilterText = FilterText };
|
||||
|
||||
// Data = _dataSource;
|
||||
|
||||
// _dataSource.OnDataSourceLoaded += OnDataSourceLoaded;
|
||||
// _dataSource.OnDataSourceItemChanged += OnDataSourceItemChanged;
|
||||
|
||||
// await base.OnInitializedAsync();
|
||||
// }
|
||||
|
||||
// private async Task OnDataSourceItemChanged(ItemChangedEventArgs<TDataItem> args)
|
||||
// {
|
||||
// if (args.TrackingState is TrackingState.GetAll or TrackingState.None) return;
|
||||
|
||||
// Logger.Debug($"{_gridLogName} OnDataSourceItemChanged; trackingState: {args.TrackingState}");
|
||||
|
||||
// var changedEventArgs = new GridDataItemChangedEventArgs<TDataItem>(this, args.Item, args.TrackingState);
|
||||
// await OnGridItemChanged.InvokeAsync(changedEventArgs);
|
||||
|
||||
// if (!changedEventArgs.CancelStateChangeInvoke)
|
||||
// {
|
||||
// //BeginUpdate();
|
||||
// await InvokeAsync(StateHasChanged); //TODO: bezárja a DetailRow-t! pl: az email-nél IsReaded=true update... - J.
|
||||
// //EndUpdate();
|
||||
// }
|
||||
// }
|
||||
|
||||
// private Task OnDataSourceLoaded()
|
||||
// {
|
||||
// Logger.Debug($"{_gridLogName} OnDataSourceLoaded; Count: {_dataSource.Count}");
|
||||
|
||||
// Reload();
|
||||
// //_dataSource.LoadItem(_dataSource.First().Id).Forget();
|
||||
// return OnDataSourceChanged.InvokeAsync(_dataSource);
|
||||
// }
|
||||
|
||||
// protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
// {
|
||||
// if (firstRender)
|
||||
// {
|
||||
// if (_dataSourceParam != null!) await _dataSource.LoadDataSource(_dataSourceParam, true, true);
|
||||
// else _dataSource.LoadDataSourceAsync(true).Forget();
|
||||
// }
|
||||
|
||||
// await base.OnAfterRenderAsync(firstRender);
|
||||
// }
|
||||
|
||||
// public Task AddDataItem(TDataItem dataItem)
|
||||
// {
|
||||
// if (dataItem.Id.IsNullOrEmpty()) dataItem.Id = Guid.NewGuid();
|
||||
// return _dataSource.Add(dataItem, true);
|
||||
// }
|
||||
|
||||
// public Task AddDataItemAsync(TDataItem dataItem)
|
||||
// {
|
||||
// if (dataItem.Id.IsNullOrEmpty()) dataItem.Id = Guid.NewGuid();
|
||||
// _dataSource.Add(dataItem);
|
||||
|
||||
// return SaveChangesToServerAsync();
|
||||
// }
|
||||
|
||||
// private async Task OnItemSaving(GridEditModelSavingEventArgs e)
|
||||
// {
|
||||
// var dataItem = (e.EditModel as TDataItem)!;
|
||||
|
||||
// if (e.IsNew && dataItem.Id.IsNullOrEmpty()) dataItem.Id = Guid.NewGuid();
|
||||
|
||||
// var logText = e.IsNew ? "add" : "update";
|
||||
// Logger.Debug($"{_gridLogName} OnItemSaving {logText}; Id: {dataItem.Id}");
|
||||
|
||||
// await OnGridEditModelSaving.InvokeAsync(e);
|
||||
|
||||
// if (e.Cancel)
|
||||
// {
|
||||
// Logger.Debug($"{_gridLogName} OnItemSaving {logText} canceled; Id: {dataItem.Id}");
|
||||
// return;
|
||||
// }
|
||||
|
||||
// if (e.IsNew) await AddDataItemAsync(dataItem);
|
||||
// else await UpdateDataItemAsync(dataItem);
|
||||
|
||||
// _dataSource.UpdateCollection(dataItem, false);
|
||||
// }
|
||||
|
||||
// private Task SaveChangesToServerAsync()
|
||||
// {
|
||||
// try
|
||||
// {
|
||||
// return _dataSource.SaveChangesAsync();
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// Logger.Error($"{_gridLogName} SaveChangesToServerAsync->SaveChangesAsync error!", ex);
|
||||
// }
|
||||
|
||||
// return Task.CompletedTask;
|
||||
// }
|
||||
|
||||
// private async Task<bool> SaveChangesToServer()
|
||||
// {
|
||||
// var result = false;
|
||||
|
||||
// try
|
||||
// {
|
||||
// var unsavedItems = await _dataSource.SaveChanges();
|
||||
|
||||
// if ((result = unsavedItems.Count == 0) == false)
|
||||
// Logger.Error($"{_gridLogName} SaveChangesToServer->SaveChanges error! unsavedCount: {unsavedItems.Count}");
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// Logger.Error($"{_gridLogName} OnItemSaving", ex);
|
||||
// }
|
||||
|
||||
// return result;
|
||||
// }
|
||||
|
||||
// private async Task OnItemDeleting(GridDataItemDeletingEventArgs e)
|
||||
// {
|
||||
// Logger.Debug($"{_gridLogName} OnItemDeleting");
|
||||
|
||||
// await OnGridItemDeleting.InvokeAsync(e);
|
||||
|
||||
// if (e.Cancel)
|
||||
// {
|
||||
// Logger.Debug($"{_gridLogName} OnItemDeleting canceled");
|
||||
// return;
|
||||
// }
|
||||
|
||||
// var dataItem = (e.DataItem as TDataItem)!;
|
||||
// await RemoveDataItem(dataItem);
|
||||
// }
|
||||
|
||||
// private void OnCustomizeElement(GridCustomizeElementEventArgs e)
|
||||
// {
|
||||
// if (e.ElementType == GridElementType.DetailCell)
|
||||
// {
|
||||
// e.Style = "padding: 0.5rem; opacity: 0.75";
|
||||
// }
|
||||
// else if (false && e.ElementType == GridElementType.DataCell && e.Column.Name == nameof(IId<Guid>.Id))
|
||||
// {
|
||||
// e.Column.Visible = AcDomain.IsDeveloperVersion;
|
||||
// e.Column.ShowInColumnChooser = AcDomain.IsDeveloperVersion;
|
||||
// }
|
||||
// }
|
||||
|
||||
// protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||
// {
|
||||
// if (!IsFirstInitializeParameters)
|
||||
// {
|
||||
// //if (typeof(TDataItem) is IId<Guid> || typeof(TDataItem) is IId<int>)
|
||||
// KeyFieldName = "Id";
|
||||
|
||||
// base.DataItemDeleting = EventCallback.Factory.Create<GridDataItemDeletingEventArgs>(this, OnItemDeleting);
|
||||
// base.EditModelSaving = EventCallback.Factory.Create<GridEditModelSavingEventArgs>(this, OnItemSaving);
|
||||
|
||||
// CustomizeElement += OnCustomizeElement;
|
||||
|
||||
// //ShowFilterRow = true;
|
||||
// //PageSize = 4;
|
||||
// //ShowGroupPanel = true;
|
||||
// //AllowSort = false;
|
||||
|
||||
// TextWrapEnabled = false;
|
||||
// AllowSelectRowByClick = true;
|
||||
// HighlightRowOnHover = true;
|
||||
// AutoCollapseDetailRow = true;
|
||||
// AutoExpandAllGroupRows = false;
|
||||
// //KeyboardNavigationEnabled = true;
|
||||
|
||||
// //var dataColumns = GetDataColumns();
|
||||
|
||||
// //var idColumn = dataColumns.FirstOrDefault(x => x.FieldName == nameof(IId<Guid>.Id));
|
||||
// //if (idColumn != null)
|
||||
// //{
|
||||
// // idColumn.ShowInColumnChooser = AcDomain.IsDeveloperVersion;
|
||||
// // idColumn.Visible = !AcDomain.IsDeveloperVersion;
|
||||
// //}
|
||||
|
||||
// IsFirstInitializeParameters = true;
|
||||
// }
|
||||
|
||||
// return base.SetParametersAsyncCore(parameters);
|
||||
// }
|
||||
|
||||
|
||||
// protected override void OnParametersSet()
|
||||
// {
|
||||
// base.OnParametersSet();
|
||||
|
||||
// if (GridName.IsNullOrWhiteSpace()) GridName = $"{typeof(TDataItem).Name}Grid";
|
||||
|
||||
// _gridLogName = $"[{GridName}]";
|
||||
|
||||
// }
|
||||
|
||||
// //public Task AddDataItem(TDataItem dataItem, int messageTag) => PostDataToServerAsync(dataItem, messageTag, TrackingState.Add);
|
||||
|
||||
// public Task UpdateDataItem(TDataItem dataItem) => _dataSource.Update(dataItem, true);
|
||||
|
||||
// public Task UpdateDataItemAsync(TDataItem dataItem)
|
||||
// {
|
||||
// _dataSource.Update(dataItem, false);
|
||||
// return SaveChangesToServerAsync();
|
||||
// }
|
||||
// //public Task UpdateDataItem(TDataItem dataItem, int messageTag) => PostDataToServerAsync(dataItem, messageTag, TrackingState.Update);
|
||||
|
||||
// public Task AddOrUpdateDataItem(TDataItem dataItem) => _dataSource.AddOrUpdate(dataItem, true);
|
||||
|
||||
// public Task RemoveDataItem(TDataItem dataItem) => _dataSource.Remove(dataItem, true);
|
||||
// //public Task RemoveDataItem(TDataItem dataItem, int messageTag) => PostDataToServerAsync(dataItem, messageTag, TrackingState.Remove);
|
||||
|
||||
// public Task RemoveDataItem(Guid id) => RemoveDataItem(id, RemoveMessageTag);
|
||||
|
||||
// public Task RemoveDataItem(Guid id, int messageTag)
|
||||
// {
|
||||
// var dataItem = _dataSource.FirstOrDefault(x => x.Id == id);
|
||||
// if (dataItem == null) return Task.CompletedTask;
|
||||
|
||||
// return _dataSource.Remove(dataItem, true);
|
||||
// }
|
||||
|
||||
// public Task ReloadDataSourceAsync()
|
||||
// {
|
||||
// return _dataSource.LoadDataSourceAsync(false);
|
||||
// }
|
||||
//}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user