ManageServiceProvidrers
This commit is contained in:
parent
e5457cba63
commit
e3c26ccd35
|
|
@ -236,7 +236,12 @@ namespace TIAM.Database.DataLayers.Admins
|
|||
|
||||
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)
|
||||
|
|
|
|||
|
|
@ -7,4 +7,5 @@ public class SignalRTags : AcSignalRTags
|
|||
public const int GetTransfersAsync = 5;
|
||||
public const int GetPropertiesByOwnerIdAsync = 6;
|
||||
public const int UpdateTransferAsync = 7;
|
||||
public const int GetCompaniesAsync = 8;
|
||||
}
|
||||
|
|
@ -422,6 +422,7 @@ new HeroSliderItem
|
|||
"Destination",
|
||||
"PickupAddress",
|
||||
"ProductId",
|
||||
"PaymentId",
|
||||
"FlightNumber",
|
||||
"TripDate",
|
||||
"FirstName",
|
||||
|
|
|
|||
|
|
@ -130,7 +130,8 @@
|
|||
{
|
||||
"Id",
|
||||
"UserId",
|
||||
"ProductId",
|
||||
"ProductId",
|
||||
"PaymentId",
|
||||
"FirstName",
|
||||
"LastName",
|
||||
"UserProductMappingId",
|
||||
|
|
|
|||
|
|
@ -97,6 +97,7 @@ new HeroSliderItem
|
|||
"Id",
|
||||
"UserId",
|
||||
"ProductId",
|
||||
"PaymentId",
|
||||
"TripDate",
|
||||
"FirstName",
|
||||
"LastName",
|
||||
|
|
|
|||
|
|
@ -30,23 +30,23 @@
|
|||
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
|
||||
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
|
||||
<DxGridDataColumn FieldName="UserId" />
|
||||
<DxGridDataColumn FieldName="ProductId" Width="40%" />
|
||||
<DxGridDataColumn FieldName="Permissions" />
|
||||
<DxGridDataColumn FieldName="ServiceProviderId" Width="40%" />
|
||||
@* <DxGridDataColumn FieldName="Permissions" /> *@
|
||||
</Columns>
|
||||
<EditFormTemplate Context="EditFormContext">
|
||||
@{
|
||||
var transfer2 = (UserProductMapping)EditFormContext.EditModel;
|
||||
var transfer2 = (UserToCompany)EditFormContext.EditModel;
|
||||
}
|
||||
<DxFormLayout CssClass="w-100">
|
||||
<DxFormLayoutItem Caption="UserId" ColSpanMd="4">
|
||||
@EditFormContext.GetEditor("UserId")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Product:" ColSpanMd="4">
|
||||
<DxComboBox Data="@_availableServices" TextFieldName="Name" @bind-Value="((UserProductMapping)EditFormContext.EditModel).ProductId" />
|
||||
<DxFormLayoutItem Caption="User:" ColSpanMd="4">
|
||||
<DxComboBox Data="@_availableUsers" TextFieldName="Name" @bind-Value="((UserToCompany)EditFormContext.EditModel).UserId" />
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Permissions" ColSpanMd="4">
|
||||
@* <DxFormLayoutItem Caption="Permissions" ColSpanMd="4">
|
||||
@EditFormContext.GetEditor("Permissions")
|
||||
</DxFormLayoutItem>
|
||||
</DxFormLayoutItem> *@
|
||||
|
||||
|
||||
|
||||
|
|
@ -59,11 +59,11 @@
|
|||
[Parameter]
|
||||
public bool KeyboardNavigationEnabled { get; set; }
|
||||
[Parameter]
|
||||
public UserModelDtoDetail UserModelDtoDetail { get; set; }
|
||||
public Company CurrentCompany { get; set; }
|
||||
|
||||
List<Company> _detailGridData;
|
||||
List<UserToCompany> _detailGridData;
|
||||
|
||||
List<Company> _availableServices;
|
||||
List<User> _availableUsers;
|
||||
|
||||
public UserModelDtoDetail UserInfo;
|
||||
|
||||
|
|
@ -71,10 +71,9 @@
|
|||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
_logger = new LoggerClient<UserGrid_MasterDetail_NestedGrid_ServiceProviders>(LogWriters.ToArray());
|
||||
_logger = new LoggerClient<CompaniesNestedUserProductMapping>(LogWriters.ToArray());
|
||||
|
||||
_detailGridData = UserModelDtoDetail.ServiceProviders ?? new List<Company>();
|
||||
_availableServices = await ServiceProviderDataService.GetServiceProvidersAsync();
|
||||
_detailGridData = CurrentCompany.UserToServiceProviders ?? new List<UserToCompany>();
|
||||
|
||||
_logger.Info($"DetailGridData: {_detailGridData.Count}");
|
||||
}
|
||||
|
|
@ -83,12 +82,11 @@
|
|||
{
|
||||
if (!e.IsNew) return;
|
||||
|
||||
var newProductMapping = new UserProductMapping
|
||||
{
|
||||
ProductId = Guid.NewGuid(),
|
||||
UserId = UserModelDtoDetail.Id,
|
||||
Permissions = 1
|
||||
};
|
||||
var newProductMapping = new UserToCompany
|
||||
{
|
||||
ServiceProviderId = CurrentCompany.Id,
|
||||
UserId = Guid.Empty
|
||||
};
|
||||
|
||||
e.EditModel = newProductMapping;
|
||||
}
|
||||
|
|
@ -97,7 +95,8 @@
|
|||
{
|
||||
if (e.IsNew)
|
||||
//add new orderData to orderData array
|
||||
_logger.Info("New orderData added");
|
||||
_logger.Info("New user added to the company");
|
||||
|
||||
else
|
||||
_logger.Info("orderData updated");
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
@page "/user/companies"
|
||||
@using AyCode.Core.Helpers
|
||||
@using BlazorAnimation
|
||||
@using TIAM.Core.Enums
|
||||
@using TIAM.Entities.ServiceProviders
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAM.Resources
|
||||
@using TIAM.Services
|
||||
@using TIAMSharedUI.Pages.Components
|
||||
@using TIAMSharedUI.Shared
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
|
|
@ -22,6 +24,7 @@
|
|||
@inject IStringLocalizer<TIAMResources> localizer
|
||||
@inject IWizardProcessor wizardProcessor
|
||||
@inject IServiceProviderDataService serviceProviderDataService
|
||||
@inject IUserDataService userDataService
|
||||
@inject ISessionService sessionService
|
||||
@inject DevAdminSignalClient devAdminSignalClient;
|
||||
<PageTitle>Admin - Companies</PageTitle>
|
||||
|
|
@ -31,9 +34,24 @@
|
|||
<h2 style="font-size:small">Manage transfers here!</h2>
|
||||
</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"
|
||||
@bind-Visible="@PopupVisible"
|
||||
@bind-Visible="@SendMailPopupVisible"
|
||||
ShowFooter="true"
|
||||
CloseOnEscape="true"
|
||||
CloseOnOutsideClick="false"
|
||||
|
|
@ -77,29 +95,32 @@
|
|||
KeyFieldName="Id">
|
||||
|
||||
<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="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="CommissionPercent" />
|
||||
<DxGridDataColumn FieldName="Created" />
|
||||
@* <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 FieldName="PassengerCount" />
|
||||
|
||||
</DxGridDataColumn> *@
|
||||
|
||||
</Columns>
|
||||
<DetailRowTemplate>
|
||||
<CompaniesNestedUserProductMapping Customer="(TIAM.Entities.ServiceProviders.Company)context.DataItem" KeyboardNavigationEnabled="true" />
|
||||
<CompaniesNestedUserProductMapping CurrentCompany="(TIAM.Entities.ServiceProviders.Company)context.DataItem" KeyboardNavigationEnabled="true" />
|
||||
</DetailRowTemplate>
|
||||
<EditFormTemplate Context="EditFormContext">
|
||||
@{
|
||||
|
|
@ -109,6 +130,9 @@
|
|||
<DxFormLayoutItem Caption=@localizer.GetString(ResourceKeys.LastName) ColSpanMd="6" ColSpanLg="6" ColSpanSm="12">
|
||||
@EditFormContext.GetEditor("Name")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption=@localizer.GetString(ResourceKeys.LastName) ColSpanMd="6" ColSpanLg="6" ColSpanSm="12">
|
||||
@EditFormContext.GetEditor("CommissionPercent")
|
||||
</DxFormLayoutItem>
|
||||
|
||||
|
||||
</DxFormLayout>
|
||||
|
|
@ -116,7 +140,7 @@
|
|||
|
||||
|
||||
</DxGrid>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -135,9 +159,10 @@
|
|||
|
||||
//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 =
|
||||
[
|
||||
"ReceiverEmailAddress",
|
||||
|
|
@ -147,10 +172,10 @@
|
|||
"SenderFullName",
|
||||
"SenderId",
|
||||
"ContextId",
|
||||
];
|
||||
];
|
||||
|
||||
private MessageWizardModel _messageWizardModel = new();
|
||||
|
||||
private string UpdateOwnerIdText;
|
||||
DateTime StartDate { get; set; } = DateTime.Today;
|
||||
DxSchedulerDataStorage _dataStorage = new();
|
||||
|
||||
|
|
@ -163,13 +188,41 @@
|
|||
_messageWizardModel.SenderEmailAddress = "";
|
||||
_messageWizardModel.ReceiverEmailAddress = "";
|
||||
_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()
|
||||
{
|
||||
|
||||
PopupVisible = false;
|
||||
SendMailPopupVisible = false;
|
||||
}
|
||||
void EulaPopupClosed()
|
||||
{
|
||||
|
|
@ -189,7 +242,7 @@
|
|||
{
|
||||
var messageModel = result as MessageWizardModel;
|
||||
messageModel.ContextId = _messageWizardModel.ContextId;
|
||||
//messageModel.SenderId = sessionService.User.UserId;
|
||||
//messageModel.SenderId = sessionService.User.UserId;
|
||||
|
||||
string FormatEmailContent()
|
||||
{
|
||||
|
|
@ -197,7 +250,7 @@
|
|||
<html>
|
||||
<body>
|
||||
<p>Dear {messageModel.SenderFullName},</p>
|
||||
<p>{messageModel.Content}:</p>
|
||||
<p>{messageModel.Content}:</p>
|
||||
<p>Best regards,<br/>Tour I Am team</p>
|
||||
</body>
|
||||
</html>";
|
||||
|
|
@ -220,16 +273,16 @@
|
|||
{
|
||||
if (!e.IsNew)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
var transferEditModel = (Company)e.EditModel; //TODO not valid cast
|
||||
transferEditModel.Id = Guid.NewGuid();
|
||||
transferEditModel.AffiliateId = Guid.NewGuid();
|
||||
transferEditModel.Name = "Company name";
|
||||
transferEditModel.OwnerId = Guid.Empty;
|
||||
transferEditModel.ProfileId = Guid.NewGuid();
|
||||
transferEditModel.OwnerId = Guid.Empty;
|
||||
transferEditModel.ProfileId = Guid.NewGuid();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -279,7 +332,8 @@
|
|||
|
||||
async Task UpdateDataAsync()
|
||||
{
|
||||
ServiceProviderDataList = await serviceProviderDataService.GetPropertiesByOwnerIdAsync(sessionService.User.UserId);
|
||||
ServiceProviderDataList = await serviceProviderDataService.GetServiceProvidersAsync();
|
||||
//StateHasChanged();
|
||||
_logger.Info("orderData grid refreshed");
|
||||
}
|
||||
|
||||
|
|
@ -287,19 +341,20 @@
|
|||
{
|
||||
_logger = new LoggerClient<ManageServiceProviders>(LogWriters.ToArray());
|
||||
|
||||
// devAdminSignalClient.SendRequestToServerAsync(SignalRTags.GetTransfersAsync, responseBytes =>
|
||||
// {
|
||||
// var transfers = responseBytes.MessagePackTo<string>(ContractlessStandardResolver.Options).JsonTo<List<Transfer>>();
|
||||
await UpdateDataAsync();
|
||||
|
||||
// ServiceProviderDataList = transfers;
|
||||
// StateHasChanged();
|
||||
// }).Forget();
|
||||
|
||||
//var transfers = await devAdminSignalClient.GetAllAsync<List<Transfer>>(SignalRTags.GetTransfersAsync);
|
||||
//InitializeDataSources(transfers ?? []);
|
||||
|
||||
base.OnInitialized();
|
||||
|
||||
//InitializeDataSources(await transferDataService.GetTransfersAsync());
|
||||
|
||||
base.OnInitializedAsync();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void ColumnChooserButton_Click()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@
|
|||
<DxGridCommandColumn NewButtonVisible="false" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
|
||||
<DxGridDataColumn FieldName="Id" ShowInColumnChooser="false" SortIndex="0" Visible="false" />
|
||||
<DxGridDataColumn FieldName="OrderId" />
|
||||
<DxGridDataColumn FieldName="PaymentId" />
|
||||
<DxGridDataColumn FieldName="FromAddress" />
|
||||
<DxGridDataColumn FieldName="ToAddress" />
|
||||
<DxGridDataColumn FieldName="Appointment" DisplayFormat="f" />
|
||||
|
|
@ -352,8 +353,8 @@
|
|||
{
|
||||
_logger.Info("orderData updated at id " + ((Transfer)e.EditModel).Id);
|
||||
|
||||
transfer = await devAdminSignalClient.UpdateAsync(SignalRTags.UpdateTransferAsync, (Transfer)e.EditModel);
|
||||
//transfer = await transferDataService.UpdateTransferAsync((Transfer)e.EditModel);
|
||||
//transfer = await devAdminSignalClient.UpdateAsync(SignalRTags.UpdateTransferAsync, (Transfer)e.EditModel);
|
||||
transfer = await transferDataService.UpdateTransferAsync((Transfer)e.EditModel);
|
||||
|
||||
}
|
||||
//get transfer from TransferData by Id
|
||||
|
|
|
|||
|
|
@ -79,11 +79,9 @@ namespace TIAMWebApp.Server.Controllers
|
|||
[AllowAnonymous]
|
||||
[HttpGet]
|
||||
[Route(APIUrls.GetServiceProvidersRouteName)]
|
||||
public Task<List<Company>> GetServiceProviders()
|
||||
{
|
||||
//var users = await _serviceProviderDal.Ctx.Users.ToListAsync();//.GetUsersAsync();
|
||||
//return users;
|
||||
return _adminDal.GetServiceProvidersAsync();
|
||||
public async Task<string> GetServiceProviders()
|
||||
{
|
||||
return await _adminDal.GetServiceProvidersAsyncJson();
|
||||
}
|
||||
|
||||
//18.
|
||||
|
|
|
|||
|
|
@ -405,7 +405,7 @@ namespace TIAMWebApp.Server.Controllers
|
|||
[Route(APIUrls.UpdateTransferRouteName)]
|
||||
public async Task<Transfer> UpdateTransfer(Transfer transferToModify)
|
||||
{
|
||||
_logger.Info("UpdateTransfer called!");
|
||||
_logger.Info($"UpdateTransfer called! + {Request.ReadFormAsync()}");
|
||||
await _adminDal.UpdateTransferAsync(transferToModify);
|
||||
|
||||
return transferToModify;
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ using System.ServiceModel.Channels;
|
|||
using TIAM.Entities.Transfers;
|
||||
using TIAM.Services;
|
||||
using TIAMWebApp.Server.Controllers;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
|
||||
namespace TIAMWebApp.Server.Services;
|
||||
|
||||
|
|
@ -75,6 +76,10 @@ public class DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController
|
|||
|
||||
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;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
|
|||
|
|
@ -123,9 +123,12 @@ namespace TIAMWebApp.Shared.Application.Services
|
|||
}
|
||||
|
||||
//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.
|
||||
|
|
|
|||
Loading…
Reference in New Issue