This commit is contained in:
jozsef.b@aycode.com 2024-05-27 20:01:16 +02:00
commit 07a36c2329
14 changed files with 282 additions and 101 deletions

View File

@ -236,7 +236,12 @@ namespace TIAM.Database.DataLayers.Admins
public Task<List<Company>> GetServiceProvidersAsync() public Task<List<Company>> GetServiceProvidersAsync()
{ {
return Context.ServiceProviders.ToListAsync(); return SessionAsync(ctx => ctx.ServiceProviders.ToList());
}
public Task<string> GetServiceProvidersAsyncJson()
{
return SessionAsync(ctx => ctx.ServiceProviders.ToJson());
} }
public virtual Task<Company?> GetServiceProviderByIdAsync(Guid id) public virtual Task<Company?> GetServiceProviderByIdAsync(Guid id)

View File

@ -43,14 +43,24 @@ namespace TIAMMobileApp.Services
if (userModelDto != null) if (userModelDto != null)
{ {
Dictionary<Guid, string> userProperties = new Dictionary<Guid, string>();
//get user's properties //get user's properties
var hasProperties = await serviceProviderDataService.GetPropertiesByOwnerIdAsync(userModelDto.Id); bool hasProperties = userModelDto.ServiceProviders.Count > 0 ? true : userModelDto.ServiceProviders.Count == 0 ? false : false;
if (hasProperties)
{
if (hasProperties != null) //var Properties = await serviceProviderDataService.GetPropertiesByOwnerIdAsync(userModelDto.Id);
_logger.Info($"{hasProperties.Count} properties found"); var Properties = userModelDto.ServiceProviders;
_logger.Info($"{Properties.Count} properties found");
foreach ( var property in Properties )
{
userProperties.Add(property.Id, property.Name);
}
}
//create user session model //create user session model
var user = new UserSessionModel(userModelDto.Id, UserType.User, userModelDto, hasProperties, 1); var user = new UserSessionModel(userModelDto.Id, UserType.User, userModelDto, userProperties, 1);
return user; return user;
} }
else else

View File

@ -422,6 +422,7 @@ new HeroSliderItem
"Destination", "Destination",
"PickupAddress", "PickupAddress",
"ProductId", "ProductId",
"PaymentId",
"FlightNumber", "FlightNumber",
"TripDate", "TripDate",
"FirstName", "FirstName",

View File

@ -131,6 +131,7 @@
"Id", "Id",
"UserId", "UserId",
"ProductId", "ProductId",
"PaymentId",
"FirstName", "FirstName",
"LastName", "LastName",
"UserProductMappingId", "UserProductMappingId",

View File

@ -97,6 +97,7 @@ new HeroSliderItem
"Id", "Id",
"UserId", "UserId",
"ProductId", "ProductId",
"PaymentId",
"TripDate", "TripDate",
"FirstName", "FirstName",
"LastName", "LastName",

View File

@ -0,0 +1,119 @@
@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.Services.Loggers
@using TIAM.Core.Loggers
@inject IServiceProviderDataService ServiceProviderDataService
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
<div class="mb-2">
UserProductMapping
</div>
<DxGrid Data="_detailGridData"
PageSize="5"
AutoExpandAllGroupRows="true"
KeyboardNavigationEnabled="KeyboardNavigationEnabled"
KeyFieldName="Id"
ValidationEnabled="false"
CustomizeEditModel="CustomizeEditModel"
EditModelSaving="EditModelSaving"
DataItemDeleting="DataItemDeleting"
EditMode="GridEditMode.EditForm"
ColumnResizeMode="GridColumnResizeMode.NextColumn"
ShowFilterRow="true">
<Columns>
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
<DxGridDataColumn FieldName="UserId" />
<DxGridDataColumn FieldName="ServiceProviderId" Width="40%" />
@* <DxGridDataColumn FieldName="Permissions" /> *@
</Columns>
<EditFormTemplate Context="EditFormContext">
@{
var transfer2 = (UserToCompany)EditFormContext.EditModel;
}
<DxFormLayout CssClass="w-100">
<DxFormLayoutItem Caption="UserId" ColSpanMd="4">
@EditFormContext.GetEditor("UserId")
</DxFormLayoutItem>
<DxFormLayoutItem Caption="User:" ColSpanMd="4">
<DxComboBox Data="@_availableUsers" TextFieldName="Name" @bind-Value="((UserToCompany)EditFormContext.EditModel).UserId" />
</DxFormLayoutItem>
@* <DxFormLayoutItem Caption="Permissions" ColSpanMd="4">
@EditFormContext.GetEditor("Permissions")
</DxFormLayoutItem> *@
</DxFormLayout>
</EditFormTemplate>
</DxGrid>
@code {
[Parameter]
public bool KeyboardNavigationEnabled { get; set; }
[Parameter]
public Company CurrentCompany { get; set; }
List<UserToCompany> _detailGridData;
List<User> _availableUsers;
public UserModelDtoDetail UserInfo;
ILogger _logger;
protected override async Task OnInitializedAsync()
{
_logger = new LoggerClient<CompaniesNestedUserProductMapping>(LogWriters.ToArray());
_detailGridData = CurrentCompany.UserToServiceProviders ?? new List<UserToCompany>();
_logger.Info($"DetailGridData: {_detailGridData.Count}");
}
void CustomizeEditModel(GridCustomizeEditModelEventArgs e)
{
if (!e.IsNew) return;
var newProductMapping = new UserToCompany
{
ServiceProviderId = CurrentCompany.Id,
UserId = Guid.Empty
};
e.EditModel = newProductMapping;
}
async Task EditModelSaving(GridEditModelSavingEventArgs e)
{
if (e.IsNew)
//add new orderData to orderData array
_logger.Info("New user added to the company");
else
_logger.Info("orderData updated");
await UpdateDataAsync();
}
async Task DataItemDeleting(GridDataItemDeletingEventArgs e)
{
//remove orderData from orderData array
_logger.Info("orderData deleted");
//await UpdateDataAsync();
}
async Task UpdateDataAsync()
{
//refresh grid
_logger.Info("orderData grid refreshed");
}
}

View File

@ -1,9 +1,11 @@
@page "/user/companies" @page "/user/companies"
@using AyCode.Core.Helpers
@using BlazorAnimation @using BlazorAnimation
@using TIAM.Core.Enums @using TIAM.Core.Enums
@using TIAM.Entities.ServiceProviders @using TIAM.Entities.ServiceProviders
@using TIAM.Entities.Transfers @using TIAM.Entities.Transfers
@using TIAM.Resources @using TIAM.Resources
@using TIAM.Services
@using TIAMSharedUI.Pages.Components @using TIAMSharedUI.Pages.Components
@using TIAMSharedUI.Shared @using TIAMSharedUI.Shared
@using TIAMWebApp.Shared.Application.Interfaces @using TIAMWebApp.Shared.Application.Interfaces
@ -22,6 +24,7 @@
@inject IStringLocalizer<TIAMResources> localizer @inject IStringLocalizer<TIAMResources> localizer
@inject IWizardProcessor wizardProcessor @inject IWizardProcessor wizardProcessor
@inject IServiceProviderDataService serviceProviderDataService @inject IServiceProviderDataService serviceProviderDataService
@inject IUserDataService userDataService
@inject ISessionService sessionService @inject ISessionService sessionService
@inject DevAdminSignalClient devAdminSignalClient; @inject DevAdminSignalClient devAdminSignalClient;
<PageTitle>Admin - Companies</PageTitle> <PageTitle>Admin - Companies</PageTitle>
@ -31,9 +34,24 @@
<h2 style="font-size:small">Manage transfers here!</h2> <h2 style="font-size:small">Manage transfers here!</h2>
</div> </div>
<DxPopup
@bind-Visible="@SetOwnerPopupVisible"
ShowFooter="true"
HeaderText="Set owner"
>
<BodyContentTemplate>
<DxTextBox CssClass="form-field" @Bind-Text="@UpdateOwnerIdText">
</DxTextBox>
</BodyContentTemplate>
<FooterContentTemplate>
<DxButton CssClass="popup-button my-1 ms-2" RenderStyle="ButtonRenderStyle.Primary" Text="OK" Click="@(() => SetOwnerPopupVisible = false)" />
@* <DxButton CssClass="popup-button my-1 ms-2" RenderStyle="ButtonRenderStyle.Secondary" Text="Cancel" Click="@(() => SetOwnerPopupVisible = false)" /> *@
</FooterContentTemplate>
</DxPopup>
<DxPopup CssClass="popup-demo-events" <DxPopup CssClass="popup-demo-events"
@bind-Visible="@PopupVisible" @bind-Visible="@SendMailPopupVisible"
ShowFooter="true" ShowFooter="true"
CloseOnEscape="true" CloseOnEscape="true"
CloseOnOutsideClick="false" CloseOnOutsideClick="false"
@ -77,38 +95,44 @@
KeyFieldName="Id"> KeyFieldName="Id">
<Columns> <Columns>
<DxGridCommandColumn NewButtonVisible="false" Width="8%" FixedPosition="GridColumnFixedPosition.Left" /> <DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" ShowInColumnChooser="false" SortIndex="0" Visible="false" /> <DxGridDataColumn FieldName="Id" ShowInColumnChooser="false" SortIndex="0" Visible="false" />
<DxGridDataColumn FieldName="Name" /> <DxGridDataColumn FieldName="Name" />
<DxGridDataColumn FieldName="OwnerId" /> <DxGridDataColumn FieldName="OwnerId">
<CellDisplayTemplate>
@{
var keyField = context.Value;
var keyItem = (Company)context.DataItem;
string buttonText = "Set owner";
if(keyField == null)
{
<DxButton Click="() => SetOwnerPopup(keyItem)" Text="@buttonText" RenderStyle="ButtonRenderStyle.Primary" />
}
}
</CellDisplayTemplate>
</DxGridDataColumn>
<DxGridDataColumn FieldName="AffiliateId" /> <DxGridDataColumn FieldName="AffiliateId" />
<DxGridDataColumn FieldName="CommissionPercent" /> <DxGridDataColumn FieldName="CommissionPercent" />
<DxGridDataColumn FieldName="Created" /> <DxGridDataColumn FieldName="Created" />
@* <DxGridDataColumn FieldName="ContactEmail"> @* <DxGridDataColumn FieldName="ContactEmail">
<CellDisplayTemplate>
@{
var keyField = context.Value;
var keyItem = (TiamServiceProvider)context.DataItem;
string buttonText = "Contact";
<DxButton Click="() => SendMail(keyItem.)" Text="@buttonText" RenderStyle="ButtonRenderStyle.Primary" />
}
</CellDisplayTemplate>
</DxGridDataColumn> *@ </DxGridDataColumn> *@
<DxGridDataColumn FieldName="PassengerCount" />
</Columns> </Columns>
<DetailRowTemplate> <DetailRowTemplate>
<Grid_MasterDetail_NestedGrid_DetailContent Customer="(TIAM.Entities.Transfers.Transfer)context.DataItem" KeyboardNavigationEnabled="true" /> <CompaniesNestedUserProductMapping CurrentCompany="(TIAM.Entities.ServiceProviders.Company)context.DataItem" KeyboardNavigationEnabled="true" />
</DetailRowTemplate> </DetailRowTemplate>
<EditFormTemplate Context="EditFormContext"> <EditFormTemplate Context="EditFormContext">
@{ @{
var transfer2 = (Transfer)EditFormContext.EditModel; var transfer2 = (Company)EditFormContext.EditModel;
} }
<DxFormLayout CssClass="w-100"> <DxFormLayout CssClass="w-100">
<DxFormLayoutItem Caption=@localizer.GetString(ResourceKeys.LastName) ColSpanMd="6" ColSpanLg="6" ColSpanSm="12"> <DxFormLayoutItem Caption=@localizer.GetString(ResourceKeys.LastName) ColSpanMd="6" ColSpanLg="6" ColSpanSm="12">
@EditFormContext.GetEditor("Name") @EditFormContext.GetEditor("Name")
</DxFormLayoutItem> </DxFormLayoutItem>
<DxFormLayoutItem Caption=@localizer.GetString(ResourceKeys.LastName) ColSpanMd="6" ColSpanLg="6" ColSpanSm="12">
@EditFormContext.GetEditor("CommissionPercent")
</DxFormLayoutItem>
</DxFormLayout> </DxFormLayout>
@ -135,9 +159,10 @@
//public Transfer myModel = new Transfer(); //public Transfer myModel = new Transfer();
public Dictionary<Guid, string> ServiceProviderDataList { get; set; } public List<Company> ServiceProviderDataList { get; set; }
bool PopupVisible { get; set; } bool SendMailPopupVisible { get; set; }
bool SetOwnerPopupVisible { get; set; }
public List<string> IgnoreList = public List<string> IgnoreList =
[ [
"ReceiverEmailAddress", "ReceiverEmailAddress",
@ -149,23 +174,8 @@
"ContextId", "ContextId",
]; ];
public List<TransferStatusModel> Statuses { get; set; } =
[
new(Convert.ToInt16(TransferStatusType.OrderSubmitted), "Order submitted"),
new(Convert.ToInt16(TransferStatusType.OrderConfirmed), "Order confirmed"),
new(Convert.ToInt16(TransferStatusType.AssignedToDriver), "Assigned to driver"),
new(Convert.ToInt16(TransferStatusType.DriverConfirmed), "Driver confirmed"),
new(Convert.ToInt16(TransferStatusType.DriverEnRoute), "Driver enroute"),
new(Convert.ToInt16(TransferStatusType.PassengerPickup), "Passenger in car"),
new(Convert.ToInt16(TransferStatusType.Finished), "Finished"),
new(Convert.ToInt16(TransferStatusType.UserCanceled), "User cancelled"),
new(Convert.ToInt16(TransferStatusType.AdminDenied), "Admin cancelled")
];
private MessageWizardModel _messageWizardModel = new(); private MessageWizardModel _messageWizardModel = new();
private string UpdateOwnerIdText;
public List<AppointmentModel> AppointmentModels { get; set; }
DateTime StartDate { get; set; } = DateTime.Today; DateTime StartDate { get; set; } = DateTime.Today;
DxSchedulerDataStorage _dataStorage = new(); DxSchedulerDataStorage _dataStorage = new();
@ -178,13 +188,41 @@
_messageWizardModel.SenderEmailAddress = ""; _messageWizardModel.SenderEmailAddress = "";
_messageWizardModel.ReceiverEmailAddress = ""; _messageWizardModel.ReceiverEmailAddress = "";
_messageWizardModel.ReceiverFullName = ""; _messageWizardModel.ReceiverFullName = "";
PopupVisible = true; SendMailPopupVisible = true;
}
void SetOwnerPopup(Company item)
{
_logger.Info($"Setting owner of {item.OwnerId}, {item.Id}");
SetOwnerPopupVisible = true;
}
async Task<bool> SetOwner(Guid CompanyId)
{
//get user id from DB
var userModelDto = await userDataService.GetUserByEmailAsync(UpdateOwnerIdText);
//overwrite ServiceProvider ownerid
var target = await serviceProviderDataService.GetServiceProviderByIdAsync(CompanyId);
if (target == null)
{
return false;
}
else
{
target.OwnerId = userModelDto.Id;
var result = await serviceProviderDataService.UpdateServiceProviderAsync(target);
return result;
}
} }
void CancelCreateClick() void CancelCreateClick()
{ {
PopupVisible = false; SendMailPopupVisible = false;
} }
void EulaPopupClosed() void EulaPopupClosed()
{ {
@ -227,43 +265,26 @@
void Grid_CustomizeElement(GridCustomizeElementEventArgs e) void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
{ {
if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") == 5) //TODO mark non active partners
{
e.CssClass = "bg-important";
}
else if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") > 5 && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") < 35)
{
e.CssClass = "bg-attention";
}
else if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") == 35)
{
e.CssClass = "bg-finished";
}
else if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") > 35)
{
e.CssClass = "bg-cancel";
}
if (e.ElementType == GridElementType.HeaderCell)
{
e.Style = "background-color: rgba(0, 0, 0, 0.08)";
e.CssClass = "header-bold";
}
} }
void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e) void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e)
{ {
if (!e.IsNew) return; if (!e.IsNew)
{
var transferEditModel = (Transfer)e.EditModel; //TODO not valid cast }
else
{
var transferEditModel = (Company)e.EditModel; //TODO not valid cast
transferEditModel.Id = Guid.NewGuid(); transferEditModel.Id = Guid.NewGuid();
transferEditModel.ToAddress = "Where to?"; transferEditModel.AffiliateId = Guid.NewGuid();
transferEditModel.FromAddress = "From where?"; transferEditModel.Name = "Company name";
transferEditModel.Appointment = DateTime.UtcNow.AddDays(3); transferEditModel.OwnerId = Guid.Empty;
transferEditModel.PassengerCount = 1; transferEditModel.ProfileId = Guid.NewGuid();
transferEditModel.FirstName = "John"; }
transferEditModel.LastName = "Doe";
transferEditModel.ContactPhone = "+00000000000";
transferEditModel.ContactEmail = "your@email.address";
} }
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
@ -311,7 +332,8 @@
async Task UpdateDataAsync() async Task UpdateDataAsync()
{ {
ServiceProviderDataList = await serviceProviderDataService.GetPropertiesByOwnerIdAsync(sessionService.User.UserId); ServiceProviderDataList = await serviceProviderDataService.GetServiceProvidersAsync();
//StateHasChanged();
_logger.Info("orderData grid refreshed"); _logger.Info("orderData grid refreshed");
} }
@ -319,20 +341,21 @@
{ {
_logger = new LoggerClient<ManageServiceProviders>(LogWriters.ToArray()); _logger = new LoggerClient<ManageServiceProviders>(LogWriters.ToArray());
// devAdminSignalClient.SendRequestToServerAsync(SignalRTags.GetTransfersAsync, responseBytes => await UpdateDataAsync();
// {
// var transfers = responseBytes.MessagePackTo<string>(ContractlessStandardResolver.Options).JsonTo<List<Transfer>>();
// ServiceProviderDataList = transfers; //var transfers = await devAdminSignalClient.GetAllAsync<List<Transfer>>(SignalRTags.GetTransfersAsync);
// StateHasChanged(); //InitializeDataSources(transfers ?? []);
// }).Forget();
base.OnInitialized(); //InitializeDataSources(await transferDataService.GetTransfersAsync());
base.OnInitializedAsync();
} }
void ColumnChooserButton_Click() void ColumnChooserButton_Click()
{ {
Grid2.ShowColumnChooser(); Grid2.ShowColumnChooser();

View File

@ -94,6 +94,7 @@
<DxGridCommandColumn NewButtonVisible="false" Width="8%" FixedPosition="GridColumnFixedPosition.Left" /> <DxGridCommandColumn NewButtonVisible="false" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" ShowInColumnChooser="false" SortIndex="0" Visible="false" /> <DxGridDataColumn FieldName="Id" ShowInColumnChooser="false" SortIndex="0" Visible="false" />
<DxGridDataColumn FieldName="OrderId" /> <DxGridDataColumn FieldName="OrderId" />
<DxGridDataColumn FieldName="PaymentId" />
<DxGridDataColumn FieldName="FromAddress" /> <DxGridDataColumn FieldName="FromAddress" />
<DxGridDataColumn FieldName="ToAddress" /> <DxGridDataColumn FieldName="ToAddress" />
<DxGridDataColumn FieldName="Appointment" DisplayFormat="f" /> <DxGridDataColumn FieldName="Appointment" DisplayFormat="f" />
@ -352,8 +353,8 @@
{ {
_logger.Info("orderData updated at id " + ((Transfer)e.EditModel).Id); _logger.Info("orderData updated at id " + ((Transfer)e.EditModel).Id);
transfer = await devAdminSignalClient.UpdateAsync(SignalRTags.UpdateTransferAsync, (Transfer)e.EditModel); //transfer = await devAdminSignalClient.UpdateAsync(SignalRTags.UpdateTransferAsync, (Transfer)e.EditModel);
//transfer = await transferDataService.UpdateTransferAsync((Transfer)e.EditModel); transfer = await transferDataService.UpdateTransferAsync((Transfer)e.EditModel);
} }
//get transfer from TransferData by Id //get transfer from TransferData by Id

View File

@ -66,6 +66,11 @@
Transfers Transfers
</NavLink> </NavLink>
</div> </div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="user/companies">
Destinations
</NavLink>
</div>
<div class="nav-item px-3"> <div class="nav-item px-3">
<NavLink class="nav-link" href="user/users"> <NavLink class="nav-link" href="user/users">
Users Users

View File

@ -52,14 +52,24 @@ namespace TIAMWebApp.Client.Services
if (userModelDto != null) if (userModelDto != null)
{ {
Dictionary<Guid, string> userProperties = new Dictionary<Guid, string>();
//get user's properties //get user's properties
var hasProperties = await serviceProviderDataService.GetPropertiesByOwnerIdAsync(userModelDto.Id); bool hasProperties = userModelDto.ServiceProviders.Count > 0 ? true : userModelDto.ServiceProviders.Count == 0 ? false : false;
if (hasProperties)
{
if (hasProperties != null) //var Properties = await serviceProviderDataService.GetPropertiesByOwnerIdAsync(userModelDto.Id);
_logger.Info($"{hasProperties.Count} properties found"); var Properties = userModelDto.ServiceProviders;
_logger.Info($"{Properties.Count} properties found");
foreach ( var property in Properties )
{
userProperties.Add(property.Id, property.Name);
}
}
//create user session model //create user session model
var user = new UserSessionModel(userModelDto.Id, UserType.User, userModelDto, hasProperties, 1); var user = new UserSessionModel(userModelDto.Id, UserType.User, userModelDto, userProperties, 1);
return user; return user;
} }
else else

View File

@ -79,11 +79,9 @@ namespace TIAMWebApp.Server.Controllers
[AllowAnonymous] [AllowAnonymous]
[HttpGet] [HttpGet]
[Route(APIUrls.GetServiceProvidersRouteName)] [Route(APIUrls.GetServiceProvidersRouteName)]
public Task<List<Company>> GetServiceProviders() public async Task<string> GetServiceProviders()
{ {
//var users = await _serviceProviderDal.Ctx.Users.ToListAsync();//.GetUsersAsync(); return await _adminDal.GetServiceProvidersAsyncJson();
//return users;
return _adminDal.GetServiceProvidersAsync();
} }
//18. //18.

View File

@ -405,7 +405,7 @@ namespace TIAMWebApp.Server.Controllers
[Route(APIUrls.UpdateTransferRouteName)] [Route(APIUrls.UpdateTransferRouteName)]
public async Task<Transfer> UpdateTransfer(Transfer transferToModify) public async Task<Transfer> UpdateTransfer(Transfer transferToModify)
{ {
_logger.Info("UpdateTransfer called!"); _logger.Info($"UpdateTransfer called! + {Request.ReadFormAsync()}");
await _adminDal.UpdateTransferAsync(transferToModify); await _adminDal.UpdateTransferAsync(transferToModify);
return transferToModify; return transferToModify;

View File

@ -81,6 +81,10 @@ public class DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController
await transferDataAPIController.UpdateTransfer(transfer); await transferDataAPIController.UpdateTransfer(transfer);
await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, transfer.ToJson()), requestId); await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, transfer.ToJson()), requestId);
} }
else if (messageTag == SignalRTags.GetCompaniesAsync)
{
await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, await serviceProviderAPIController.GetServiceProviders()), requestId);
}
return; return;
} }
catch (Exception ex) catch (Exception ex)

View File

@ -123,9 +123,12 @@ namespace TIAMWebApp.Shared.Application.Services
} }
//16. //16.
public Task<List<Company>> GetServiceProvidersAsync() public async Task<List<Company>> GetServiceProvidersAsync()
{ {
throw new NotImplementedException(); var companies = await _devAdminSignalClient.GetAllAsync<List<Company>>(SignalRTags.GetCompaniesAsync);
if (companies != null) _logger.DetailConditional($"companies: {string.Join("; ", companies.Count)}");
return companies;
} }
//24. //24.