TourIAm/TIAMSharedUI/Pages/User/MyServiceProviders.razor

180 lines
6.9 KiB
Plaintext

@page "/user/properties"
@using TIAM.Entities.ServiceProviders
@using TIAM.Resources
@using TIAMSharedUI.Shared
@using TIAMWebApp.Shared.Application.Interfaces
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
@using TIAMWebApp.Shared.Application.Utility
@using AyCode.Services.Loggers
@using TIAMWebApp.Shared.Application.Services
@using AyCode.Core.Helpers
@using TIAMSharedUI.Shared.Components.Grids
@layout AdminLayout
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
@inject IStringLocalizer<TIAMResources> localizer
@inject ISessionService SessionService
@inject IServiceProviderDataService ServiceProviderDataService
@inject AdminSignalRClient AdminSignalRClient;
<h3>Properties</h3>
<div class="container">
<div class="row">
<div class=" col-12 col-xl-6">
<div class="card glass card-admin" style="border-radius: 16px;">
<div class="card-header py-2 px-4">
<div class="d-flex justify-content-between align-items-center">
<div>
<span class="fw-bold text-body">Service providers list</span>
</div>
<div>
<!--div class="target-container" @onclick="@(() => EulaVisible = true)">
<button class="btn btn-primary">Create</button>
</div-->
</div>
</div>
</div>
<div class="card-body card-admin-body py-2 px-4">
<div class="d-flex flex-row mb-4 pb-2">
@*<DxPopup CssClass="popup-demo-events"
@bind-Visible="@EulaVisible"
ShowFooter="true"
CloseOnEscape="false"
CloseOnOutsideClick="false"
ShowCloseButton="true"
HeaderText="@localizer.GetString(ResourceKeys.ServiceProviderTitle)"
Closing="EulaPopupClosing"
Closed="EulaPopupClosed">
<BodyContentTemplate>
<InputWizard Data=@myModel OnSubmit="SubmitForm" SubmitButtonText=@ResourceKeys.ButtonSave TitleResourceString=@ResourceKeys.ServiceProviderTitle></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=@localizer.GetString(ResourceKeys.ButtonCancel) Click="CancelCreateClick" />
</div>
</FooterContentTemplate>
</DxPopup>*@
<CompanyGrid @ref="_gridCompany"
Logger="_logger"
SignalRClient="AdminSignalRClient"
PageSize="12"
KeyFieldName="Id"
ValidationEnabled="false"
DetailRowDisplayMode="GridDetailRowDisplayMode.Always"
CustomizeEditModel="Grid_CustomizeEditModel"
EditMode="GridEditMode.EditRow"
KeyboardNavigationEnabled="true">
<Columns>
<DxGridCommandColumn Width="160px" />
<DxGridDataColumn FieldName="Id" MinWidth="80">
<CellDisplayTemplate>
<a class="d-block text-left" href="user/serviceprovider/@context.Value.ToString()">@context.Value</a>
</CellDisplayTemplate>
</DxGridDataColumn>
<DxGridDataColumn FieldName="Name" MinWidth="80" />
<DxGridDataColumn FieldName="OwnerId" MinWidth="80" />
</Columns>
<DetailRowTemplate>
@{
<text>@(((Company)context.DataItem).Profile.Address.AddressText)</text>
}
</DetailRowTemplate>
</CompanyGrid>
</div>
<div class="d-flex flex-row mb-4 pb-2">
<h4> Some <span class="small text-muted"> conclusion </span></h4>
</div>
</div>
</div>
</div>
<div class=" col-12 col-xl-6">
</div>
</div>
</div>
@code {
private LoggerClient<MyServiceProviders> _logger;
private CompanyGrid _gridCompany;
public ServiceProviderWizardModel myModel = new ServiceProviderWizardModel();
bool EulaAccepted { get; set; }
bool EulaVisible { get; set; }
void CancelCreateClick()
{
EulaVisible = false;
}
void EulaPopupClosed()
{
EulaAccepted = false;
}
void EulaPopupClosing(PopupClosingEventArgs args)
{
myModel = new ServiceProviderWizardModel();
}
//-----------------------------------------------------------------------------------
public async Task SubmitForm(object Result)
{
//await WizardProcessor.ProcessWizardAsync(Result.GetType(), Result);
_logger.Info($"Submitted nested form: {Result.GetType().FullName}");
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
await _gridCompany.StartEditRowAsync(0);
}
void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e)
{
if (e.IsNew)
{
var newEmployee = (Company)e.EditModel;
newEmployee.Name = "John";
newEmployee.OwnerId = Guid.NewGuid();
}
}
protected override Task OnInitializedAsync()
{
_logger = new LoggerClient<MyServiceProviders>(LogWriters.ToArray());
var myId = SessionService.User.UserId;
ServiceProviderDataService.GetPropertiesByOwnerIdAsync(myId, companyPropertiesByOwner =>
{
_logger.DetailConditional($"companyPropertiesByOwner count: {companyPropertiesByOwner?.Count.ToString() ?? "NULL"}");
}).Forget();
return base.OnInitializedAsync();
}
}