improvements, fixes, etc...
This commit is contained in:
parent
eeeea7b037
commit
5355bd09cd
|
|
@ -148,7 +148,7 @@ namespace TIAM.Database.DataLayers.Admins
|
||||||
|
|
||||||
#region TransferDestination
|
#region TransferDestination
|
||||||
|
|
||||||
public List<TransferDestination> GetTransferDestinations() => Session(ctx => ctx.GetTransferDestinations().ToList());
|
public Task<List<TransferDestination>> GetTransferDestinationsAsync() => SessionAsync(ctx => ctx.GetTransferDestinations().ToList());
|
||||||
public TransferDestination? GetTransferDestinationById(Guid transferDestinationId) => Session(ctx => ctx.GetTransferDestinationById(transferDestinationId));
|
public TransferDestination? GetTransferDestinationById(Guid transferDestinationId) => Session(ctx => ctx.GetTransferDestinationById(transferDestinationId));
|
||||||
public Task<TransferDestination?> GetTransferDestinationByIdAsync(Guid transferDestinationId) => SessionAsync(ctx => ctx.GetTransferDestinationById(transferDestinationId));
|
public Task<TransferDestination?> GetTransferDestinationByIdAsync(Guid transferDestinationId) => SessionAsync(ctx => ctx.GetTransferDestinationById(transferDestinationId));
|
||||||
public string? GetTransferDestinationJsonById(Guid transferDestinationId) => Session(ctx => ctx.GetTransferDestinationById(transferDestinationId)?.ToJson());
|
public string? GetTransferDestinationJsonById(Guid transferDestinationId) => Session(ctx => ctx.GetTransferDestinationById(transferDestinationId)?.ToJson());
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
namespace TIAM.Services.Interfaces;
|
using TIAM.Entities.Transfers;
|
||||||
|
|
||||||
public interface ITransferApiControllerClient : IUserApiControllerCommon
|
namespace TIAM.Services.Interfaces;
|
||||||
|
|
||||||
|
public interface ITransferApiControllerClient : ITransferApiControllerCommon
|
||||||
{
|
{
|
||||||
|
Task GetTransferDestinationsInto(List<TransferDestination> intoDestinationList, Action? callback = null);
|
||||||
}
|
}
|
||||||
|
|
@ -26,7 +26,7 @@ public interface ITransferApiControllerCommon
|
||||||
#endregion Drivers
|
#endregion Drivers
|
||||||
|
|
||||||
#region TransferDestination
|
#region TransferDestination
|
||||||
public List<TransferDestination> GetTransferDestinations();
|
public Task<List<TransferDestination>> GetTransferDestinations();
|
||||||
public Task<TransferDestination?> GetTransferDestinationById(Guid transferDestinationId);
|
public Task<TransferDestination?> GetTransferDestinationById(Guid transferDestinationId);
|
||||||
public Task<TransferDestination?> CreateTransferDestination(TransferDestination transferDestination);
|
public Task<TransferDestination?> CreateTransferDestination(TransferDestination transferDestination);
|
||||||
public Task<TransferDestination?> UpdateTransferDestination(TransferDestination transferDestination);
|
public Task<TransferDestination?> UpdateTransferDestination(TransferDestination transferDestination);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
@using BlazorAnimation
|
@using AyCode.Core.Helpers
|
||||||
|
@using BlazorAnimation
|
||||||
@using TIAM.Core.Enums
|
@using TIAM.Core.Enums
|
||||||
@using TIAM.Entities.Addresses
|
@using TIAM.Entities.Addresses
|
||||||
@using TIAM.Entities.Products
|
@using TIAM.Entities.Products
|
||||||
|
|
@ -42,7 +43,7 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12 col-md-3">
|
<div class="col-12 col-md-3">
|
||||||
<h4>Information</h4>
|
<h4>Information</h4>
|
||||||
@RenderDetailsItem("fa-solid fa-user", "Contact Name", productProfile.FullName)
|
@RenderDetailsItem("fa-solid fa-user", "Contact Name", _productProfile.FullName)
|
||||||
@RenderDetailsItem("fa-solid fa-circle-info", "Description", Context.Description)
|
@RenderDetailsItem("fa-solid fa-circle-info", "Description", Context.Description)
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -79,16 +80,16 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
@{
|
@{
|
||||||
if (!isAddressTransferDestination)
|
if (!_isAddressTransferDestination)
|
||||||
{
|
{
|
||||||
<DxButton Click="() => SaveAsDestination(productProfile.Address, Context)" Text="Save as destination" RenderStyle="ButtonRenderStyle.Primary" />
|
<DxButton Click="() => SaveAsDestination(_productProfile.Address, Context)" Text="Save as destination" RenderStyle="ButtonRenderStyle.Primary" />
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-4"></div>
|
<div class="col-4"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p>@msg</p>
|
<p>@_msg</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -120,11 +121,11 @@
|
||||||
AccordionExpandMode ExpandMode { get; set; } = AccordionExpandMode.SingleOrNone;
|
AccordionExpandMode ExpandMode { get; set; } = AccordionExpandMode.SingleOrNone;
|
||||||
AccordionExpandCollapseAction ExpandCollapseAction { get; set; } = AccordionExpandCollapseAction.HeaderClick;
|
AccordionExpandCollapseAction ExpandCollapseAction { get; set; } = AccordionExpandCollapseAction.HeaderClick;
|
||||||
|
|
||||||
private Profile productProfile = new Profile();
|
private Profile _productProfile = new Profile();
|
||||||
private List<TransferDestination> destinations = new List<TransferDestination>();
|
private readonly List<TransferDestination> _destinations = [];
|
||||||
string msg;
|
string _msg;
|
||||||
private bool isSaveActive = false;
|
private bool _isSaveActive = false;
|
||||||
private bool isAddressTransferDestination = false;
|
private bool _isAddressTransferDestination = false;
|
||||||
|
|
||||||
private async Task CopyUrl(string url)
|
private async Task CopyUrl(string url)
|
||||||
{
|
{
|
||||||
|
|
@ -139,19 +140,20 @@
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
var productOwner = await AdminSignalRClient.GetByIdAsync<List<Company>>(SignalRTags.GetCompaniesById, Context.ServiceProviderId);
|
var productOwner = await AdminSignalRClient.GetByIdAsync<List<Company>>(SignalRTags.GetCompaniesById, Context.ServiceProviderId);
|
||||||
var ProductProfiles = await AdminSignalRClient.GetByIdAsync<List<Profile>>(SignalRTags.GetProfileById, Context.ProfileId);
|
var productProfiles = await AdminSignalRClient.GetByIdAsync<List<Profile>>(SignalRTags.GetProfileById, Context.ProfileId);
|
||||||
await AdminSignalRClient.GetAllIntoAsync<TransferDestination>(destinations, SignalRTags.GetAllTransferDestinations);
|
|
||||||
if (productOwner != null)
|
if (productOwner != null)
|
||||||
{
|
{
|
||||||
ImageSource = await ServiceProviderDataService.GetQRCodeByProductIdAndOwnerAffiliateIdAsync(new Guid[] { productOwner[0].AffiliateId, Context.Id });
|
ImageSource = await ServiceProviderDataService.GetQRCodeByProductIdAndOwnerAffiliateIdAsync([productOwner[0].AffiliateId, Context.Id]);
|
||||||
}
|
|
||||||
if (ProductProfiles != null)
|
|
||||||
{
|
|
||||||
productProfile = ProductProfiles[0];
|
|
||||||
var AddressId = productProfile.AddressId;
|
|
||||||
isAddressTransferDestination = CheckDestinations(AddressId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (productProfiles != null)
|
||||||
|
{
|
||||||
|
_productProfile = productProfiles[0];
|
||||||
|
_isAddressTransferDestination = CheckDestinations(_productProfile.AddressId);
|
||||||
|
}
|
||||||
|
|
||||||
|
AdminSignalRClient.GetTransferDestinationsInto(_destinations).Forget();
|
||||||
await base.OnInitializedAsync();
|
await base.OnInitializedAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -175,28 +177,15 @@
|
||||||
|
|
||||||
private bool CheckDestinations(Guid addressId)
|
private bool CheckDestinations(Guid addressId)
|
||||||
{
|
{
|
||||||
if (destinations != null)
|
return _destinations.Any(d => d.AddressId == addressId);
|
||||||
{
|
|
||||||
if (destinations.Any(d => d.AddressId == addressId))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task SaveAsDestination(Address address, Product product)
|
private async Task SaveAsDestination(Address address, Product product)
|
||||||
{
|
{
|
||||||
TransferDestination transferDestination = new TransferDestination();
|
var transferDestination = new TransferDestination();
|
||||||
transferDestination.Id = Guid.NewGuid();
|
transferDestination.Id = Guid.NewGuid();
|
||||||
transferDestination.Name = product.Name;
|
transferDestination.Name = product.Name;
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(product.Profile.Description))
|
if (!string.IsNullOrEmpty(product.Profile.Description))
|
||||||
{
|
{
|
||||||
transferDestination.Description = product.Profile.Description;
|
transferDestination.Description = product.Profile.Description;
|
||||||
|
|
@ -205,8 +194,10 @@
|
||||||
{
|
{
|
||||||
transferDestination.Description = "No description available";
|
transferDestination.Description = "No description available";
|
||||||
}
|
}
|
||||||
|
|
||||||
transferDestination.AddressId = address.Id;
|
transferDestination.AddressId = address.Id;
|
||||||
transferDestination.AddressString = address.AddressText;
|
transferDestination.AddressString = address.AddressText;
|
||||||
|
|
||||||
var result = await AdminSignalRClient.PostDataAsync<TransferDestination>(SignalRTags.CreateTransferDestination, transferDestination);
|
var result = await AdminSignalRClient.PostDataAsync<TransferDestination>(SignalRTags.CreateTransferDestination, transferDestination);
|
||||||
await InvokeAsync(StateHasChanged);
|
await InvokeAsync(StateHasChanged);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -143,7 +143,7 @@
|
||||||
[Parameter] public GridDetailExpandButtonDisplayMode DetailExpandButtonDisplayMode { get; set; } = GridDetailExpandButtonDisplayMode.Never;
|
[Parameter] public GridDetailExpandButtonDisplayMode DetailExpandButtonDisplayMode { get; set; } = GridDetailExpandButtonDisplayMode.Never;
|
||||||
[Parameter] public bool ShowManageButtons { get; set; } = false;
|
[Parameter] public bool ShowManageButtons { get; set; } = false;
|
||||||
|
|
||||||
private List<TransferDestination> destinations = [];
|
private List<TransferDestination> _destinations = [];
|
||||||
|
|
||||||
private ProductDetailGrid _productGrid = null!;
|
private ProductDetailGrid _productGrid = null!;
|
||||||
private LoggerClient<ProductDetailGridComponent> _logger = null!;
|
private LoggerClient<ProductDetailGridComponent> _logger = null!;
|
||||||
|
|
@ -157,7 +157,8 @@
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
_logger = new LoggerClient<ProductDetailGridComponent>(LogWriters.ToArray());
|
_logger = new LoggerClient<ProductDetailGridComponent>(LogWriters.ToArray());
|
||||||
AdminSignalRClient.GetAllIntoAsync<TransferDestination>(destinations, SignalRTags.GetAllTransferDestinations).Forget();
|
|
||||||
|
AdminSignalRClient.GetTransferDestinationsInto(_destinations).Forget();
|
||||||
//DataSource = new List<Address>();
|
//DataSource = new List<Address>();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -166,9 +167,9 @@
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
if(destinations!=null)
|
if(_destinations!=null)
|
||||||
{
|
{
|
||||||
if (destinations.Any(d => d.AddressId == addressId))
|
if (_destinations.Any(d => d.AddressId == addressId))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -144,7 +144,7 @@
|
||||||
[Parameter] public EventCallback<GridEditModelSavingEventArgs> OnGridEditModelSaving { get; set; }
|
[Parameter] public EventCallback<GridEditModelSavingEventArgs> OnGridEditModelSaving { get; set; }
|
||||||
[Parameter] public GridDetailExpandButtonDisplayMode DetailExpandButtonDisplayMode { get; set; } = GridDetailExpandButtonDisplayMode.Never;
|
[Parameter] public GridDetailExpandButtonDisplayMode DetailExpandButtonDisplayMode { get; set; } = GridDetailExpandButtonDisplayMode.Never;
|
||||||
|
|
||||||
private List<TransferDestination> destinations = [];
|
private List<TransferDestination> _destinations = [];
|
||||||
|
|
||||||
private ProductGrid _productGrid = null!;
|
private ProductGrid _productGrid = null!;
|
||||||
private LoggerClient<ProductGridComponent> _logger = null!;
|
private LoggerClient<ProductGridComponent> _logger = null!;
|
||||||
|
|
@ -159,16 +159,17 @@
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
_logger = new LoggerClient<ProductGridComponent>(LogWriters.ToArray());
|
_logger = new LoggerClient<ProductGridComponent>(LogWriters.ToArray());
|
||||||
AdminSignalRClient.GetAllIntoAsync<TransferDestination>(destinations, SignalRTags.GetAllTransferDestinations).Forget();
|
|
||||||
|
AdminSignalRClient.GetTransferDestinationsInto(_destinations).Forget();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool CheckDestinations(Guid addressId)
|
private bool CheckDestinations(Guid addressId)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
if (destinations != null)
|
if (_destinations != null)
|
||||||
{
|
{
|
||||||
if (destinations.Any(d => d.AddressId == addressId))
|
if (_destinations.Any(d => d.AddressId == addressId))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,10 +36,10 @@
|
||||||
<DxGridDataColumn FieldName="ProductId" Caption="ServiceId">
|
<DxGridDataColumn FieldName="ProductId" Caption="ServiceId">
|
||||||
<CellEditTemplate>
|
<CellEditTemplate>
|
||||||
@{
|
@{
|
||||||
var TransferDestinationToProductEditModel = (TransferDestinationToProduct)context.EditModel;
|
var transferDestinationToProductEditModel = (TransferDestinationToProduct)context.EditModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
<DxComboBox Data="@_products" TextFieldName="Name" ValueFieldName="Id" @bind-Value="TransferDestinationToProductEditModel.ProductId" ReadOnly="@ProductIdReadOnly"
|
<DxComboBox Data="@_products" TextFieldName="Name" ValueFieldName="Id" @bind-Value="transferDestinationToProductEditModel.ProductId" ReadOnly="@_productIdReadOnly"
|
||||||
SearchFilterCondition="ListSearchFilterCondition.Contains" SearchMode="ListSearchMode.AutoSearch">
|
SearchFilterCondition="ListSearchFilterCondition.Contains" SearchMode="ListSearchMode.AutoSearch">
|
||||||
</DxComboBox>
|
</DxComboBox>
|
||||||
</CellEditTemplate>
|
</CellEditTemplate>
|
||||||
|
|
@ -47,10 +47,10 @@
|
||||||
<DxGridDataColumn FieldName="TransferDestinationId">
|
<DxGridDataColumn FieldName="TransferDestinationId">
|
||||||
<CellEditTemplate>
|
<CellEditTemplate>
|
||||||
@{
|
@{
|
||||||
var TransferDestinationToProductEditModel = (TransferDestinationToProduct)context.EditModel;
|
var transferDestinationToProductEditModel = (TransferDestinationToProduct)context.EditModel;
|
||||||
|
|
||||||
}
|
}
|
||||||
<DxComboBox Data="@_transferDestinations" TextFieldName="Name" ValueFieldName="Id" @bind-Value="TransferDestinationToProductEditModel.TransferDestinationId" ReadOnly="@DestinationIdReadOnly"
|
<DxComboBox Data="@_destinations" TextFieldName="Name" ValueFieldName="Id" @bind-Value="transferDestinationToProductEditModel.TransferDestinationId" ReadOnly="@_destinationIdReadOnly"
|
||||||
SearchFilterCondition="ListSearchFilterCondition.Contains" SearchMode="ListSearchMode.AutoSearch">
|
SearchFilterCondition="ListSearchFilterCondition.Contains" SearchMode="ListSearchMode.AutoSearch">
|
||||||
</DxComboBox>
|
</DxComboBox>
|
||||||
</CellEditTemplate>
|
</CellEditTemplate>
|
||||||
|
|
@ -111,11 +111,11 @@
|
||||||
[Parameter] public bool IsProductIdReadonly { get; set; } = false;
|
[Parameter] public bool IsProductIdReadonly { get; set; } = false;
|
||||||
[Parameter] public bool IsDestinationIdReadonly { get; set; } = false;
|
[Parameter] public bool IsDestinationIdReadonly { get; set; } = false;
|
||||||
|
|
||||||
private bool ProductIdReadOnly = false;
|
private bool _productIdReadOnly = false;
|
||||||
private bool DestinationIdReadOnly = false;
|
private bool _destinationIdReadOnly = false;
|
||||||
|
|
||||||
//private bool? _isNewState = null;
|
//private bool? _isNewState = null;
|
||||||
private List<TransferDestination> _transferDestinations = [];
|
private List<TransferDestination> _destinations = [];
|
||||||
private List<Product> _products = [];
|
private List<Product> _products = [];
|
||||||
|
|
||||||
private LoggerClient<TransferDestinationToProductGridComponent> _logger = null!;
|
private LoggerClient<TransferDestinationToProductGridComponent> _logger = null!;
|
||||||
|
|
@ -123,8 +123,10 @@
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
_logger = new LoggerClient<TransferDestinationToProductGridComponent>(LogWriters.ToArray());
|
_logger = new LoggerClient<TransferDestinationToProductGridComponent>(LogWriters.ToArray());
|
||||||
AdminSignalRClient.GetAllIntoAsync(_transferDestinations, SignalRTags.GetAllTransferDestinations).Forget();
|
|
||||||
|
AdminSignalRClient.GetTransferDestinationsInto(_destinations).Forget();
|
||||||
AdminSignalRClient.GetAllIntoAsync(_products, SignalRTags.GetAllProducts).Forget();
|
AdminSignalRClient.GetAllIntoAsync(_products, SignalRTags.GetAllProducts).Forget();
|
||||||
|
|
||||||
base.OnInitialized();
|
base.OnInitialized();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -132,9 +134,9 @@
|
||||||
{
|
{
|
||||||
if (!e.IsNew)
|
if (!e.IsNew)
|
||||||
{
|
{
|
||||||
DestinationIdReadOnly = true;
|
_destinationIdReadOnly = true;
|
||||||
|
|
||||||
ProductIdReadOnly = true;
|
_productIdReadOnly = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -143,12 +145,12 @@
|
||||||
{
|
{
|
||||||
((TransferDestinationToProduct)(e.EditModel)).TransferDestinationId = (Guid)ContextIds[0];
|
((TransferDestinationToProduct)(e.EditModel)).TransferDestinationId = (Guid)ContextIds[0];
|
||||||
}
|
}
|
||||||
DestinationIdReadOnly = IsDestinationIdReadonly;
|
_destinationIdReadOnly = IsDestinationIdReadonly;
|
||||||
if (IsProductIdReadonly)
|
if (IsProductIdReadonly)
|
||||||
{
|
{
|
||||||
((TransferDestinationToProduct)(e.EditModel)).ProductId = (Guid)ContextIds[0];
|
((TransferDestinationToProduct)(e.EditModel)).ProductId = (Guid)ContextIds[0];
|
||||||
}
|
}
|
||||||
ProductIdReadOnly = IsProductIdReadonly;
|
_productIdReadOnly = IsProductIdReadonly;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!e.IsNew) return;
|
if (!e.IsNew) return;
|
||||||
|
|
@ -157,14 +159,14 @@
|
||||||
|
|
||||||
private void OnGridEditModelSaving(GridEditModelSavingEventArgs e)
|
private void OnGridEditModelSaving(GridEditModelSavingEventArgs e)
|
||||||
{
|
{
|
||||||
DestinationIdReadOnly = false;
|
_destinationIdReadOnly = false;
|
||||||
ProductIdReadOnly = false;
|
_productIdReadOnly = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void EditCanceling(GridEditCancelingEventArgs e)
|
private void EditCanceling(GridEditCancelingEventArgs e)
|
||||||
{
|
{
|
||||||
DestinationIdReadOnly = false;
|
_destinationIdReadOnly = false;
|
||||||
ProductIdReadOnly = false;
|
_productIdReadOnly = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
var TransferDestinationToProductEditModel = (TransferDestinationToProduct)context.EditModel;
|
var TransferDestinationToProductEditModel = (TransferDestinationToProduct)context.EditModel;
|
||||||
|
|
||||||
}
|
}
|
||||||
<DxComboBox Data="@_transferDestinations" TextFieldName="Name" ValueFieldName="Id" @bind-Value="TransferDestinationToProductEditModel.TransferDestinationId" ReadOnly="@(!_isNewState!.Value)"
|
<DxComboBox Data="@_destinations" TextFieldName="Name" ValueFieldName="Id" @bind-Value="TransferDestinationToProductEditModel.TransferDestinationId" ReadOnly="@(!_isNewState!.Value)"
|
||||||
SearchFilterCondition="ListSearchFilterCondition.Contains" SearchMode="ListSearchMode.AutoSearch">
|
SearchFilterCondition="ListSearchFilterCondition.Contains" SearchMode="ListSearchMode.AutoSearch">
|
||||||
</DxComboBox>
|
</DxComboBox>
|
||||||
</CellEditTemplate>
|
</CellEditTemplate>
|
||||||
|
|
@ -101,15 +101,17 @@
|
||||||
|
|
||||||
private LoggerClient<TransferDestinationToProductGridComponent> _logger = null!;
|
private LoggerClient<TransferDestinationToProductGridComponent> _logger = null!;
|
||||||
private bool? _isNewState = null;
|
private bool? _isNewState = null;
|
||||||
private List<TransferDestination> _transferDestinations = [];
|
private List<TransferDestination> _destinations = [];
|
||||||
private List<Product> _products = [];
|
private List<Product> _products = [];
|
||||||
|
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
_logger = new LoggerClient<TransferDestinationToProductGridComponent>(LogWriters.ToArray());
|
_logger = new LoggerClient<TransferDestinationToProductGridComponent>(LogWriters.ToArray());
|
||||||
AdminSignalRClient.GetAllIntoAsync(_transferDestinations, SignalRTags.GetAllTransferDestinations).Forget();
|
|
||||||
|
AdminSignalRClient.GetTransferDestinationsInto(_destinations).Forget();
|
||||||
AdminSignalRClient.GetAllIntoAsync(_products, SignalRTags.GetAllProducts).Forget();
|
AdminSignalRClient.GetAllIntoAsync(_products, SignalRTags.GetAllProducts).Forget();
|
||||||
|
|
||||||
await base.OnInitializedAsync();
|
await base.OnInitializedAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
<DxTabPage Text="Preset addresses">
|
<DxTabPage Text="Preset addresses">
|
||||||
|
|
||||||
|
|
||||||
<DxComboBox Data="@Data"
|
<DxComboBox Data="@_destinations"
|
||||||
CssClass="p-3"
|
CssClass="p-3"
|
||||||
InputCssClass="@CssClass"
|
InputCssClass="@CssClass"
|
||||||
@bind-Value="@SelectedDestination"
|
@bind-Value="@SelectedDestination"
|
||||||
|
|
@ -56,7 +56,7 @@
|
||||||
</DxTabPage>
|
</DxTabPage>
|
||||||
</DxTabs>
|
</DxTabs>
|
||||||
|
|
||||||
<p>Selected address: @Address</p>
|
<p>Selected address: @_address</p>
|
||||||
|
|
||||||
|
|
||||||
@* <p class="demo-text cw-480 mt-3">
|
@* <p class="demo-text cw-480 mt-3">
|
||||||
|
|
@ -81,18 +81,16 @@
|
||||||
|
|
||||||
[Parameter] public Guid? ProductId { get; set; }
|
[Parameter] public Guid? ProductId { get; set; }
|
||||||
|
|
||||||
public List<TransferDestination> Destinations = [];
|
|
||||||
|
|
||||||
public DxTextBox TextField;
|
public DxTextBox TextField;
|
||||||
|
|
||||||
TransferDestination Result;
|
TransferDestination Result;
|
||||||
|
|
||||||
ILogger _logger;
|
ILogger _logger;
|
||||||
|
|
||||||
List<TransferDestination> Data { get; set; } = [];
|
readonly List<TransferDestination> _destinations = [];
|
||||||
|
|
||||||
private string Address { get; set; }
|
private string _address = string.Empty;
|
||||||
private string ValidationMessage { get; set; }
|
private string _validationMessage = string.Empty;
|
||||||
|
|
||||||
private TransferDestination? _selectedDestination;
|
private TransferDestination? _selectedDestination;
|
||||||
public TransferDestination? SelectedDestination
|
public TransferDestination? SelectedDestination
|
||||||
|
|
@ -129,25 +127,19 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_adminSignalRClient.GetAllAsync<List<TransferDestination>>(SignalRTags.GetAllTransferDestinations, response =>
|
_adminSignalRClient.GetTransferDestinationsInto(_destinations, () =>
|
||||||
{
|
{
|
||||||
Data.Clear();
|
SelectedDestination = productAddressId.IsNullOrEmpty() ? _destinations.FirstOrDefault() : _destinations.FirstOrDefault(x => x.AddressId == productAddressId);
|
||||||
SelectedDestination = null;
|
|
||||||
|
|
||||||
if (response.Status != SignalResponseStatus.Success || response.ResponseData == null)
|
|
||||||
{
|
|
||||||
_logger.Error($"OnInitializedAsync->GetAllTransferDestinations; response.Status: {response.Status}");
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
|
|
||||||
Data.AddRange(response.ResponseData);
|
|
||||||
|
|
||||||
_logger.Debug($"TransferDestinations Data length: {Data.Count}");
|
|
||||||
SelectedDestination = productAddressId.IsNullOrEmpty() ? Data.FirstOrDefault() : Data.FirstOrDefault(x => x.AddressId == productAddressId);
|
|
||||||
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}).Forget();
|
}).Forget();
|
||||||
|
|
||||||
|
// _adminSignalRClient.GetAllIntoAsync(_destinations, SignalRTags.GetAllTransferDestinations, null, resultData =>
|
||||||
|
// {
|
||||||
|
// if (resultData == null) SelectedDestination = null;
|
||||||
|
// else SelectedDestination = productAddressId.IsNullOrEmpty() ? _destinations.FirstOrDefault() : _destinations.FirstOrDefault(x => x.AddressId == productAddressId);
|
||||||
|
|
||||||
|
// return Task.CompletedTask;
|
||||||
|
// }).Forget();
|
||||||
|
|
||||||
//await _adminSignalRClient.GetAllIntoAsync(Data, SignalRTags.GetAllTransferDestinations);
|
//await _adminSignalRClient.GetAllIntoAsync(Data, SignalRTags.GetAllTransferDestinations);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -170,13 +162,13 @@
|
||||||
|
|
||||||
public void OnSelectedAddressChanged(string address)
|
public void OnSelectedAddressChanged(string address)
|
||||||
{
|
{
|
||||||
Address = address;
|
_address = address;
|
||||||
OnSliderChanged.InvokeAsync(address);
|
OnSliderChanged.InvokeAsync(address);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetNewDestination(string address)
|
public void SetNewDestination(string address)
|
||||||
{
|
{
|
||||||
Address = address;
|
_address = address;
|
||||||
OnSliderChanged.InvokeAsync(address);
|
OnSliderChanged.InvokeAsync(address);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -497,64 +497,69 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
[Tags("In-Progress", "Product")]
|
[Tags("In-Progress", "Product")]
|
||||||
public async Task<IActionResult> GetQRCodeByProductId([FromBody] Guid productId)
|
public async Task<IActionResult> GetQRCodeByProductId([FromBody] Guid productId)
|
||||||
{
|
{
|
||||||
_logger.Info(@"GetQRCode called");
|
_logger.Info($"GetQRCode called; productId: {productId}");
|
||||||
|
|
||||||
|
return BadRequest("OBSOLATE");
|
||||||
|
if (productId.IsNullOrEmpty()) return BadRequest("Product is required");
|
||||||
|
|
||||||
if (productId == Guid.Empty)
|
|
||||||
{
|
|
||||||
return BadRequest("Product is required");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//var result = _serviceProviderDal.GetQRCodeAsync(productId);
|
//var result = _serviceProviderDal.GetQRCodeAsync(productId);
|
||||||
|
|
||||||
var qrGenerator = new QRCodeGenerator();
|
var qrGenerator = new QRCodeGenerator();
|
||||||
var qrCodeData = qrGenerator.CreateQrCode($"https://touriam.com/{productId}", QRCodeGenerator.ECCLevel.Q);
|
var qrCodeData = qrGenerator.CreateQrCode($"https://touriam.com/{productId}", QRCodeGenerator.ECCLevel.Q);
|
||||||
var qrCode = new QRCode(qrCodeData);
|
var qrCode = new QRCode(qrCodeData);
|
||||||
|
|
||||||
//Bitmap qrCodeImage = qrCode.GetGraphic(20);
|
//Bitmap qrCodeImage = qrCode.GetGraphic(20);
|
||||||
//var rootpath = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "assets");
|
//var rootpath = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "assets");
|
||||||
var rootpath = System.IO.Path.Combine(env.WebRootPath, "assets");
|
var rootpath = Path.Combine(env.WebRootPath, "assets");
|
||||||
var qrCodeImage = qrCode.GetGraphic(20, Color.DarkMagenta, Color.White, (Bitmap)Bitmap.FromFile(rootpath + "/myimage.png"));
|
var qrCodeImage = qrCode.GetGraphic(20, Color.DarkMagenta, Color.White, (Bitmap)Bitmap.FromFile(rootpath + "/myimage.png"));
|
||||||
_logger.Info($@"qrCodeLogo: {rootpath}/myimage.png");
|
|
||||||
var ms = new MemoryStream();
|
_logger.Debug($@"qrCodeLogo: {rootpath}/myimage.png");
|
||||||
|
|
||||||
|
byte[] byteImage;
|
||||||
|
using (var ms = new MemoryStream())
|
||||||
|
{
|
||||||
qrCodeImage.Save(ms, ImageFormat.Jpeg);
|
qrCodeImage.Save(ms, ImageFormat.Jpeg);
|
||||||
var byteImage = ms.ToArray();
|
byteImage = ms.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
var sigBase64 = Convert.ToBase64String(byteImage); // Get Base64
|
var sigBase64 = Convert.ToBase64String(byteImage); // Get Base64
|
||||||
|
|
||||||
return Ok(sigBase64);
|
return Ok(sigBase64);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Route(APIUrls.GetQrCodeByProductIdAndOwnerAffiliateIdRouteName)]
|
[Route(APIUrls.GetQrCodeByProductIdAndOwnerAffiliateIdRouteName)]
|
||||||
public async Task<IActionResult> GetQrCodeByProductIdAndOwnerAffiliateId([FromBody] Guid[] Ids)
|
public async Task<IActionResult> GetQrCodeByProductIdAndOwnerAffiliateId([FromBody] Guid[] ids)
|
||||||
{
|
{
|
||||||
_logger.Info(@"GetQRCode called");
|
_logger.Info(@"GetQRCode called");
|
||||||
|
|
||||||
if (Ids[0].IsNullOrEmpty() || Ids[1].IsNullOrEmpty())
|
if (ids[0].IsNullOrEmpty() || ids[1].IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
return BadRequest("Product is required");
|
return BadRequest("Product is required");
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
var qrGenerator = new QRCodeGenerator();
|
var qrGenerator = new QRCodeGenerator();
|
||||||
var qrCodeData = qrGenerator.CreateQrCode($"{Setting.BaseUrl}/public/transfer/{Ids[0]}/{Ids[1]}", QRCodeGenerator.ECCLevel.Q);
|
var qrCodeData = qrGenerator.CreateQrCode($"{Setting.BaseUrl}/public/transfer/{ids[0]}/{ids[1]}", QRCodeGenerator.ECCLevel.Q);
|
||||||
var qrCode = new QRCode(qrCodeData);
|
var qrCode = new QRCode(qrCodeData);
|
||||||
|
|
||||||
//Bitmap qrCodeImage = qrCode.GetGraphic(20);
|
//Bitmap qrCodeImage = qrCode.GetGraphic(20);
|
||||||
//var rootpath = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "assets");
|
//var rootpath = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "assets");
|
||||||
var rootpath = System.IO.Path.Combine(env.WebRootPath, "assets");
|
var rootpath = Path.Combine(env.WebRootPath, "assets");
|
||||||
var qrCodeImage = qrCode.GetGraphic(20, Color.DarkMagenta, Color.White, (Bitmap)Bitmap.FromFile(rootpath + "/myimage.png"));
|
var qrCodeImage = qrCode.GetGraphic(20, Color.DarkMagenta, Color.White, (Bitmap)Bitmap.FromFile(rootpath + "/myimage.png"));
|
||||||
|
|
||||||
_logger.Info($@"qrCodeLogo: {rootpath}/myimage.png");
|
_logger.Info($@"qrCodeLogo: {rootpath}/myimage.png");
|
||||||
var ms = new MemoryStream();
|
|
||||||
|
byte[] byteImage;
|
||||||
|
using (var ms = new MemoryStream())
|
||||||
|
{
|
||||||
qrCodeImage.Save(ms, ImageFormat.Jpeg);
|
qrCodeImage.Save(ms, ImageFormat.Jpeg);
|
||||||
var byteImage = ms.ToArray();
|
byteImage = ms.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
var sigBase64 = Convert.ToBase64String(byteImage); // Get Base64
|
var sigBase64 = Convert.ToBase64String(byteImage); // Get Base64
|
||||||
|
|
||||||
return Ok(sigBase64);
|
return Ok(sigBase64);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
@ -77,9 +77,9 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
[Route(APIUrls.GetTransferDestinationsRouteName)]
|
[Route(APIUrls.GetTransferDestinationsRouteName)]
|
||||||
[SignalR(SignalRTags.GetAllTransferDestinations)]
|
[SignalR(SignalRTags.GetAllTransferDestinations)]
|
||||||
public List<TransferDestination> GetTransferDestinations()
|
public async Task<List<TransferDestination>> GetTransferDestinations()
|
||||||
{
|
{
|
||||||
return _adminDal.GetTransferDestinations();
|
return await _adminDal.GetTransferDestinationsAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
//[Authorize]
|
//[Authorize]
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
using AyCode.Core.Consts;
|
using AyCode.Core.Consts;
|
||||||
using AyCode.Core.Helpers;
|
using AyCode.Core.Helpers;
|
||||||
using AyCode.Services.Loggers;
|
using AyCode.Services.Loggers;
|
||||||
using AyCode.Services.SignalRs;
|
|
||||||
using TIAM.Entities.Drivers;
|
using TIAM.Entities.Drivers;
|
||||||
using TIAM.Entities.Transfers;
|
using TIAM.Entities.Transfers;
|
||||||
using TIAM.Entities.Users;
|
using TIAM.Entities.Users;
|
||||||
|
|
@ -58,19 +57,7 @@ namespace TIAMWebApp.Shared.Application.Services
|
||||||
{
|
{
|
||||||
Logger.Detail($"GetAllCarsByProductIdAsync client called; productId: {productId}");
|
Logger.Detail($"GetAllCarsByProductIdAsync client called; productId: {productId}");
|
||||||
|
|
||||||
//TODO: AdminSignalRClient.GetAllIntoAsync<Car>(_cars, SignalRTags.GetAllCarsByProductId, [productId]) - J.
|
return GetAllIntoAsync(intoCars, SignalRTags.GetAllCarsByProductId, [productId], callback);
|
||||||
return GetAllAsync<List<Car>>(SignalRTags.GetAllCarsByProductId, response =>
|
|
||||||
{
|
|
||||||
intoCars.Clear();
|
|
||||||
if (response is { Status: SignalResponseStatus.Success, ResponseData: not null })
|
|
||||||
{
|
|
||||||
intoCars.AddRange(response.ResponseData);
|
|
||||||
}
|
|
||||||
|
|
||||||
callback?.Invoke();
|
|
||||||
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}, [productId]);
|
|
||||||
}
|
}
|
||||||
#endregion ICompanyApiController
|
#endregion ICompanyApiController
|
||||||
|
|
||||||
|
|
@ -137,10 +124,12 @@ namespace TIAMWebApp.Shared.Application.Services
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<TransferDestination> GetTransferDestinations()
|
public async Task<List<TransferDestination>> GetTransferDestinations()
|
||||||
{
|
=> await GetAllAsync<List<TransferDestination>>(SignalRTags.GetAllTransferDestinations) ?? [];
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
public Task GetTransferDestinationsInto(List<TransferDestination> intoDestinationList, Action? callback = null)
|
||||||
|
=> GetAllIntoAsync(intoDestinationList, SignalRTags.GetAllTransferDestinations, null, callback);
|
||||||
|
|
||||||
|
|
||||||
public async Task<TransferDestination?> GetTransferDestinationById(Guid transferDestinationId)
|
public async Task<TransferDestination?> GetTransferDestinationById(Guid transferDestinationId)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -199,8 +199,6 @@ namespace TIAMWebApp.Shared.Application.Services
|
||||||
|
|
||||||
public async Task<string> GetQRCodeByProductIdAsync(Guid productId)
|
public async Task<string> GetQRCodeByProductIdAsync(Guid productId)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
var url = APIUrls.GetQrCodeByProductId;
|
var url = APIUrls.GetQrCodeByProductId;
|
||||||
var response = await http.PostAsJsonAsync(url, productId);
|
var response = await http.PostAsJsonAsync(url, productId);
|
||||||
if (response.IsSuccessStatusCode)
|
if (response.IsSuccessStatusCode)
|
||||||
|
|
@ -215,11 +213,10 @@ namespace TIAMWebApp.Shared.Application.Services
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<string> GetQRCodeByProductIdAndOwnerAffiliateIdAsync(Guid[] Ids)
|
public async Task<string> GetQRCodeByProductIdAndOwnerAffiliateIdAsync(Guid[] ids)
|
||||||
{
|
{
|
||||||
|
|
||||||
var url = APIUrls.GetQrCodeByProductIdAndOwnerAffiliateId;
|
var url = APIUrls.GetQrCodeByProductIdAndOwnerAffiliateId;
|
||||||
var response = await http.PostAsJsonAsync(url, Ids);
|
var response = await http.PostAsJsonAsync(url, ids);
|
||||||
if (response.IsSuccessStatusCode)
|
if (response.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
var result = await response.Content.ReadAsStringAsync();
|
var result = await response.Content.ReadAsStringAsync();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue