Localizer
@inject ISessionService SessionService
@inject IWizardProcessor WizardProcessor
@inject IUserDataService UserDataService
+@inject AdminSignalRClient AdminSignalRClient;
Users
@@ -185,7 +189,7 @@
MessageWizardModel.ReceiverId = item.Id;
MessageWizardModel.ReceiverEmailAddress = item.UserDto.EmailAddress;
- MessageWizardModel.SenderId = SessionService.User.UserId;
+ MessageWizardModel.SenderId = SessionService.User?.UserId ?? throw new NullReferenceException("SessionService.User == null");
MessageWizardModel.SenderEmailAddress = "info@anataworld.com";
// _logger.Info($"Sending mail to {MessageWizardModel.ReceiverEmailAddress} from {MessageWizardModel.SenderId}");
@@ -261,8 +265,6 @@
userEditModel.ServiceProviders = [];
userEditModel.UserProductMappings = [];
}
-
-
}
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
@@ -274,14 +276,17 @@
var registration = new RegistrationModel();
//TODO: Refractor to userDataService
- var random = new Random();
- const string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
- var password = new string(Enumerable.Repeat(chars, 10)
- .Select(s => s[random.Next(s.Length)]).ToArray());
+
+ // 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.UserDto.EmailAddress;
registration.PhoneNumber = userModelDtoDetail.UserDto.PhoneNumber;
- registration.Password = password;
+ //registration.Password = password;
+ registration.Password = AcCharGenerator.NewPassword(AcConst.MinPasswordLength, 16);
registration.ReferralId = null;
await UserDataService.CreateGuestUser(registration);
@@ -318,7 +323,8 @@
async Task UpdateDataAsync()
{
//refresh grid
- UserData = (await UserDataService.GetUsersWithDetailsAsync()).OrderBy(x => x.ProfileDto?.Name).ToList();
+ //UserData = (await UserDataService.GetUsersWithDetailsAsync()).OrderBy(x => x.ProfileDto?.Name).ToList();
+ UserData = await AdminSignalRClient.GetAllAsync>(SignalRTags.GetAllUserModelDtoDetails) ?? [];
_logger.Info("UserData grid refreshed");
}
@@ -326,7 +332,7 @@
{
_logger = new LoggerClient(LogWriters.ToArray());
- UserData = (await UserDataService.GetUsersWithDetailsAsync()).OrderBy(x => x.ProfileDto?.Name).ToList();
+ await UpdateDataAsync();
base.OnInitialized();
}
diff --git a/TIAMSharedUI/Pages/User/SysAdmins/TransferToDriverGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/TransferToDriverGridComponent.razor
index 629a257d..cd0b9636 100644
--- a/TIAMSharedUI/Pages/User/SysAdmins/TransferToDriverGridComponent.razor
+++ b/TIAMSharedUI/Pages/User/SysAdmins/TransferToDriverGridComponent.razor
@@ -34,15 +34,26 @@
EditMode="GridEditMode.EditRow"
ColumnResizeMode="GridColumnResizeMode.NextColumn">
-
-
+
+
@{
var userEmailFieldName = $"{nameof(TransferToDriver.UserProductMapping)}.{nameof(UserProductMapping.User)}.{nameof(User.EmailAddress)}";
var userEmailFieldNameComboItem = $"{nameof(UserProductMapping.User)}.{nameof(User.EmailAddress)}";
var userNameFieldNameComboItem = $"{nameof(UserProductMapping.User)}.{nameof(User.FullName)}";
}
-
+
+
+ @{
+ var email = string.Empty;
+ var transferToDriverDataItem = ((TransferToDriver)context.DataItem);
+
+ if (HasReadPermission(transferToDriverDataItem.UserProductMappingId))
+ email = transferToDriverDataItem.UserProductMapping.User.EmailAddress;
+ }
+ @email
+
@{
var transferToDriverEditModel = (TransferToDriver)context.EditModel;
@@ -51,6 +62,7 @@
-
+
@{
- var transferToDriver = (TransferToDriver)context.DataItem;
- @_cars.FirstOrDefault(x => x.Id == transferToDriver.CarId)?.LicencePlate
+ var transferToDriverDataItem = (TransferToDriver)context.DataItem;
+ @_cars.FirstOrDefault(x => x.Id == transferToDriverDataItem.CarId)?.LicencePlate
}
@@ -80,6 +92,7 @@
*@
-
+
+
+ @{
+ var price = string.Empty;
+ var transferToDriverDataItem = ((TransferToDriver)context.DataItem);
+
+ if (HasReadPermission(transferToDriverDataItem.UserProductMappingId))
+ price = transferToDriverDataItem.Price.ToString("N0");
+ }
+
+ @price
+
+
+
@* *@
-
-
+
+
@code {
+ ///
+ /// UserProductMappingId! Not required...
+ ///
+ [Parameter] public Guid? DriverId { get; set; } = null;
[Parameter] public Guid ContextId { get; set; }
[Parameter] public ITransferToDriversRelation ParentData { get; set; } = null!;
[Parameter] public EventCallback OnTransferToDriverChanged { get; set; }
+ [Parameter] public bool CommandColumnVisible { get; set; } = true;
+ [Parameter] public bool NewButtonVisible { get; set; } = true;
+ [Parameter] public bool EditButtonVisible { get; set; } = true;
+ [Parameter] public bool DeleteButtonVisible { get; set; } = true;
+
+ private bool _hasEditPermission = true;
+ private bool HasReadPermission(Guid userProductMappingId) => DriverId.IsNullOrEmpty() || DriverId == userProductMappingId;
+
private TransferToDriversDetailGrid _transferToDriversGrid = null!;
private LoggerClient _logger = null!;
@@ -161,6 +199,7 @@
void CustomizeEditModel(GridCustomizeEditModelEventArgs e)
{
+ _hasEditPermission = HasReadPermission(((TransferToDriver)e.DataItem).UserProductMappingId);
if (!e.IsNew) return;
var newDriver = (TransferToDriver)e.EditModel;
diff --git a/TIAMWebApp/Client/Services/WizardProcessor.cs b/TIAMWebApp/Client/Services/WizardProcessor.cs
index 20a3e960..5d1e99b0 100644
--- a/TIAMWebApp/Client/Services/WizardProcessor.cs
+++ b/TIAMWebApp/Client/Services/WizardProcessor.cs
@@ -25,22 +25,22 @@ namespace TIAMWebApp.Client.Services
{
switch (type.Name)
{
- case "TransferDestinationWizardModel":
+ case nameof(TransferDestinationWizardModel):
var result = await TransferDataService.CreateTransferDestination((TransferDestination)data);
return result as TModelType;
- case "TransferWizardModel":
+ case nameof(TransferWizardModel):
Console.WriteLine(@"TransferWizardModel");
var transferResult = await TransferDataService.CreateTransfer((TransferWizardModel)data);
return transferResult as TModelType;
- case "MessageWizardModel":
+ case nameof(MessageWizardModel):
EmailMessage emailMessage = ((MessageWizardModel)data).CopyToEmailMessage();
var messageResult = await MessageSenderService.SendNoticeAsync(emailMessage, 1);
return messageResult as TModelType;
- case "ServiceProvider":
- return null;
+ //case nameof(ServiceProvider):
+ // return null;
default:
return null;
}
diff --git a/TIAMWebApp/Server/Controllers/UserAPIController.cs b/TIAMWebApp/Server/Controllers/UserAPIController.cs
index cac6ddca..e1cf5dbc 100644
--- a/TIAMWebApp/Server/Controllers/UserAPIController.cs
+++ b/TIAMWebApp/Server/Controllers/UserAPIController.cs
@@ -289,10 +289,10 @@ namespace TIAMWebApp.Server.Controllers
if (user != null)
{
- var random = new Random();
- var chars = "1234567890";
- var nameExtension = new string(Enumerable.Repeat(chars, 10)
- .Select(s => s[random.Next(s.Length)]).ToArray());
+ //var random = new Random();
+ //var chars = "1234567890";
+ //var nameExtension = new string(Enumerable.Repeat(chars, 10)
+ // .Select(s => s[random.Next(s.Length)]).ToArray());
var userId = Guid.NewGuid();
@@ -348,22 +348,23 @@ namespace TIAMWebApp.Server.Controllers
[AllowAnonymous]
[HttpGet]
[Route("GetUsers")]
- public Task> GetUsers()
+ public async Task> GetUsers()
{
//var users = await _userDal.Ctx.Users.ToListAsync();//.GetUsersAsync();
//return users;
- return userDal.GetAllUserModelDtoAsync();
+ return await userDal.GetAllUserModelDtoAsync();
}
[AllowAnonymous]
[HttpGet]
[Route(APIUrls.GetUsersWithDetailsRouteName)]
- public Task> GetUsersWithDetails()
+ [SignalR(SignalRTags.GetAllUserModelDtoDetails)]
+ public async Task> GetUsersWithDetails()
{
_logger.Info("GetUsersWithDetails called");
- //var users = await _userDal.Ctx.Users.ToListAsync();//.GetUsersAsync();
- //return users;
- return userDal.GetAllUserModelDtoAsync();
+
+ var users = await userDal.GetAllUserModelDtoAsync();
+ return users;
}
[NonAction]
@@ -388,15 +389,15 @@ namespace TIAMWebApp.Server.Controllers
public async Task? GetUserByEmail(string email)
{
_logger.Info($"GetUserByEmail called with email: {email}");
- var result = userDal.GetUserModelDtoByEmailAsync(email, false);
- if (result.Result == null)
+ var result = await userDal.GetUserModelDtoByEmailAsync(email, false);
+ if (result == null)
{
UserModelDto resultDto = new UserModelDto();
return resultDto;
}
else
{
- return result.Result;
+ return result;
}
}
@@ -404,10 +405,10 @@ namespace TIAMWebApp.Server.Controllers
[AllowAnonymous]
[HttpPost]
[Route("GetUserById")]
- public Task GetUserById([FromBody] Guid id)
+ public async Task GetUserById([FromBody] Guid id)
{
_logger.Info($"GetUserById called with id: {id}");
- return userDal.GetUserModelDtoByIdAsync(id, true);
+ return await userDal.GetUserModelDtoByIdAsync(id, true);
}
[AllowAnonymous]