@page "/sysadmin/companies"
@using BlazorAnimation
@using TIAM.Entities.ServiceProviders
@using TIAM.Resources
@using TIAM.Services
@using TIAMSharedUI.Pages.Components
@using TIAMSharedUI.Shared
@using TIAMWebApp.Shared.Application.Interfaces
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
@using TIAMWebApp.Shared.Application.Utility
@using TIAMWebApp.Shared.Application.Services
@using AyCode.Core.Extensions;
@using TIAM.Entities.Addresses
@using TIAMSharedUI.Shared.Components.Grids
@using AyCode.Core
@using TIAM.Entities.Products
@using TIAM.Entities.Users
@using TIAM.Services
@using TIAMSharedUI.Shared.Components.BaseComponents
@inherits UserBasePageComponent
@layout AdminLayout
@inject IWizardProcessor wizardProcessor
@inject IServiceProviderDataService serviceProviderDataService
@inject IUserDataService userDataService
@inject AdminSignalRClient AdminSignalRClient;
Admin - Companies
Partners
Manage partners here!
@* *@
@{
var keyField = context.Value as Guid?;
if (keyField.IsNullOrEmpty())
{
}
else
{
@keyField.Value.ToString("N")
}
}
@*
*@
@*
*@
@{
var transfer2 = (Company)EditFormContext.EditModel;
}
@EditFormContext.GetEditor("Name")
@EditFormContext.GetEditor("CommissionPercent")
@code {
private LoggerClient _logger;
private ProductDetailGridComponent? _productDetailGridComponent;
//public Transfer myModel = new Transfer();
//public List ServiceProviderDataList { get; set; }
private bool _sendMailPopupVisible;
private bool _setOwnerPopupVisible;
private CompanyGrid _gridCompany;
private Company _companyToSetOwner = null;
public List IgnoreList =
[
"ReceiverEmailAddress",
"ReceiverFullName",
"ReceiverId",
"SenderEmailAddress",
"SenderFullName",
"SenderId",
"ContextId",
];
private MessageWizardModel _messageWizardModel = new();
private string Email { get; set; } = "email@email.com";
string EmailMask { get; set; } = @"(\w|[.-])+@(\w|-)+\.(\w|-){2,4}";
DateTime StartDate { get; set; } = DateTime.Today;
DxSchedulerDataStorage _dataStorage = new();
void SendMail(Company item)
{
_logger.Info($"Sending mail to {item.OwnerId}, {item.Id}");
_messageWizardModel.ReceiverId = Guid.Parse("");
_messageWizardModel.ContextId = item.Id;
_messageWizardModel.SenderEmailAddress = "";
_messageWizardModel.ReceiverEmailAddress = "";
_messageWizardModel.ReceiverFullName = "";
_sendMailPopupVisible = true;
}
void SetOwnerPopup(Company item)
{
_logger.Info($"Setting owner of {item.OwnerId}, {item.Id}");
_companyToSetOwner = item;
_setOwnerPopupVisible = true;
}
async Task SetOwner()
{
//get user id from DB
var userModelDto = await userDataService.GetUserByEmailAsync(Email);
//overwrite ServiceProvider ownerid
//var target = await serviceProviderDataService.GetServiceProviderByIdAsync(CompanyToSetOwner.Id);
if (_companyToSetOwner == null)
{
return null;
}
else
{
_companyToSetOwner.OwnerId = userModelDto.Id;
var result = await serviceProviderDataService.UpdateServiceProviderAsync(_companyToSetOwner);
_setOwnerPopupVisible = false;
_companyToSetOwner = null;
return result;
}
}
void CancelCreateClick()
{
_sendMailPopupVisible = false;
}
void EulaPopupClosed()
{
//cancel clicked
}
void EulaPopupClosing(PopupClosingEventArgs args)
{
//myModel = new TransferWizardModel();
_messageWizardModel = new MessageWizardModel();
}
//-----------------------------------------------------------------------------------
public async Task SubmitForm(object result)
{
var messageModel = result as MessageWizardModel;
messageModel.ContextId = _messageWizardModel.ContextId;
//messageModel.SenderId = sessionService.User.UserId;
string FormatEmailContent()
{
return $@"
Dear {messageModel.SenderFullName},
{messageModel.Content}:
Best regards,
Tour I Am team
";
}
messageModel.Content = FormatEmailContent();
_logger.Info(messageModel.Content);
var email = await wizardProcessor.ProcessWizardAsync(result.GetType(), messageModel);
_logger.Info($"Submitted nested form: {result.GetType().FullName}");
}
void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
{
//TODO mark non active partners
}
void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e)
{
if (!e.IsNew)
{
}
else
{
var companyEditModel = (Company)e.EditModel; //TODO not valid cast
companyEditModel.Id = Guid.NewGuid();
companyEditModel.AffiliateId = Guid.NewGuid();
companyEditModel.Name = "Company name";
companyEditModel.OwnerId = Guid.Empty;
companyEditModel.ProfileId = Guid.NewGuid();
}
}
protected override async Task OnInitializedAsync()
{
_logger = new LoggerClient(_logWriters.ToArray());
await base.OnInitializedAsync();
}
private void OnProductGridItemSaving(GridEditModelSavingEventArgs e)
{
_logger.Detail($"OnProductGridItemSaving");
var company = _productDetailGridComponent!.ParentData as Company;
if (company == null || company.OwnerId.IsNullOrEmpty())
{
e.Cancel = true;
_logger.Error($"OnProductGridItemSaving; company == null || company.OwnerId.IsNullOrEmpty(); company.OwnerId: {company?.OwnerId}");
return;
}
var product = ((Product)e.EditModel);
if (e.IsNew)
{
if (product.Id.IsNullOrEmpty()) product.Id = Guid.NewGuid();
product.ServiceProviderId = company.Id;
product.UserProductMappings.Add(new UserProductMapping(company.OwnerId.Value, product.Id) { IsAdmin = true });
}
else
{ }
}
void ColumnChooserButton_Click()
{
_gridCompany.ShowColumnChooser();
}
protected override void OnAfterRender(bool firstRender)
{
if (firstRender)
{
_gridCompany.ExpandDetailRow(0);
}
}
private void ActiveTabIndexChanged(int index)
{
_logger.Detail($"ActiveTabIndexChanged");
}
}