bleh
This commit is contained in:
parent
434b143d9b
commit
f6289c17a6
|
|
@ -1,4 +1,5 @@
|
|||
@using BlazorAnimation
|
||||
@using TIAMSharedUI.Shared.Components.Cards
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@inject IServiceProviderDataService ServiceProviderDataService
|
||||
|
||||
|
|
@ -8,7 +9,7 @@
|
|||
<div class="card-header py-2 px-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="fw-bold text-body">Hotel details</span>
|
||||
<span class="fw-bold text-body">Transfers</span>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
|
@ -17,26 +18,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="card-body card-admin-body py-2 px-4">
|
||||
<div class="d-flex flex-row mb-4 pb-2">
|
||||
<div class="flex-fill">
|
||||
<h4 class="bold">Your QR code</h4>
|
||||
<p class="text-muted"> Use this in printed material, to gain referrals</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="api/pictures/1" download="data:image/png;base64,@ImageSource" target="_top">
|
||||
|
||||
<img class="align-self-center img-fluid"
|
||||
src="data:image/png;base64,@ImageSource" width="128" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="d-flex flex-column mb-4 pb-2">
|
||||
<h4> Hotel name: <span class="small text-muted"> Example hotel </span></h4>
|
||||
<h4> Address: <span class="small text-muted"> Budapest, Minta u. 46 </span></h4>
|
||||
<h4> Phone number: <span class="small text-muted"> +36 1 123 4567</span></h4>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="card-footer py-2 px-4">
|
||||
<div class="d-flex justify-content-between">
|
||||
|
|
@ -54,11 +36,9 @@
|
|||
@code {
|
||||
[Parameter] public Guid ContextID { get; set; }
|
||||
|
||||
public string ImageSource { get; set; } = "";
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
ImageSource = await ServiceProviderDataService.GetQRCodeByProductIdAsync(Guid.NewGuid());
|
||||
|
||||
await base.OnInitializedAsync();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@ using TIAM.Entities.Addresses;
|
|||
using TIAM.Entities.Transfers;
|
||||
using TIAM.Services;
|
||||
|
||||
namespace TIAMSharedUI.Shared.Components.Grids;
|
||||
namespace TIAMSharedUI.Shared.Components.Cards;
|
||||
|
||||
public class AddressCard : TiamGrid<Address>
|
||||
public class AddressCard : CardBase<Address>
|
||||
{
|
||||
public AddressCard() : base()
|
||||
{
|
||||
|
|
@ -15,7 +15,7 @@ public class AddressCard : TiamGrid<Address>
|
|||
//RemoveMessageTag = SignalRTags.RemoveAddress; - nem törlünk címet - J.
|
||||
}
|
||||
|
||||
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||
protected override Task OnParametersSetAsync()
|
||||
{
|
||||
if (!IsFirstInitializeParameters)
|
||||
{
|
||||
|
|
@ -26,6 +26,6 @@ public class AddressCard : TiamGrid<Address>
|
|||
//etc...
|
||||
}
|
||||
|
||||
return base.SetParametersAsyncCore(parameters);
|
||||
return base.OnParametersSetAsync();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,180 @@
|
|||
using AyCode.Blazor.Components.Services;
|
||||
using AyCode.Core.Enums;
|
||||
using AyCode.Core.Helpers;
|
||||
using AyCode.Core.Interfaces;
|
||||
using AyCode.Core;
|
||||
using AyCode.Services.SignalRs;
|
||||
using DevExpress.Blazor;
|
||||
using DevExpress.ClipboardSource.SpreadsheetML;
|
||||
using DevExpress.Data.Design;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TIAMSharedUI.Shared.Components.Grids;
|
||||
using TIAMWebApp.Shared.Application.Utility;
|
||||
using AyCode.Core.Extensions;
|
||||
using AyCode.Utils.Extensions;
|
||||
|
||||
namespace TIAMSharedUI.Shared.Components.Cards
|
||||
{
|
||||
public class CardBase<TDataItem> : ComponentBase where TDataItem : class, IId<Guid>
|
||||
{
|
||||
public CardBase() { }
|
||||
|
||||
protected bool IsFirstInitializeParameters;
|
||||
private SignalRDataSource<TDataItem> _dataSource = null!;
|
||||
private IList<TDataItem> _dataSourceParam = [];
|
||||
private string _cardLogName;
|
||||
|
||||
|
||||
[Parameter] public LoggerClient Logger { get; set; }
|
||||
[Parameter] public string CardName { get; set; }
|
||||
[Parameter] public Guid[]? 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;
|
||||
LoadDataSourceAsync().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; }
|
||||
|
||||
[Parameter] public EventCallback<IList<TDataItem>> OnDataSourceChanged { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// After the server has responded!
|
||||
/// </summary>
|
||||
[Parameter]
|
||||
public EventCallback<TDataItem> OnCardItemChanged { 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)
|
||||
{
|
||||
Logger.Error($"{_cardLogName} Use the DataSource parameter instead of Data!");
|
||||
throw new NullReferenceException($"{_cardLogName} Use the DataSource parameter instead of Data!");
|
||||
}
|
||||
|
||||
return _dataSource!;
|
||||
}
|
||||
set => _dataSourceParam = value;
|
||||
}
|
||||
|
||||
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);
|
||||
_dataSource.FilterText = FilterText;
|
||||
|
||||
//Data = _dataSource;
|
||||
|
||||
_dataSource.OnDataSourceLoaded += OnDataSourceLoaded;
|
||||
|
||||
await base.OnInitializedAsync();
|
||||
}
|
||||
|
||||
|
||||
private Task OnDataSourceLoaded()
|
||||
{
|
||||
Logger.Debug($"{_cardLogName} OnDataSourceLoaded; Count: {_dataSource.Count}");
|
||||
|
||||
//_dataSource.LoadItem(_dataSource.First().Id).Forget();
|
||||
return OnDataSourceChanged.InvokeAsync(_dataSource);
|
||||
}
|
||||
|
||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
{
|
||||
await base.OnAfterRenderAsync(firstRender);
|
||||
|
||||
if (firstRender)
|
||||
{
|
||||
if (_dataSourceParam.Count > 0) await _dataSource.LoadDataSource(_dataSourceParam);
|
||||
else _dataSource.LoadDataSourceAsync(true).Forget();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected override Task OnParametersSetAsync()
|
||||
|
||||
{
|
||||
if (!IsFirstInitializeParameters)
|
||||
{
|
||||
//if (typeof(TDataItem) is IId<Guid> || typeof(TDataItem) is IId<int>)
|
||||
|
||||
|
||||
IsFirstInitializeParameters = true;
|
||||
}
|
||||
|
||||
return Task.FromResult(base.OnParametersSetAsync);
|
||||
}
|
||||
|
||||
|
||||
protected override void OnParametersSet()
|
||||
{
|
||||
base.OnParametersSet();
|
||||
|
||||
if (CardName.IsNullOrWhiteSpace()) CardName = $"{typeof(TDataItem).Name}Card";
|
||||
|
||||
_cardLogName = $"[{CardName}]";
|
||||
|
||||
}
|
||||
|
||||
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 LoadDataSourceAsync()
|
||||
{
|
||||
return _dataSource.LoadDataSourceAsync(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,20 +2,19 @@
|
|||
using TIAM.Entities.Addresses;
|
||||
using TIAM.Entities.Transfers;
|
||||
using TIAM.Services;
|
||||
using TIAMSharedUI.Shared.Components.Cards;
|
||||
|
||||
namespace TIAMSharedUI.Shared.Components.Grids;
|
||||
namespace TIAMSharedUI.Shared.Components.Cards;
|
||||
|
||||
public class TransferCard : TiamGrid<Address>
|
||||
public class TransferCard : CardBase<Transfer>
|
||||
{
|
||||
public TransferCard() : base()
|
||||
{
|
||||
GetAllMessageTag = SignalRTags.GetTransfers;
|
||||
//AddMessageTag = SignalRTags.AddAddress;
|
||||
UpdateMessageTag = SignalRTags.UpdateAddress;
|
||||
//RemoveMessageTag = SignalRTags.RemoveAddress; - nem törlünk címet - J.
|
||||
GetAllMessageTag = SignalRTags.GetTransfersByCompanyId;
|
||||
|
||||
}
|
||||
|
||||
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||
protected override Task OnParametersSetAsync()
|
||||
{
|
||||
if (!IsFirstInitializeParameters)
|
||||
{
|
||||
|
|
@ -26,6 +25,6 @@ public class TransferCard : TiamGrid<Address>
|
|||
//etc...
|
||||
}
|
||||
|
||||
return base.SetParametersAsyncCore(parameters);
|
||||
return base.OnParametersSetAsync();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue