This commit is contained in:
Adam 2024-05-20 15:29:01 +02:00
commit 3140c1bed6
12 changed files with 332 additions and 347 deletions

View File

@ -39,8 +39,8 @@ namespace TIAM.Database.DataLayers.Admins
#region Transfer
public Task<List<Transfer>> GetTransfersAsync() => SessionAsync(ctx => ctx.GetTransfers().ToList());
public Task<string> GetTransfersJsonAsync() => SessionAsync(ctx => ctx.GetTransfers().ToJson());
public Task<List<Transfer>> GetTransfersAsync() => SessionAsync(ctx => ctx.GetTransfers().OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToList());
public Task<string> GetTransfersJsonAsync() => SessionAsync(ctx => ctx.GetTransfers().OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToJson());
public Transfer? GetTransferById(Guid transferId) => Session(ctx => ctx.GetTransferById(transferId));
public string? GetTransferJsonById(Guid transferId) => Session(ctx => ctx.GetTransferById(transferId)?.ToJson());

View File

@ -6,7 +6,7 @@
@using TIAM.Core.Loggers
@using AyCode.Core.Loggers
@using AyCode.Services.Loggers
@inject IUserDataService NwindDataService
@inject IUserDataService UserDataService
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
@ -42,10 +42,10 @@
[Parameter]
public Transfer Customer { get; set; }
private ILogger _logger;
private LoggerClient<Grid_MasterDetail_NestedGrid_DetailContent> _logger;
List<TransferToDriver> DetailGridData { get; set; }
public UserModelDtoDetail UserInfo;
public UserModelDtoDetail? UserModelDtoDetail;
public string PhoneNumber = "";
public string EmailAddress = "";
@ -53,27 +53,28 @@
{
_logger = new LoggerClient<Grid_MasterDetail_NestedGrid_DetailContent>(LogWriters.ToArray());
UserInfo = await NwindDataService.GetUserDetailByIdAsync(Customer.UserId);
PhoneNumber = UserInfo.UserDto.PhoneNumber;
EmailAddress = UserInfo.UserDto.EmailAddress;
UserModelDtoDetail = await UserDataService.GetUserDetailByIdAsync(Customer.UserId);
if (UserModelDtoDetail == null) return;
PhoneNumber = UserModelDtoDetail.UserDto.PhoneNumber;
EmailAddress = UserModelDtoDetail.UserDto.EmailAddress;
DetailGridData = Customer.TransferToDrivers;
_logger.Info($"DetailGridData: {DetailGridData.Count}");
}
void CustomizeEditModel(GridCustomizeEditModelEventArgs e)
{
if (e.IsNew)
{
var newDriver = (TransferToDriver)e.EditModel;
newDriver.Id = Guid.NewGuid();
newDriver.CarId = Guid.Empty;
newDriver.LicencePlate = "";
newDriver.Car = new Car();
newDriver.Price = 0;
newDriver.TransferId = Customer.Id;
if (!e.IsNew) return;
}
var newDriver = (TransferToDriver)e.EditModel;
newDriver.Id = Guid.NewGuid();
newDriver.CarId = Guid.Empty;
newDriver.LicencePlate = "";
newDriver.Car = new Car();
newDriver.Price = 0;
newDriver.TransferId = Customer.Id;
}
async Task EditModelSaving(GridEditModelSavingEventArgs e)
@ -81,26 +82,22 @@
if (e.IsNew)
//add new orderData to orderData array
_logger.Info("New orderData added");
//await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel);
else
_logger.Info("orderData updated");
//await NwindDataService.UpdateEmployeeAsync((EditableEmployee)e.DataItem, (EditableEmployee)e.EditModel);
await UpdateDataAsync();
}
async Task DataItemDeleting(GridDataItemDeletingEventArgs e)
{
//await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
//remove orderData from orderData array
_logger.Info("orderData deleted");
//await UpdateDataAsync();
}
async Task UpdateDataAsync()
{
//DataSource = await NwindDataService.GetEmployeesEditableAsync();
//refresh grid
_logger.Info("orderData grid refreshed");
}
}

View File

@ -30,7 +30,7 @@
Click="ColumnChooserButton_Click" />
</div>
<DxGrid @ref="Grid"
Data="ProductDataFromDb"
Data="_productWizardModels"
PageSize="8"
KeyFieldName="Id"
ValidationEnabled="false"

View File

@ -18,33 +18,33 @@ namespace TIAMSharedUI.Pages.User.SysAdmins
{
public partial class ManageProducts :ComponentBase
{
private ILogger _logger;
private LoggerClient<ManageProducts> _logger;
IGrid Grid { get; set; }
object? ProductData { get; set; }
private List<ProductWizardModel> ProductWizardModels { get; set; } = [];
public void ColumnChooserButton_Click()
{
Grid.ShowColumnChooser();
}
public ProductWizardModel myModel = new ProductWizardModel();
//public ProductWizardModel productWizardModel = new();
public MessageWizardModel messageWizardModel = new MessageWizardModel();
public MessageWizardModel MessageWizardModel = new();
[Inject]
public IServiceProviderDataService serviceProviderDataService { get; set; }
public IServiceProviderDataService ServiceProviderDataService { get; set; }
object? ProductArray = new ProductWizardModel[]
{
new ProductWizardModel(new TiamServiceProvider(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, ""),
new ProductWizardModel(new TiamServiceProvider(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, ""),
new ProductWizardModel(new TiamServiceProvider(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, ""),
};
//List<ProductWizardModel> _productArray =
//[
// new ProductWizardModel(new TiamServiceProvider(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, ""),
// new ProductWizardModel(new TiamServiceProvider(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, ""),
// new ProductWizardModel(new TiamServiceProvider(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, "")
//];
object? ProductDataFromDb = new ProductWizardModel[] { };
private readonly List<ProductWizardModel> _productWizardModels = [];
void CancelCreateClick()
{
@ -53,12 +53,12 @@ namespace TIAMSharedUI.Pages.User.SysAdmins
void EulaPopupClosed()
{
//cancel clicked
}
void EulaPopupClosing(PopupClosingEventArgs args)
{
//myModel = new TransferWizardModel();
messageWizardModel = new MessageWizardModel();
MessageWizardModel = new MessageWizardModel();
}
//-----------------------------------------------------------------------------------
@ -79,16 +79,13 @@ namespace TIAMSharedUI.Pages.User.SysAdmins
void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e)
{
if (e.IsNew)
{
var newProduct = (ProductWizardModel)e.EditModel;
newProduct.Id = Guid.NewGuid();
newProduct.Name = "ghjgkg hkgh ghjkghgkjgh";
newProduct.Description = "ghjgkg hkgh ghjkghgkjgh";
newProduct.ProductType = ProductType.NotDefined;
if (!e.IsNew) return;
}
var newProduct = (ProductWizardModel)e.EditModel;
newProduct.Id = Guid.NewGuid();
newProduct.Name = "ghjgkg hkgh ghjkghgkjgh";
newProduct.Description = "ghjgkg hkgh ghjkghgkjgh";
newProduct.ProductType = ProductType.NotDefined;
}
void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
@ -98,12 +95,12 @@ namespace TIAMSharedUI.Pages.User.SysAdmins
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
{
var productWizardModel = (ProductWizardModel)e.EditModel;
if (e.IsNew)
{
//add new row to grid
myModel = (ProductWizardModel)e.EditModel;
//add mymodel to transferData array
ProductData = ((ProductWizardModel[])ProductData).Append(myModel);
ProductWizardModels.Add(productWizardModel);
//add new orderData to orderData array
_logger.Info("New orderData added");
@ -116,28 +113,24 @@ namespace TIAMSharedUI.Pages.User.SysAdmins
//modify transferData where transferData.Id == e.EditModel.Id
//get transfer from TransferData by Id
foreach (var productToModify in (ProductWizardModel[])ProductData)
foreach (var productToModify in ProductWizardModels)
{
myModel = (ProductWizardModel)e.EditModel;
if (productToModify.Id != productWizardModel.Id) continue;
if (productToModify.Id == myModel.Id)
{
myModel = (ProductWizardModel)e.EditModel;
productToModify.ProductType = myModel.ProductType;
productToModify.Name = myModel.Name;
productToModify.Description = myModel.Description;
productToModify.Price = myModel.Price;
productToModify.JsonDetails = myModel.JsonDetails;
}
productToModify.ProductType = productWizardModel.ProductType;
productToModify.Name = productWizardModel.Name;
productToModify.Description = productWizardModel.Description;
productToModify.Price = productWizardModel.Price;
productToModify.JsonDetails = productWizardModel.JsonDetails;
}
}
//await NwindDataService.UpdateEmployeeAsync((EditableEmployee)e.DataItem, (EditableEmployee)e.EditModel);
//TODO: ne a teljes grid-et refresh-eljük, elég lenne csak az adott sort! - J.
await UpdateDataAsync();
}
async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e)
{
//await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
@ -145,10 +138,12 @@ namespace TIAMSharedUI.Pages.User.SysAdmins
_logger.Info("orderData deleted");
//await UpdateDataAsync();
}
async Task UpdateDataAsync()
{
//DataSource = await NwindDataService.GetEmployeesEditableAsync();
//refresh grid
await FillGridDataSource();
_logger.Info("orderData grid refreshed");
}
@ -158,18 +153,21 @@ namespace TIAMSharedUI.Pages.User.SysAdmins
_logger = new LoggerClient<ManageProducts>(LogWriters.ToArray());
var a = await serviceProviderDataService.GetProductsForServiceProviderAsync(Guid.Parse("3587F169-683C-4EEE-BCB5-E8D57F8C6DCE"));
_logger.Info($"ProductDataFromDb: {((ProductWizardModel[])ProductDataFromDb).Length}");
foreach (var item in a)
{
//add new transferwizardmodel to transferData array
ProductDataFromDb = ((ProductWizardModel[])ProductDataFromDb).Append(
new ProductWizardModel(item.ServiceProvider, item.ProductType, item.Name, item.Description, item.Price, item.JsonDetails));
_logger.Info($"TransferDataFromDb: {item.Name}");
}
await FillGridDataSource();
}
private async Task FillGridDataSource()
{
var productForServiceProcvider = await ServiceProviderDataService.GetProductsForServiceProviderAsync(Guid.Parse("3587F169-683C-4EEE-BCB5-E8D57F8C6DCE"));
foreach (var item in productForServiceProcvider)
{
_productWizardModels.Add(new ProductWizardModel(item.ServiceProvider, item.ProductType, item.Name, item.Description, item.Price, item.JsonDetails));
_logger.DetailConditional($"_productWizardModels add: {item.Name}");
}
_logger.Info($"_productWizardModels: {_productWizardModels.Count}");
}
}
}

View File

@ -41,9 +41,9 @@
Closing="EulaPopupClosing"
Closed="EulaPopupClosed">
<BodyContentTemplate>
<InputWizard Data=@messageWizardModel
<InputWizard Data=@MessageWizardModel
OnSubmit="SubmitForm"
IgnoreReflection=@ignoreList
IgnoreReflection=@IgnoreList
TitleResourceString="NewMessage"
SubtitleResourceString="NewMessageSubtitle"
SubmitButtonText="@localizer.GetString("ButtonSend")"></InputWizard>
@ -75,7 +75,7 @@
</div>
<DxGrid @ref="Grid2"
Data="TransferData"
Data="TransferDataList"
AutoCollapseDetailRow="AutoCollapseDetailRow"
KeyboardNavigationEnabled="true"
CustomizeElement="Grid_CustomizeElement"
@ -166,7 +166,7 @@
<DxTabPage Text="Calendar">
<div class="d-flex flex-column mb-4 pb-2">
<DxScheduler @bind-StartDate="@StartDate"
DataStorage="@DataStorage"
DataStorage="@_dataStorage"
CssClass="w-100">
<DxSchedulerTimelineView Duration="@TimeSpan.FromHours(48)" CellMinWidth="80">
<Scales>
@ -199,15 +199,15 @@
@code {
private ILogger _logger;
private LoggerClient<ManageTransfers> _logger;
public Transfer myModel = new Transfer();
//public Transfer myModel = new Transfer();
public List<Transfer> TransferData { get; set; }
public List<Transfer> TransferDataList { get; set; }
bool PopupVisible { get; set; }
public List<string> ignoreList = new List<string>
{
public List<string> IgnoreList =
[
"ReceiverEmailAddress",
"ReceiverFullName",
"ReceiverId",
@ -217,28 +217,33 @@
"ContextId"
};
public List<TransferStatusModel>? Statuses { get; set; }
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")
];
public MessageWizardModel messageWizardModel = new MessageWizardModel();
public MessageWizardModel MessageWizardModel = new();
public List<AppointmentModel>? AppoinmentData { get; set; }
public List<AppointmentModel> AppointmentModels { get; set; }
DateTime StartDate { get; set; } = DateTime.Today;
DxSchedulerDataStorage DataStorage = new DxSchedulerDataStorage();
DxSchedulerDataStorage _dataStorage = new();
void SendMail(Transfer Item)
void SendMail(Transfer item)
{
_logger.Info($"Sending mail to {Item.ContactEmail}, {Item.Id}");
_logger.Info($"Sending mail to {item.ContactEmail}, {item.Id}");
Guid? nullableGuid = Item.Id;
if (nullableGuid.HasValue)
{
Guid nonNullableGuid = nullableGuid.Value;
messageWizardModel.ContextId = nonNullableGuid;
}
messageWizardModel.ReceiverEmailAddress = Item.ContactEmail;
messageWizardModel.ReceiverFullName = Item.FullName;
MessageWizardModel.ContextId = item.Id;
MessageWizardModel.SenderFullName = item.FullName; //Miért nullable a FullName? - J.
PopupVisible = true;
}
@ -255,16 +260,16 @@
void EulaPopupClosing(PopupClosingEventArgs args)
{
//myModel = new TransferWizardModel();
messageWizardModel = new MessageWizardModel();
MessageWizardModel = new MessageWizardModel();
}
//-----------------------------------------------------------------------------------
public async Task SubmitForm(object Result)
public async Task SubmitForm(object result)
{
var messageModel = Result as MessageWizardModel;
messageModel.ContextId = messageWizardModel.ContextId;
var messageModel = result as MessageWizardModel;
messageModel.ContextId = MessageWizardModel.ContextId;
//messageModel.SenderId = sessionService.User.UserId;
string FormatEmailContent()
@ -281,9 +286,9 @@
messageModel.Content = FormatEmailContent();
_logger.Info(messageModel.Content);
var email = await wizardProcessor.ProcessWizardAsync<MessageWizardModel>(Result.GetType(), messageModel);
var email = await wizardProcessor.ProcessWizardAsync<MessageWizardModel>(result.GetType(), messageModel);
_logger.Info($"Submitted nested form: {Result.GetType().FullName}");
_logger.Info($"Submitted nested form: {result.GetType().FullName}");
}
void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
@ -313,19 +318,18 @@
void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e)
{
if (e.IsNew)
{
var transferEditModel = (Transfer)e.EditModel; //TODO not valid cast
transferEditModel.Id = Guid.NewGuid();
transferEditModel.ToAddress = "Where to?";
transferEditModel.FromAddress = "From where?";
transferEditModel.Appointment = DateTime.UtcNow.AddDays(3);
transferEditModel.PassengerCount = 1;
transferEditModel.FirstName = "John";
transferEditModel.LastName = "Doe";
transferEditModel.ContactPhone = "+00000000000";
transferEditModel.ContactEmail = "your@email.address";
}
if (!e.IsNew) return;
var transferEditModel = (Transfer)e.EditModel; //TODO not valid cast
transferEditModel.Id = Guid.NewGuid();
transferEditModel.ToAddress = "Where to?";
transferEditModel.FromAddress = "From where?";
transferEditModel.Appointment = DateTime.UtcNow.AddDays(3);
transferEditModel.PassengerCount = 1;
transferEditModel.FirstName = "John";
transferEditModel.LastName = "Doe";
transferEditModel.ContactPhone = "+00000000000";
transferEditModel.ContactEmail = "your@email.address";
}
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
@ -355,9 +359,14 @@
// //transferToModify.Driver = myModel.Driver;
// }
// }
if (success)
{
//TODO: ne a teljes grid-et refresh-eljük, elég lenne csak az adott sort! - J.
await UpdateDataAsync();
}
}
async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e)
{
//await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
@ -365,10 +374,10 @@
_logger.Info("orderData deleted");
//await UpdateDataAsync();
}
async Task UpdateDataAsync()
{
//refresh grid
TransferData = await transferDataService.GetTransfersAsync();
TransferDataList = await transferDataService.GetTransfersAsync();
_logger.Info("orderData grid refreshed");
}
@ -376,21 +385,10 @@
{
_logger = new LoggerClient<ManageTransfers>(LogWriters.ToArray());
Statuses = new List<TransferStatusModel>
{
new TransferStatusModel(Convert.ToInt16(TransferStatusType.OrderSubmitted), "Order submitted"),
new TransferStatusModel(Convert.ToInt16(TransferStatusType.OrderConfirmed), "Order confirmed"),
new TransferStatusModel(Convert.ToInt16(TransferStatusType.AssignedToDriver), "Assigned to driver"),
new TransferStatusModel(Convert.ToInt16(TransferStatusType.DriverConfirmed), "Driver confirmed"),
new TransferStatusModel(Convert.ToInt16(TransferStatusType.DriverEnRoute), "Driver enroute"),
new TransferStatusModel(Convert.ToInt16(TransferStatusType.PassengerPickup), "Passenger in car"),
new TransferStatusModel(Convert.ToInt16(TransferStatusType.Finished), "Finished"),
new TransferStatusModel(Convert.ToInt16(TransferStatusType.UserCanceled), "User cancelled"),
new TransferStatusModel(Convert.ToInt16(TransferStatusType.AdminDenied), "Admin cancelled")
};
TransferData = (await transferDataService.GetTransfersAsync()).OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToList();
AppoinmentData = new List<AppointmentModel>();
foreach (var transfer in TransferData)
TransferDataList = await transferDataService.GetTransfersAsync();
AppointmentModels = new List<AppointmentModel>(TransferDataList.Count);
foreach (var transfer in TransferDataList)
{
// var bnm = DataStorage.CreateAppointmentItem();
// bnm.Start = transfer.Appointment;
@ -398,11 +396,12 @@
// bnm.Location = transfer.FromAddress;
// bnm.Subject = "Simple transfer";
AppoinmentData.Add(new AppointmentModel { StartDate = transfer.Appointment, EndDate=transfer.Appointment.AddMinutes(30), Description = $"{transfer.FullName}, {transfer.ToAddress}", Location = transfer.FromAddress, Caption = "Simple transfer" });
AppointmentModels.Add(new AppointmentModel { StartDate = transfer.Appointment, EndDate=transfer.Appointment.AddMinutes(30), Description = $"{transfer.FullName}, {transfer.ToAddress}", Location = transfer.FromAddress, Caption = "Simple transfer" });
}
DataStorage = new DxSchedulerDataStorage();
DataStorage.AppointmentMappings = new DxSchedulerAppointmentMappings()
_dataStorage = new DxSchedulerDataStorage
{
AppointmentMappings = new DxSchedulerAppointmentMappings()
{
Type = "AppointmentType",
Start = "StartDate",
@ -414,12 +413,13 @@
LabelId = "Label",
StatusId = "Status",
RecurrenceInfo = "Recurrence"
};
DataStorage.AppointmentsSource = AppoinmentData;
},
AppointmentsSource = AppointmentModels
};
base.OnInitialized();
}
void ColumnChooserButton_Click()
@ -441,13 +441,12 @@
void AutoCollapseDetailRow_Changed(bool newValue)
{
AutoCollapseDetailRow = newValue;
if (newValue)
{
Grid2.BeginUpdate();
Grid2.CollapseAllDetailRows();
Grid2.ExpandDetailRow(0);
Grid2.EndUpdate();
}
if (!newValue) return;
Grid2.BeginUpdate();
Grid2.CollapseAllDetailRows();
Grid2.ExpandDetailRow(0);
Grid2.EndUpdate();
}
}

View File

@ -22,10 +22,10 @@
@using TIAM.Core.Loggers
@layout AdminLayout
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
@inject IStringLocalizer<TIAMResources> localizer
@inject ISessionService sessionService
@inject IWizardProcessor wizardProcessor
@inject IUserDataService userDataService
@inject IStringLocalizer<TIAMResources> Localizer
@inject ISessionService SessionService
@inject IWizardProcessor WizardProcessor
@inject IUserDataService UserDataService
<PageTitle>Transfers</PageTitle>
<div class="text-center m-5">
@ -43,9 +43,9 @@
Closing="EulaPopupClosing"
Closed="EulaPopupClosed">
<BodyContentTemplate>
<InputWizard Data=@messageWizardModel
<InputWizard Data=@MessageWizardModel
OnSubmit="SubmitForm"
IgnoreReflection=@ignoreList
IgnoreReflection=@IgnoreList
TitleResourceString="NewMessage"
SubtitleResourceString="NewMessageSubtitle"
SubmitButtonText="ButtonSend"></InputWizard>
@ -99,36 +99,36 @@
var keyField = context.Value;
var keyItem = (UserModelDtoDetail)context.DataItem;
string buttonText = "Contact";
var buttonText = "Contact";
<DxButton Click="() => SendMail(keyItem)" Text="@buttonText" RenderStyle="ButtonRenderStyle.Primary" />
}
</CellDisplayTemplate>
</DxGridDataColumn>
</Columns>
<DetailRowTemplate>
<UserGrid_MasterDetail_NestedGrid_UserProductMapping Customer="(UserModelDtoDetail)context.DataItem" KeyboardNavigationEnabled="true" />
<UserGrid_MasterDetail_NestedGrid_UserProductMapping UserModelDtoDetail="(UserModelDtoDetail)context.DataItem" KeyboardNavigationEnabled="true" />
</DetailRowTemplate>
<EditFormTemplate Context="EditFormContext">
@{
var transfer2 = (UserModelDtoDetail)EditFormContext.EditModel;
}
<DxFormLayout CssClass="w-100">
<DxFormLayoutItem Caption=@localizer.GetString(ResourceKeys.EmailAddress) ColSpanMd="4">
<DxFormLayoutItem Caption=@Localizer.GetString(ResourceKeys.EmailAddress) ColSpanMd="4">
@EditFormContext.GetEditor("UserDto.EmailAddress")
</DxFormLayoutItem>
<DxFormLayoutItem Caption=@localizer.GetString(ResourceKeys.EmailAddress) ColSpanMd="4">
<DxFormLayoutItem Caption=@Localizer.GetString(ResourceKeys.EmailAddress) ColSpanMd="4">
@EditFormContext.GetEditor("UserDto.EmailAddress")
</DxFormLayoutItem>
<DxFormLayoutItem Caption=@localizer.GetString(ResourceKeys.ConfirmEmail) ColSpanMd="4">
<DxFormLayoutItem Caption=@Localizer.GetString(ResourceKeys.ConfirmEmail) ColSpanMd="4">
@EditFormContext.GetEditor("UserDto.EmailConfirmed")
</DxFormLayoutItem>
<DxFormLayoutItem Caption=@localizer.GetString(ResourceKeys.PhoneNumber) ColSpanMd="4">
<DxFormLayoutItem Caption=@Localizer.GetString(ResourceKeys.PhoneNumber) ColSpanMd="4">
@EditFormContext.GetEditor("UserDto.PhoneNumber")
</DxFormLayoutItem>
<DxFormLayoutItem Caption=@localizer.GetString(ResourceKeys.FirstName) ColSpanMd="4">
<DxFormLayoutItem Caption=@Localizer.GetString(ResourceKeys.FirstName) ColSpanMd="4">
@EditFormContext.GetEditor("Profile.FirstName")
</DxFormLayoutItem>
<DxFormLayoutItem Caption=@localizer.GetString(ResourceKeys.LastName) ColSpanMd="4">
<DxFormLayoutItem Caption=@Localizer.GetString(ResourceKeys.LastName) ColSpanMd="4">
@EditFormContext.GetEditor("Profile.LastName")
</DxFormLayoutItem>
@ -152,68 +152,68 @@
</div>
@code {
private ILogger _logger;
public UserModelDtoDetail myModel = new UserModelDtoDetail();
private LoggerClient<ManageUsers> _logger;
//public UserModelDtoDetail UserModelDtoDetail = new();
public List<UserModelDtoDetail>? UserData { get; set; }
public List<UserModelDtoDetail> UserData { get; set; }
bool PopupVisible { get; set; }
IGrid? Grid { get; set; }
object? MasterGridData { get; set; }
IGrid Grid { get; set; }
//object? MasterGridData { get; set; }
bool AutoCollapseDetailRow { get; set; }
public List<string> ignoreList = new List<string>
{
public List<string> IgnoreList =
[
"ReceiverEmailAddress",
"ReceiverId",
"SenderEmailAddress",
"SenderId",
"ContextId"
};
"ReceiverId",
"SenderEmailAddress",
"SenderId",
"ContextId"
];
public MessageWizardModel messageWizardModel = new MessageWizardModel();
public MessageWizardModel MessageWizardModel = new MessageWizardModel();
async void SendMail(UserModelDtoDetail Item)
async void SendMail(UserModelDtoDetail item)
{
var user = await userDataService.GetUserDetailByIdAsync(Item.Id);
var user = await UserDataService.GetUserDetailByIdAsync(item.Id);
_logger.Info($"Sending mail to {user.UserDto.EmailAddress}");
messageWizardModel.ReceiverId = user.Id;
messageWizardModel.ReceiverEmailAddress = user.UserDto.EmailAddress;
messageWizardModel.SenderId = sessionService.User.UserId;
messageWizardModel.SenderEmailAddress = sessionService.User.Email;
_logger.Info($"Sending mail to {messageWizardModel.ReceiverEmailAddress} from {messageWizardModel.SenderId}");
MessageWizardModel.ReceiverId = user.Id;
MessageWizardModel.ReceiverEmailAddress = user.UserDto.EmailAddress;
MessageWizardModel.SenderId = SessionService.User.UserId;
MessageWizardModel.SenderEmailAddress = SessionService.User.Email;
_logger.Info($"Sending mail to {MessageWizardModel.ReceiverEmailAddress} from {MessageWizardModel.SenderId}");
PopupVisible = true;
}
void CancelCreateClick()
{
PopupVisible = false;
}
void EulaPopupClosed()
{
//cancel clicked
}
void EulaPopupClosing(PopupClosingEventArgs args)
{
//myModel = new TransferWizardModel();
messageWizardModel = new MessageWizardModel();
MessageWizardModel = new MessageWizardModel();
}
//-----------------------------------------------------------------------------------
public async Task SubmitForm(object Result)
public async Task SubmitForm(object result)
{
var email = await wizardProcessor.ProcessWizardAsync<MessageWizardModel>(Result.GetType(), Result);
var email = await WizardProcessor.ProcessWizardAsync<MessageWizardModel>(result.GetType(), result);
_logger.Info($"Submitted nested form: {Result.GetType().FullName}");
_logger.Info($"Submitted nested form: {result.GetType().FullName}");
}
void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
@ -222,7 +222,7 @@
{
e.CssClass = "bg-alt";
}
if (e.ElementType == GridElementType.HeaderCell)
else if (e.ElementType == GridElementType.HeaderCell)
{
e.Style = "background-color: rgba(0, 0, 0, 0.08); font-style=bold";
@ -232,50 +232,54 @@
void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e)
{
if (e.IsNew)
if (!e.IsNew) return;
var userEditModel = (UserModelDtoDetail)e.EditModel; //TODO not valid cast
userEditModel.Id = Guid.NewGuid();
userEditModel.UserDto = new UserDtoDetail
{
var userEditModel = (UserModelDtoDetail)e.EditModel; //TODO not valid cast
userEditModel.Id = Guid.NewGuid();
AffiliateId = Guid.NewGuid(),
EmailAddress = "",
PhoneNumber = ""
};
userEditModel.UserDto = new UserDtoDetail();
userEditModel.UserDto.AffiliateId = Guid.NewGuid();
userEditModel.UserDto.EmailAddress = "";
userEditModel.UserDto.PhoneNumber = "";
userEditModel.Profile = new ProfileDto();
userEditModel.Profile.Name = "New user";
userEditModel.Profile = new ProfileDto
{
Name = "New user"
};
userEditModel.Products = new List<Product>();
userEditModel.ServiceProviders = new List<TiamServiceProvider>();
userEditModel.UserProductMappings = new List<UserProductMapping>();
}
userEditModel.Products = [];
userEditModel.ServiceProviders = [];
userEditModel.UserProductMappings = [];
}
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
{
var userModelDtoDetail = ((UserModelDtoDetail)e.EditModel);
if (e.IsNew)
{
//add new orderData to orderData array
RegistrationModel registration = new RegistrationModel();
var registration = new RegistrationModel();
//TODO: Refractor to userDataService
Random random = new Random();
string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
string password = new string(Enumerable.Repeat(chars, 10)
var random = new Random();
const string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
var password = new string(Enumerable.Repeat(chars, 10)
.Select(s => s[random.Next(s.Length)]).ToArray());
registration.Email = ((UserModelDtoDetail)e.EditModel).UserDto.EmailAddress;
registration.PhoneNumber = ((UserModelDtoDetail)e.EditModel).UserDto.PhoneNumber;
registration.Email = userModelDtoDetail.UserDto.EmailAddress;
registration.PhoneNumber = userModelDtoDetail.UserDto.PhoneNumber;
registration.Password = password;
registration.ReferralId = null;
await userDataService.CreateGuestUser(registration);
await UserDataService.CreateGuestUser(registration);
_logger.Info("New user created added");
}
else
{
_logger.Info("orderData updated at id " + ((UserModelDtoDetail)e.EditModel).Id);
_logger.Info("orderData updated at id " + userModelDtoDetail.Id);
//await transferDataService.UpdateTransferAsync((TransferWizardModel)e.EditModel);
//modify transferData where transferData.Id == e.EditModel.Id
@ -292,8 +296,10 @@
// }
// }
//TODO: ne a teljes grid-et refresh-eljük, elég lenne csak az adott sort! - J.
await UpdateDataAsync();
}
async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e)
{
//await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
@ -301,10 +307,11 @@
_logger.Info("orderData deleted");
//await UpdateDataAsync();
}
async Task UpdateDataAsync()
{
//refresh grid
UserData = await userDataService.GetUsersWithDetailsAsync();
UserData = (await UserDataService.GetUsersWithDetailsAsync()).OrderBy(x => x.Profile?.Name).ToList();
_logger.Info("orderData grid refreshed");
}
@ -312,31 +319,31 @@
{
_logger = new LoggerClient<ManageUsers>(LogWriters.ToArray());
UserData = (await userDataService.GetUsersWithDetailsAsync())?.OrderBy(x => x.Profile?.Name).ToList();
UserData = (await UserDataService.GetUsersWithDetailsAsync()).OrderBy(x => x.Profile?.Name).ToList();
base.OnInitialized();
}
void ColumnChooserButton_Click()
{
Grid?.ShowColumnChooser();
Grid.ShowColumnChooser();
}
protected override void OnAfterRender(bool firstRender)
{
if (firstRender)
{
Grid?.ExpandDetailRow(0);
Grid.ExpandDetailRow(0);
}
}
void AutoCollapseDetailRow_Changed(bool newValue)
{
AutoCollapseDetailRow = newValue;
if (newValue)
{
Grid?.BeginUpdate();
Grid?.CollapseAllDetailRows();
Grid?.ExpandDetailRow(0);
Grid?.EndUpdate();
}
if (!newValue) return;
Grid.BeginUpdate();
Grid.CollapseAllDetailRows();
Grid.ExpandDetailRow(0);
Grid.EndUpdate();
}
}

View File

@ -35,7 +35,7 @@
Click="ColumnChooserButton_Click" />
</div>
<DxGrid @ref="Grid"
Data="TransferDataFromDb"
Data="_transferDestinationWizardModels"
PageSize="8"
KeyFieldName="Id"
ValidationEnabled="false"

View File

@ -20,39 +20,46 @@ namespace TIAMSharedUI.Pages.User.SysAdmins
IGrid Grid { get; set; }
//object? TransferData { get; set; }
public TransferDestinationWizardModel myModel = new TransferDestinationWizardModel();
//public TransferDestinationWizardModel TransferDestinationWizardModel = new();
bool PopupVisible { get; set; }
public List<string> ignoreList = new List<string>
{
"ReceiverId"
};
public List<string> IgnoreList = ["ReceiverId"];
public MessageWizardModel messageWizardModel = new MessageWizardModel();
public MessageWizardModel MessageWizardModel = new();
[Inject]
public ITransferDataService transferDataService { get; set; }
public ITransferDataService TransferDataService { get; set; }
/*object? TransferData = new TransferDestinationWizardModel[]
{
new TransferDestinationWizardModel(Guid.NewGuid(), "Liszt Ferenc Airport", "International airport of Budapest", "1185, Budapest, Liszt Ferenc Repülőtér" ),
new TransferDestinationWizardModel(Guid.NewGuid(), "Buda Castle", "Historical site in the heart of Budapest", "1014 Budapest, Szent György tér 2" ),
new TransferDestinationWizardModel(Guid.NewGuid(), "Hungarian National Museum", "Historical site in the heart of Budapest", "1088 Budapest, Múzeum krt. 14-16" ),
new TransferDestinationWizardModel(Guid.NewGuid(), "Parliament of Hungary", "Historical site in the heart of Budapest", "1055 Budapest, Kossuth Lajos tér 1-3" ),
new TransferDestinationWizardModel(Guid.NewGuid(), "Heroes square", "Historical site in the heart of Budapest", "1146 Budapest, Hősök tere" ),
new TransferDestinationWizardModel(Guid.NewGuid(), "Gellert Hill", "Historical site in the heart of Budapest", "1118 Budapest, Gellérthegy" ),
new TransferDestinationWizardModel(Guid.NewGuid(), "Margaret Island", "Historical site in the heart of Budapest", "1138 Budapest, Margitsziget" ),
};*/
private LoggerClient<TransferDestinations> _logger;
object? TransferDataFromDb = new TransferDestinationWizardModel[] { };
private readonly List<TransferDestinationWizardModel> _transferDestinationWizardModels = [];
void CancelCreateClick()
{
PopupVisible = false;
}
void EulaPopupClosed()
{
//cancel clicked
}
void EulaPopupClosing(PopupClosingEventArgs args)
{
//myModel = new TransferWizardModel();
messageWizardModel = new MessageWizardModel();
MessageWizardModel = new MessageWizardModel();
}
//-----------------------------------------------------------------------------------
@ -73,15 +80,13 @@ namespace TIAMSharedUI.Pages.User.SysAdmins
void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e)
{
if (e.IsNew)
{
var newDestination = (TransferDestinationWizardModel)e.EditModel;
newDestination.Id = Guid.NewGuid().ToString();
newDestination.Name = "Destination name";
newDestination.Description = "Type some description here";
newDestination.AddressString = "The address of the destination";
if (!e.IsNew) return;
}
var newDestination = (TransferDestinationWizardModel)e.EditModel;
newDestination.Id = Guid.NewGuid().ToString();
newDestination.Name = "Destination name";
newDestination.Description = "Type some description here";
newDestination.AddressString = "The address of the destination";
}
void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
@ -91,14 +96,11 @@ namespace TIAMSharedUI.Pages.User.SysAdmins
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
{
var transferDestinationWizardModel = (TransferDestinationWizardModel)e.EditModel;
if (e.IsNew)
{
//add new row to grid
myModel = (TransferDestinationWizardModel)e.EditModel;
//add new orderData to orderData array
//await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel);
await transferDataService.CreateTransferDestination(TransferDestinationWizardModel.CopyToTransferDestination(myModel));
await TransferDataService.CreateTransferDestination(TransferDestinationWizardModel.CopyToTransferDestination(transferDestinationWizardModel));
//await transferDataService.CreateTransferDestination(new TransferDestination
/*{
Id = Guid.NewGuid(),
@ -111,7 +113,7 @@ namespace TIAMSharedUI.Pages.User.SysAdmins
_logger.Info("New orderData added");
//add mymodel to transferData array
TransferDataFromDb = ((TransferDestinationWizardModel[])TransferDataFromDb).Append(myModel).ToArray();
_transferDestinationWizardModels.Add(transferDestinationWizardModel);
}
else
{
@ -119,45 +121,41 @@ namespace TIAMSharedUI.Pages.User.SysAdmins
//modify transferData where transferData.Id == e.EditModel.Id
//get transfer from TransferData by Id
var abg = ((TransferDestinationWizardModel[])TransferDataFromDb).Length;
//var abg = ((TransferDestinationWizardModel[])TransferDataFromDb).Length;
foreach (var transferToModify in (TransferDestinationWizardModel[])TransferDataFromDb)
foreach (var transferToModify in _transferDestinationWizardModels)
{
myModel = (TransferDestinationWizardModel)e.EditModel;
if (transferToModify.Id != transferDestinationWizardModel.Id)
continue;
if (transferToModify.Id == myModel.Id)
{
transferToModify.Id = myModel.Id;
transferToModify.Name = myModel.Name;
transferToModify.Description = myModel.Description;
transferToModify.AddressString = myModel.AddressString;
transferToModify.Price = myModel.Price;
transferToModify.PriceType = myModel.PriceType;
transferToModify.Id = transferDestinationWizardModel.Id;
transferToModify.Name = transferDestinationWizardModel.Name;
transferToModify.Description = transferDestinationWizardModel.Description;
transferToModify.AddressString = transferDestinationWizardModel.AddressString;
transferToModify.Price = transferDestinationWizardModel.Price;
transferToModify.PriceType = transferDestinationWizardModel.PriceType;
await transferDataService.UpdateTransferDestination(TransferDestinationWizardModel.CopyToTransferDestination(transferToModify));
}
await TransferDataService.UpdateTransferDestination(TransferDestinationWizardModel.CopyToTransferDestination(transferToModify));
}
}
//await NwindDataService.UpdateEmployeeAsync((EditableEmployee)e.DataItem, (EditableEmployee)e.EditModel);
//TODO: ne a teljes grid-et refresh-eljük, elég lenne csak az adott sort! - J.
await UpdateDataAsync();
}
async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e)
{
//await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
//remove orderData from orderData array
_logger.Info("orderData deleted");
//await UpdateDataAsync();
}
async Task UpdateDataAsync()
{
//DataSource = await NwindDataService.GetEmployeesEditableAsync();
await transferDataService.GetDestinationsAsync();
//await TransferDataService.GetDestinationsAsync();
//refresh grid
await FillGridDataSource();
_logger.Info("orderData grid refreshed");
}
@ -167,24 +165,26 @@ namespace TIAMSharedUI.Pages.User.SysAdmins
_logger = new LoggerClient<TransferDestinations>(LogWriters.ToArray());
var a = await transferDataService.GetDestinationsAsync();
_logger.Info($"TransferDataFromDb: {((TransferDestinationWizardModel[])TransferDataFromDb).Length}");
foreach (var item in a)
await FillGridDataSource();
}
private async Task FillGridDataSource()
{
var destinations = await TransferDataService.GetDestinationsAsync();
foreach (var item in destinations)
{
//add new transferwizardmodel to transferData array
TransferDataFromDb = ((TransferDestinationWizardModel[])TransferDataFromDb).Append(
new TransferDestinationWizardModel(item.Id, item.Name, item.Description, item.AddressString, item.Price, item.Price2, item.Price3, item.Address)).ToArray();
_logger.DetailConditional($"TransferDataFromDb: {item.Name}");
_transferDestinationWizardModels.Add(new TransferDestinationWizardModel(item.Id, item.Name, item.Description, item.AddressString, item.Price, item.Price2, item.Price3, item.Address));
_logger.DetailConditional($"_transferDestinationWizardModels add: {item.Name}");
}
_logger.Info($"TransferDataFromDb: {((TransferDestinationWizardModel[])TransferDataFromDb).Length}");
_logger.Info($"_transferDestinationWizardModels: {_transferDestinationWizardModels.Count}");
}
void ColumnChooserButton_Click()
{
Grid.ShowColumnChooser();
}
}
}

View File

@ -8,13 +8,13 @@
@using TIAMWebApp.Shared.Application.Utility
@using AyCode.Services.Loggers
@using TIAM.Core.Loggers
@inject IServiceProviderDataService serviceProviderDataService
@inject IServiceProviderDataService ServiceProviderDataService
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
<div class="mb-2">
UserProductMapping
</div>
<DxGrid Data="DetailGridData"
<DxGrid Data="_detailGridData"
PageSize="5"
AutoExpandAllGroupRows="true"
KeyboardNavigationEnabled="KeyboardNavigationEnabled"
@ -42,7 +42,7 @@
@EditFormContext.GetEditor("UserId")
</DxFormLayoutItem>
<DxFormLayoutItem Caption="Product:" ColSpanMd="4">
<DxComboBox Data="@AvailableServices" TextFieldName="Name" @bind-Value="((UserProductMapping)EditFormContext.EditModel).ProductId" />
<DxComboBox Data="@_availableServices" TextFieldName="Name" @bind-Value="((UserProductMapping)EditFormContext.EditModel).ProductId" />
</DxFormLayoutItem>
<DxFormLayoutItem Caption="Permissions" ColSpanMd="4">
@EditFormContext.GetEditor("Permissions")
@ -59,11 +59,11 @@
[Parameter]
public bool KeyboardNavigationEnabled { get; set; }
[Parameter]
public UserModelDtoDetail Customer { get; set; }
public UserModelDtoDetail UserModelDtoDetail { get; set; }
List<TiamServiceProvider> DetailGridData;
List<TiamServiceProvider> _detailGridData;
List<TiamServiceProvider> AvailableServices;
List<TiamServiceProvider> _availableServices;
public UserModelDtoDetail UserInfo;
@ -73,27 +73,24 @@
{
_logger = new LoggerClient<UserGrid_MasterDetail_NestedGrid_ServiceProviders>(LogWriters.ToArray());
//get userproductmappings by customer id
if (Customer.ServiceProviders == null)
DetailGridData = new List<TiamServiceProvider>();
else
DetailGridData = Customer.ServiceProviders;
_detailGridData = UserModelDtoDetail.ServiceProviders ?? new List<TiamServiceProvider>();
_availableServices = await ServiceProviderDataService.GetServiceProvidersAsync();
AvailableServices = await serviceProviderDataService.GetServiceProvidersAsync();
_logger.Info($"DetailGridData: {DetailGridData.Count}");
_logger.Info($"DetailGridData: {_detailGridData.Count}");
}
void CustomizeEditModel(GridCustomizeEditModelEventArgs e)
{
if (e.IsNew)
{
UserProductMapping newProductMapping = new UserProductMapping();
newProductMapping.ProductId = Guid.NewGuid();
newProductMapping.UserId = Customer.Id;
newProductMapping.Permissions = 1;
if (!e.IsNew) return;
e.EditModel = newProductMapping;
}
var newProductMapping = new UserProductMapping
{
ProductId = Guid.NewGuid(),
UserId = UserModelDtoDetail.Id,
Permissions = 1
};
e.EditModel = newProductMapping;
}
async Task EditModelSaving(GridEditModelSavingEventArgs e)
@ -101,24 +98,21 @@
if (e.IsNew)
//add new orderData to orderData array
_logger.Info("New orderData added");
//await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel);
else
_logger.Info("orderData updated");
//await NwindDataService.UpdateEmployeeAsync((EditableEmployee)e.DataItem, (EditableEmployee)e.EditModel);
await UpdateDataAsync();
}
async Task DataItemDeleting(GridDataItemDeletingEventArgs e)
{
//await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
//remove orderData from orderData array
_logger.Info("orderData deleted");
//await UpdateDataAsync();
}
async Task UpdateDataAsync()
{
//DataSource = await NwindDataService.GetEmployeesEditableAsync();
//refresh grid
_logger.Info("orderData grid refreshed");
}

View File

@ -8,14 +8,13 @@
@using TIAM.Core.Loggers
@using AyCode.Core.Loggers
@using AyCode.Services.Loggers
@inject IUserDataService NwindDataService
@inject IServiceProviderDataService serviceProviderDataService
@inject IServiceProviderDataService ServiceProviderDataService
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
<div class="mb-2">
UserProductMapping
</div>
<DxGrid Data="DetailGridData"
<DxGrid Data="_detailGridData"
PageSize="5"
AutoExpandAllGroupRows="true"
KeyboardNavigationEnabled="KeyboardNavigationEnabled"
@ -43,7 +42,7 @@
@EditFormContext.GetEditor("UserId")
</DxFormLayoutItem>
<DxFormLayoutItem Caption="Product:" ColSpanMd="4">
<DxComboBox Data="@AvailableProducts" TextFieldName="Name" @bind-Value="((UserProductMapping)EditFormContext.EditModel).ProductId" />
<DxComboBox Data="@_availableProducts" TextFieldName="Name" @bind-Value="((UserProductMapping)EditFormContext.EditModel).ProductId" />
</DxFormLayoutItem>
<DxFormLayoutItem Caption="Permissions" ColSpanMd="4">
@EditFormContext.GetEditor("Permissions")
@ -60,40 +59,35 @@
[Parameter]
public bool KeyboardNavigationEnabled { get; set; }
[Parameter]
public UserModelDtoDetail Customer { get; set; }
public UserModelDtoDetail UserModelDtoDetail { get; set; }
private ILogger _logger;
List<UserProductMapping> DetailGridData;
private LoggerClient<UserGrid_MasterDetail_NestedGrid_UserProductMapping> _logger;
List<Product> AvailableProducts;
public UserModelDtoDetail UserInfo;
List<UserProductMapping> _detailGridData;
List<Product> _availableProducts;
protected override async Task OnInitializedAsync()
{
_logger = new LoggerClient<UserGrid_MasterDetail_NestedGrid_UserProductMapping>(LogWriters.ToArray());
//get userproductmappings by customer id
if (Customer.UserProductMappings == null)
DetailGridData = new List<UserProductMapping>();
else
DetailGridData = Customer.UserProductMappings;
_detailGridData = UserModelDtoDetail.UserProductMappings ?? new List<UserProductMapping>();
_availableProducts = await ServiceProviderDataService.GetAllProductsAsync();
AvailableProducts = await serviceProviderDataService.GetAllProductsAsync();
_logger.Info($"DetailGridData: {DetailGridData.Count}");
_logger.Info($"DetailGridData: {_detailGridData.Count}");
}
void CustomizeEditModel(GridCustomizeEditModelEventArgs e)
{
if (e.IsNew)
{
UserProductMapping newProductMapping = new UserProductMapping();
newProductMapping.ProductId = Guid.NewGuid();
newProductMapping.UserId = Customer.Id;
newProductMapping.Permissions = 1;
if (!e.IsNew) return;
e.EditModel = newProductMapping;
}
var newProductMapping = new UserProductMapping
{
ProductId = Guid.NewGuid(),
UserId = UserModelDtoDetail.Id,
Permissions = 1
};
e.EditModel = newProductMapping;
}
async Task EditModelSaving(GridEditModelSavingEventArgs e)
@ -101,24 +95,21 @@
if (e.IsNew)
//add new orderData to orderData array
_logger.Info("New orderData added");
//await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel);
else
_logger.Info("orderData updated");
//await NwindDataService.UpdateEmployeeAsync((EditableEmployee)e.DataItem, (EditableEmployee)e.EditModel);
await UpdateDataAsync();
}
async Task DataItemDeleting(GridDataItemDeletingEventArgs e)
{
//await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
//remove orderData from orderData array
_logger.Info("orderData deleted");
//await UpdateDataAsync();
}
async Task UpdateDataAsync()
{
//DataSource = await NwindDataService.GetEmployeesEditableAsync();
//refresh grid
_logger.Info("orderData grid refreshed");
}

View File

@ -169,16 +169,15 @@ namespace TIAMWebApp.Client.Services
return await http.GetFromJsonAsync<List<UserModelDto>>(APIUrls.GetUsers);
}
public async Task<List<UserModelDtoDetail>?> GetUsersWithDetailsAsync()
public async Task<List<UserModelDtoDetail>> GetUsersWithDetailsAsync()
{
var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUsersWithDetails}";
_logger.Info("GetUserByEmailAsync url: " + url + "!");
var response = await http.GetFromJsonAsync<List<UserModelDtoDetail>>(APIUrls.GetUsersWithDetails);
//var result = await response.Content.ReadAsStringAsync();
//var user = JsonConvert.DeserializeObject<UserModelDto>(result);
return response;
return response ?? [];
}

View File

@ -25,7 +25,7 @@ namespace TIAMWebApp.Shared.Application.Interfaces
public Task<List<UserModelDto>?> GetUsersAsync();
public Task<List<UserModelDtoDetail>?> GetUsersWithDetailsAsync();
public Task<List<UserModelDtoDetail>> GetUsersWithDetailsAsync();
public Task<UserModelDto?> GetUserByIdAsync(Guid id);
public Task<UserModelDtoDetail?> GetUserDetailByIdAsync(Guid id);