Merge branch 'master' of http://git2.aycode.com/Adam/TourIAm
This commit is contained in:
commit
491b7a9669
|
|
@ -32,6 +32,7 @@ using TIAM.Database.DbSets.Drivers;
|
||||||
using AyCode.Entities.Server.LogItems;
|
using AyCode.Entities.Server.LogItems;
|
||||||
using AyCode.Interfaces.Entities;
|
using AyCode.Interfaces.Entities;
|
||||||
using TIAM.Models.Dtos.Users;
|
using TIAM.Models.Dtos.Users;
|
||||||
|
using TIAM.Models.PageViewModels;
|
||||||
|
|
||||||
namespace TIAM.Database.DataLayers.Admins
|
namespace TIAM.Database.DataLayers.Admins
|
||||||
{
|
{
|
||||||
|
|
@ -60,6 +61,19 @@ namespace TIAM.Database.DataLayers.Admins
|
||||||
public Task<List<Transfer>> GetTransfersByProductIdAsync(Guid productId) => SessionAsync(ctx => ctx.GetTransfersByProductId(productId).OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToList());
|
public Task<List<Transfer>> GetTransfersByProductIdAsync(Guid productId) => SessionAsync(ctx => ctx.GetTransfersByProductId(productId).OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToList());
|
||||||
public Task<List<Transfer>> GetTransfersByUserProductMappingIdAsync(Guid userProductMappingId) => SessionAsync(ctx => ctx.GetTransfersByUserProductMappingId(userProductMappingId).OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToList());
|
public Task<List<Transfer>> GetTransfersByUserProductMappingIdAsync(Guid userProductMappingId) => SessionAsync(ctx => ctx.GetTransfersByUserProductMappingId(userProductMappingId).OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToList());
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="driverId">UserProductMappingId</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public Task<DriverManageTransfersPageModel> GetDriverManageTransfersPageModelByDriverId(Guid driverId) => SessionAsync(ctx =>
|
||||||
|
{
|
||||||
|
var transfers = ctx.GetTransfersByUserProductMappingId(driverId).OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId);
|
||||||
|
var unreadedMessagesCount = GetTransfersMessagesByDriverIdInnerAsync(ctx, driverId)?.Count(x => !x.IsReaded) ?? 0;
|
||||||
|
|
||||||
|
return new DriverManageTransfersPageModel(transfers, unreadedMessagesCount);
|
||||||
|
});
|
||||||
|
|
||||||
public Task<List<Transfer>> GetTransfersAsync() => SessionAsync(ctx => ctx.GetTransfers().OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToList());
|
public Task<List<Transfer>> GetTransfersAsync() => SessionAsync(ctx => ctx.GetTransfers().OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToList());
|
||||||
public Task<string> GetTransfersJsonAsync() => SessionAsync(ctx => ctx.GetTransfers().OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToJson());
|
public Task<string> GetTransfersJsonAsync() => SessionAsync(ctx => ctx.GetTransfers().OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToJson());
|
||||||
public Task<List<Transfer>> GetTransfersByUserIdAsync(Guid userId) => SessionAsync(ctx => ctx.GetTransfersByUserId(userId).OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToList());
|
public Task<List<Transfer>> GetTransfersByUserIdAsync(Guid userId) => SessionAsync(ctx => ctx.GetTransfersByUserId(userId).OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToList());
|
||||||
|
|
@ -323,31 +337,40 @@ namespace TIAM.Database.DataLayers.Admins
|
||||||
public Task<List<EmailMessage>> GetAllEmailMessagesAsync() => SessionAsync(ctx => ctx.GetAllEmailMessages<EmailMessage, EmailRecipient>().OrderByDescending(x => x.Created).ToList());
|
public Task<List<EmailMessage>> GetAllEmailMessagesAsync() => SessionAsync(ctx => ctx.GetAllEmailMessages<EmailMessage, EmailRecipient>().OrderByDescending(x => x.Created).ToList());
|
||||||
|
|
||||||
public Task<List<EmailMessage>> GetEmailMessagesByUserId(Guid userId)
|
public Task<List<EmailMessage>> GetEmailMessagesByUserId(Guid userId)
|
||||||
{
|
=> SessionAsync(ctx => ctx.GetEmailMessagesByIds<EmailMessage, EmailRecipient>(ctx.GetUserProductMappingsByUserId(userId).Select(x => x.Id).Concat([userId])).ToList());
|
||||||
return SessionAsync(ctx =>
|
|
||||||
{
|
/// <summary>
|
||||||
return ctx.GetEmailMessagesByIds<EmailMessage, EmailRecipient>(ctx.GetUserProductMappingsByUserId(userId).Select(x => x.Id).Concat([userId])).ToList();
|
///
|
||||||
});
|
/// </summary>
|
||||||
}
|
/// <param name="driverId">UserProductMappingId</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public Task<List<EmailMessage>> GetTransfersMessagesByDriverIdAsync(Guid driverId)
|
||||||
|
=> SessionAsync(ctx => GetTransfersMessagesByDriverIdInnerAsync(ctx, driverId)?.OrderByDescending(x => x.Created).ToList() ?? []);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="driverId">UserProductMappingId</param>
|
/// <param name="driverId">UserProductMappingId</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<List<EmailMessage>> GetTransfersMessagesByDriverIdAsync(Guid driverId) => SessionAsync(ctx =>
|
public Task<int> GetTransfersMessagesUnreadedCountByDriverIdAsync(Guid driverId)
|
||||||
|
=> SessionAsync(ctx => GetTransfersMessagesByDriverIdInnerAsync(ctx, driverId)?.Count(x => !x.IsReaded) ?? 0);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ctx"></param>
|
||||||
|
/// <param name="driverId">UserProductMappingId</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private static IQueryable<EmailMessage>? GetTransfersMessagesByDriverIdInnerAsync(AdminDbContext ctx, Guid driverId)
|
||||||
{
|
{
|
||||||
//TODO: Az upm.UserId elvben nem kell, csak amíg nem fix a db! semmilyen gondot nem okoz... - J.
|
//TODO: Az upm.UserId elvben nem kell, csak amíg nem fix a db! semmilyen gondot nem okoz... - J.
|
||||||
var upm = ctx.GetUserProductMappingById(driverId);
|
var upm = ctx.GetUserProductMappingById(driverId);
|
||||||
if (upm == null) return [];
|
if (upm == null) return default;
|
||||||
|
|
||||||
//return ctx.GetEmailMessages<EmailMessage, EmailRecipient>(driverId) //TODO: jövőben elég lesz a driverId is és mehet vissza ez a sor! - J.
|
//return ctx.GetEmailMessages<EmailMessage, EmailRecipient>(driverId) //TODO: jövőben elég lesz a driverId is és mehet vissza ez a sor! - J.
|
||||||
return ctx.GetEmailMessagesByUserIdOrUpmId<EmailMessage, EmailRecipient>(upm.UserId, driverId)
|
return ctx.GetEmailMessagesByUserIdOrUpmId<EmailMessage, EmailRecipient>(upm.UserId, driverId)
|
||||||
.Where(emailMessage => ctx.TransferToDrivers.Any(transferToDriver => transferToDriver.TransferId == emailMessage.ContextId && transferToDriver.UserProductMappingId == driverId))
|
.Where(emailMessage => ctx.TransferToDrivers.Any(transferToDriver => transferToDriver.TransferId == emailMessage.ContextId && transferToDriver.UserProductMappingId == driverId));
|
||||||
.OrderByDescending(x => x.Created)
|
}
|
||||||
.ToList();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
public Task<bool> AddEmailMessageAsync(EmailMessage emailMessage)
|
public Task<bool> AddEmailMessageAsync(EmailMessage emailMessage)
|
||||||
=> TransactionAsync(ctx => ctx.AddEmailMessage(emailMessage));
|
=> TransactionAsync(ctx => ctx.AddEmailMessage(emailMessage));
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,90 @@
|
||||||
|
using AyCode.Blazor.Models.ViewModels;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using TIAM.Core.Enums;
|
||||||
|
using TIAM.Entities.Transfers;
|
||||||
|
|
||||||
|
namespace TIAM.Models.PageViewModels;
|
||||||
|
|
||||||
|
public class DriverManageTransfersPageModel : AcPageViewModelBase
|
||||||
|
{
|
||||||
|
private readonly object _forLock = new();
|
||||||
|
|
||||||
|
public int UnreadedMessagesCount { get; set; }
|
||||||
|
public List<Transfer> Transfers { get; set; } = [];
|
||||||
|
|
||||||
|
private readonly List<Transfer> _upcomings = [];
|
||||||
|
private readonly List<Transfer> _problems = [];
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Value set on the client side!
|
||||||
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<Transfer> Upcomings
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
lock (_forLock)
|
||||||
|
{
|
||||||
|
if (_upcomings.Count > 0) return _upcomings;
|
||||||
|
|
||||||
|
var localNow = DateTime.Now;
|
||||||
|
_upcomings.AddRange(Transfers.Where(x => x.Appointment >= localNow));
|
||||||
|
}
|
||||||
|
|
||||||
|
return _upcomings;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Value set on the client side!
|
||||||
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<Transfer> Problems
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
lock (_forLock)
|
||||||
|
{
|
||||||
|
if (_problems.Count > 0) return _problems;
|
||||||
|
|
||||||
|
var localNow = DateTime.Now;
|
||||||
|
var localNowAddedThreeHour = localNow.AddHours(3);
|
||||||
|
|
||||||
|
_problems.AddRange(Transfers.Where(x => x.Appointment < localNowAddedThreeHour && x.TransferStatusType != TransferStatusType.Finished));
|
||||||
|
}
|
||||||
|
|
||||||
|
return _problems;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public DriverManageTransfersPageModel()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public DriverManageTransfersPageModel(IEnumerable<Transfer> transfers, int unreadedMessagesCount)
|
||||||
|
{
|
||||||
|
Initialize(transfers, unreadedMessagesCount);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Initialize(DriverManageTransfersPageModel? driverManageTransfersPageModel)
|
||||||
|
{
|
||||||
|
if (driverManageTransfersPageModel == null) return;
|
||||||
|
|
||||||
|
Initialize(driverManageTransfersPageModel.Transfers, driverManageTransfersPageModel.UnreadedMessagesCount);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Initialize(IEnumerable<Transfer> transfers, int unreadedMessagesCount)
|
||||||
|
{
|
||||||
|
lock (_forLock)
|
||||||
|
{
|
||||||
|
Transfers.Clear();
|
||||||
|
Transfers.AddRange(transfers.Where(t => t.TransferStatusType != TransferStatusType.UserCanceled && t.TransferStatusType != TransferStatusType.AdminDenied));
|
||||||
|
|
||||||
|
Upcomings.Clear();
|
||||||
|
Problems.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
UnreadedMessagesCount = unreadedMessagesCount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -9,9 +9,13 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Dtos\Profiles\" />
|
<Folder Include="Dtos\Profiles\" />
|
||||||
<Folder Include="Dtos\UserProductMappings\" />
|
<Folder Include="Dtos\UserProductMappings\" />
|
||||||
|
<Folder Include="GridViewModels\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\Aycode.Blazor\AyCode.Blazor.Components\AyCode.Blazor.Components.csproj" />
|
||||||
|
<ProjectReference Include="..\..\Aycode.Blazor\AyCode.Blazor.Models\AyCode.Blazor.Models.csproj" />
|
||||||
|
<ProjectReference Include="..\..\Aycode.Blazor\AyCode.Maui.Core\AyCode.Maui.Core.csproj" />
|
||||||
<ProjectReference Include="..\TIAM.Core\TIAM.Core.csproj" />
|
<ProjectReference Include="..\TIAM.Core\TIAM.Core.csproj" />
|
||||||
<ProjectReference Include="..\TIAM.Entities\TIAM.Entities.csproj" />
|
<ProjectReference Include="..\TIAM.Entities\TIAM.Entities.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ public class SignalRTags : AcSignalRTags
|
||||||
public const int GetTransfersByCompanyId = 6;
|
public const int GetTransfersByCompanyId = 6;
|
||||||
public const int GetTransfersByUserProductMappingId = 701;
|
public const int GetTransfersByUserProductMappingId = 701;
|
||||||
public const int GetTransfersByOrderingProductId = 702;
|
public const int GetTransfersByOrderingProductId = 702;
|
||||||
|
public const int GetDriverManageTransfersPageModelByDriverId = 703;
|
||||||
|
|
||||||
public const int GetTransfersByFilterText = 301;
|
public const int GetTransfersByFilterText = 301;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,10 @@
|
||||||
@using AyCode.Core.Consts
|
@using AyCode.Core.Consts
|
||||||
@using AyCode.Core
|
@using AyCode.Core
|
||||||
@using AyCode.Core.Helpers
|
@using AyCode.Core.Helpers
|
||||||
|
@using AyCode.Services.SignalRs
|
||||||
@using DevExpress.Data.Filtering
|
@using DevExpress.Data.Filtering
|
||||||
@using TIAM.Entities.Emails
|
@using TIAM.Entities.Emails
|
||||||
|
@using TIAM.Models.PageViewModels
|
||||||
@using TIAMSharedUI.Shared.Components.BaseComponents
|
@using TIAMSharedUI.Shared.Components.BaseComponents
|
||||||
@inherits UserBasePageComponent
|
@inherits UserBasePageComponent
|
||||||
@layout AdminLayout
|
@layout AdminLayout
|
||||||
|
|
@ -32,6 +34,7 @@
|
||||||
@inject IWizardProcessor wizardProcessor
|
@inject IWizardProcessor wizardProcessor
|
||||||
@inject ITransferDataService transferDataService
|
@inject ITransferDataService transferDataService
|
||||||
@inject ISessionService sessionService
|
@inject ISessionService sessionService
|
||||||
|
@inject DriverManageTransfersPageModel PageModel;
|
||||||
@inject AdminSignalRClient AdminSignalRClient;
|
@inject AdminSignalRClient AdminSignalRClient;
|
||||||
<PageTitle>Transfers</PageTitle>
|
<PageTitle>Transfers</PageTitle>
|
||||||
|
|
||||||
|
|
@ -72,34 +75,14 @@
|
||||||
<div class=" col-12">
|
<div class=" col-12">
|
||||||
|
|
||||||
<DxTabs>
|
<DxTabs>
|
||||||
<DxTabPage Text="Upcoming">
|
<DxTabPage Text="@($"Upcoming({PageModel.Upcomings.Count})")">
|
||||||
<DxAccordion ExpandMode="ExpandMode"
|
<DxAccordion ExpandMode="ExpandMode"
|
||||||
ExpandCollapseAction="ExpandCollapseAction"
|
ExpandCollapseAction="ExpandCollapseAction"
|
||||||
AnimationType="LayoutAnimationType.Slide">
|
AnimationType="LayoutAnimationType.Slide">
|
||||||
<Items>
|
<Items>
|
||||||
@foreach (var (transfer, i) in Upcoming)
|
@foreach (var transfer in PageModel.Upcomings)
|
||||||
{
|
{
|
||||||
|
<DxAccordionItem CssClass="@GetCustomColor(transfer.TransferStatusType)" Text=@($"{transfer.Appointment} - {transfer.FromAddress} [#{transfer.OrderId}]")>
|
||||||
<DxAccordionItem CssClass="@GetCustomColor(transfer.TransferStatusType)" Text=@($"{transfer.Appointment} - {transfer.FromAddress}") Expanded=@(i == 0)>
|
|
||||||
<ContentTemplate>
|
|
||||||
<div class="py-3 px-3">
|
|
||||||
<TransferCardComponent DataChanged="RefreshComponent" Context="@transfer" />
|
|
||||||
</div>
|
|
||||||
</ContentTemplate>
|
|
||||||
</DxAccordionItem>
|
|
||||||
}
|
|
||||||
</Items>
|
|
||||||
</DxAccordion>
|
|
||||||
</DxTabPage>
|
|
||||||
<DxTabPage Text="Problems">
|
|
||||||
<DxAccordion ExpandMode="ExpandMode"
|
|
||||||
ExpandCollapseAction="ExpandCollapseAction"
|
|
||||||
AnimationType="LayoutAnimationType.Slide">
|
|
||||||
<Items>
|
|
||||||
@foreach (var (transfer, i) in Problems)
|
|
||||||
{
|
|
||||||
|
|
||||||
<DxAccordionItem CssClass="@GetCustomColor(transfer.TransferStatusType)" Text=@($"{transfer.Appointment} - {transfer.FromAddress}") Expanded=@(i == 0)>
|
|
||||||
<ContentTemplate>
|
<ContentTemplate>
|
||||||
<div class="py-3 px-3">
|
<div class="py-3 px-3">
|
||||||
<TransferCardComponent DataChanged="RefreshComponent" Context="@transfer" />
|
<TransferCardComponent DataChanged="RefreshComponent" Context="@transfer" />
|
||||||
|
|
@ -111,6 +94,31 @@
|
||||||
</DxAccordion>
|
</DxAccordion>
|
||||||
</DxTabPage>
|
</DxTabPage>
|
||||||
|
|
||||||
|
<DxTabPage Text="@($"Messages({PageModel.UnreadedMessagesCount})")">
|
||||||
|
<div class="d-flex flex-column mb-4 pb-2">
|
||||||
|
<MessageDetailGridComponent ContextId="driverId" GetAllMessageTag="SignalRTags.GetTransfersMessagesByDriverId" IsSenderEmailVisible="false" IsMessageTextVisible="false"></MessageDetailGridComponent>
|
||||||
|
</div>
|
||||||
|
</DxTabPage>
|
||||||
|
|
||||||
|
<DxTabPage Text="@($"Problems({PageModel.Problems.Count})")">
|
||||||
|
<DxAccordion ExpandMode="ExpandMode"
|
||||||
|
ExpandCollapseAction="ExpandCollapseAction"
|
||||||
|
AnimationType="LayoutAnimationType.Slide">
|
||||||
|
<Items>
|
||||||
|
@foreach (var transfer in PageModel.Problems)
|
||||||
|
{
|
||||||
|
|
||||||
|
<DxAccordionItem CssClass="@GetCustomColor(transfer.TransferStatusType)" Text=@($"{transfer.Appointment} - {transfer.FromAddress} [#{transfer.OrderId}]")>
|
||||||
|
<ContentTemplate>
|
||||||
|
<div class="py-3 px-3">
|
||||||
|
<TransferCardComponent DataChanged="RefreshComponent" Context="@transfer" />
|
||||||
|
</div>
|
||||||
|
</ContentTemplate>
|
||||||
|
</DxAccordionItem>
|
||||||
|
}
|
||||||
|
</Items>
|
||||||
|
</DxAccordion>
|
||||||
|
</DxTabPage>
|
||||||
|
|
||||||
<DxTabPage Text="Calendar">
|
<DxTabPage Text="Calendar">
|
||||||
<div class="d-flex flex-column mb-4 pb-2">
|
<div class="d-flex flex-column mb-4 pb-2">
|
||||||
|
|
@ -159,12 +167,6 @@
|
||||||
</div>
|
</div>
|
||||||
</DxTabPage>
|
</DxTabPage>
|
||||||
|
|
||||||
<DxTabPage Text="Messages">
|
|
||||||
<div class="d-flex flex-column mb-4 pb-2">
|
|
||||||
<MessageDetailGridComponent ContextId="driverId" GetAllMessageTag="SignalRTags.GetTransfersMessagesByDriverId" IsSenderEmailVisible="false" IsMessageTextVisible="false"></MessageDetailGridComponent>
|
|
||||||
</div>
|
|
||||||
</DxTabPage>
|
|
||||||
|
|
||||||
</DxTabs>
|
</DxTabs>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -183,10 +185,6 @@
|
||||||
private TransferGrid _gridTransfer;
|
private TransferGrid _gridTransfer;
|
||||||
private bool _popupVisible;
|
private bool _popupVisible;
|
||||||
|
|
||||||
private List<Transfer>? transfers = [];
|
|
||||||
IEnumerable<(Transfer, int)> Upcoming = [];
|
|
||||||
IEnumerable<(Transfer, int)> Problems = [];
|
|
||||||
|
|
||||||
AccordionExpandMode ExpandMode { get; set; } = AccordionExpandMode.SingleOrNone;
|
AccordionExpandMode ExpandMode { get; set; } = AccordionExpandMode.SingleOrNone;
|
||||||
AccordionExpandCollapseAction ExpandCollapseAction { get; set; } = AccordionExpandCollapseAction.HeaderClick;
|
AccordionExpandCollapseAction ExpandCollapseAction { get; set; } = AccordionExpandCollapseAction.HeaderClick;
|
||||||
|
|
||||||
|
|
@ -296,8 +294,6 @@
|
||||||
{
|
{
|
||||||
driverId = DriverId;
|
driverId = DriverId;
|
||||||
// transfers = await AdminSignalRClient.GetByIdAsync<List<Transfer>>(SignalRTags.GetTransfersByUserProductMappingId, DriverId);
|
// transfers = await AdminSignalRClient.GetByIdAsync<List<Transfer>>(SignalRTags.GetTransfersByUserProductMappingId, DriverId);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SendMail(Transfer item)
|
void SendMail(Transfer item)
|
||||||
|
|
@ -387,23 +383,35 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//readonly DriverManageTransfersPageModel PageModel = new();
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
_logger = new LoggerClient<DriverManageTransfers>(LogWriters.ToArray());
|
_logger = new LoggerClient<DriverManageTransfers>(LogWriters.ToArray());
|
||||||
if (transfers != null)
|
|
||||||
{
|
|
||||||
var test = DriverId.ToString();
|
|
||||||
var result = await AdminSignalRClient.GetByIdAsync<List<Transfer>>(SignalRTags.GetTransfersByUserProductMappingId, DriverId);
|
|
||||||
transfers = result.Where(t => t.TransferStatusType != TransferStatusType.UserCanceled && t.TransferStatusType != TransferStatusType.AdminDenied).ToList();
|
|
||||||
Upcoming = transfers.Where(x => x.Appointment >= DateTime.Now).Select((item, index) => (item, index));
|
|
||||||
Problems = transfers.Where(x => x.Appointment < DateTime.Now && x.TransferStatusType != TransferStatusType.Finished).Select((item, index) => (item, index));
|
|
||||||
InitializeAppointments(transfers);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
InitializePage(DriverId);
|
||||||
|
|
||||||
await base.OnInitializedAsync();
|
await base.OnInitializedAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void InitializePage(Guid driverId2)
|
||||||
|
{
|
||||||
|
AdminSignalRClient.GetByIdAsync<DriverManageTransfersPageModel>(SignalRTags.GetDriverManageTransfersPageModelByDriverId, response=>
|
||||||
|
{
|
||||||
|
if (response.Status == SignalResponseStatus.Error || response.ResponseData == null)
|
||||||
|
{
|
||||||
|
_logger.Error("response.Status == SignalResponseStatus.Error || response.ResponseData == null");
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
|
|
||||||
|
PageModel.Initialize(response.ResponseData);
|
||||||
|
|
||||||
|
InitializeAppointments(PageModel.Transfers);
|
||||||
|
StateHasChanged();
|
||||||
|
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}, driverId2).Forget();
|
||||||
|
}
|
||||||
|
|
||||||
private void GroupTransfers(List<Transfer> transferDataList)
|
private void GroupTransfers(List<Transfer> transferDataList)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -237,10 +237,10 @@
|
||||||
var transferToDriverEditModel = (TransferToDriver)args.EditModel;
|
var transferToDriverEditModel = (TransferToDriver)args.EditModel;
|
||||||
|
|
||||||
if (transferToDriverEditModel.UserProductMappingId.IsNullOrEmpty() || transferToDriverEditModel.CarId.IsNullOrEmpty() ||
|
if (transferToDriverEditModel.UserProductMappingId.IsNullOrEmpty() || transferToDriverEditModel.CarId.IsNullOrEmpty() ||
|
||||||
transferToDriverEditModel.LicencePlate.IsNullOrWhiteSpace() || transferToDriverEditModel.Price <= 0)
|
transferToDriverEditModel.LicencePlate.IsNullOrWhiteSpace())// || transferToDriverEditModel.Price <= 0)
|
||||||
{
|
{
|
||||||
args.Cancel = true;
|
args.Cancel = true;
|
||||||
_logger.Error($"transferToDriverEditModel.UserProductMappingId.IsNullOrEmpty() || transferToDriverEditModel.CarId.IsNullOrEmpty() || transferToDriverEditModel.LicencePlate.IsNullOrWhiteSpace() || transferToDriverEditModel.Price <= 0");
|
_logger.Error($"transferToDriverEditModel.UserProductMappingId.IsNullOrEmpty() || transferToDriverEditModel.CarId.IsNullOrEmpty() || transferToDriverEditModel.LicencePlate.IsNullOrWhiteSpace()");// || transferToDriverEditModel.Price <= 0");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args.IsNew)
|
if (args.IsNew)
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ using TIAMWebApp.Shared.Application.Utility;
|
||||||
using AyCode.Services.Loggers;
|
using AyCode.Services.Loggers;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using Microsoft.AspNetCore.Components.Authorization;
|
using Microsoft.AspNetCore.Components.Authorization;
|
||||||
|
using TIAM.Models.PageViewModels;
|
||||||
|
|
||||||
|
|
||||||
var builder = WebAssemblyHostBuilder.CreateDefault(args);
|
var builder = WebAssemblyHostBuilder.CreateDefault(args);
|
||||||
|
|
@ -29,6 +30,7 @@ builder.Services.AddScoped<ISecureStorageHandler, SecureStorageHandler>();
|
||||||
builder.Services.AddBlazoredLocalStorage();
|
builder.Services.AddBlazoredLocalStorage();
|
||||||
builder.Services.AddSingleton<ISessionService, SessionServiceWeb>();
|
builder.Services.AddSingleton<ISessionService, SessionServiceWeb>();
|
||||||
|
|
||||||
|
builder.Services.AddSingleton<DriverManageTransfersPageModel>();
|
||||||
builder.Services.AddSingleton<IComponentUpdateService, ComponentUpdateServiceWeb>();
|
builder.Services.AddSingleton<IComponentUpdateService, ComponentUpdateServiceWeb>();
|
||||||
|
|
||||||
builder.Services.AddScoped<IServiceProviderDataService, ServiceProviderDataService>();
|
builder.Services.AddScoped<IServiceProviderDataService, ServiceProviderDataService>();
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ using TIAM.Entities.Products;
|
||||||
using AyCode.Core.Enums;
|
using AyCode.Core.Enums;
|
||||||
using TIAM.Core.Consts;
|
using TIAM.Core.Consts;
|
||||||
using System.Security.Cryptography.Xml;
|
using System.Security.Cryptography.Xml;
|
||||||
|
using TIAM.Models.PageViewModels;
|
||||||
|
|
||||||
namespace TIAMWebApp.Server.Controllers
|
namespace TIAMWebApp.Server.Controllers
|
||||||
{
|
{
|
||||||
|
|
@ -600,6 +601,20 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
return result.ToJson();
|
return result.ToJson();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="driverId">UserProductMappingId</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[NonAction]
|
||||||
|
[SignalR(SignalRTags.GetDriverManageTransfersPageModelByDriverId)]
|
||||||
|
public async Task<DriverManageTransfersPageModel> GetDriverManageTransfersPageModelByDriverId(Guid driverId)
|
||||||
|
{
|
||||||
|
_logger.Debug($"GetTransferByDriverId called; userProductMappingId: {driverId}");
|
||||||
|
|
||||||
|
return await _adminDal.GetDriverManageTransfersPageModelByDriverId(driverId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue