From 7d4106c47f2d839ddec067021c49983980670bd6 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 2 Jul 2024 19:03:41 +0200 Subject: [PATCH] user edit fix, driver pages --- .../Services/SessionServiceMobile.cs | 5 + TIAMSharedUI/Pages/AppLaunchComponent.razor | 26 +- TIAMSharedUI/Pages/Login.razor.cs | 26 +- .../Pages/User/Drivers/DriverManageCars.razor | 189 +++++++ .../User/Drivers/DriverManageTransfers.razor | 520 ++++++++++++++++++ .../Pages/User/SysAdmins/ManageDrivers.razor | 4 +- .../Pages/User/SysAdmins/ManageUsers.razor | 52 +- TIAMSharedUI/Shared/Users/AdminNavMenu.razor | 15 +- TIAMSharedUI/TIAMSharedUI.csproj | 4 +- .../Client/Services/SessionServiceWeb.cs | 2 + .../Shared/Interfaces/ISessionService.cs | 4 +- 11 files changed, 807 insertions(+), 40 deletions(-) create mode 100644 TIAMSharedUI/Pages/User/Drivers/DriverManageCars.razor create mode 100644 TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor diff --git a/TIAMMobileApp/Services/SessionServiceMobile.cs b/TIAMMobileApp/Services/SessionServiceMobile.cs index d4b22546..5d27ab2d 100644 --- a/TIAMMobileApp/Services/SessionServiceMobile.cs +++ b/TIAMMobileApp/Services/SessionServiceMobile.cs @@ -1,6 +1,9 @@ using System.Net; +using TIAM.Core.Consts; +using TIAM.Entities.Users; using TIAMWebApp.Shared.Application.Interfaces; using TIAMWebApp.Shared.Application.Models; +using static System.Runtime.InteropServices.JavaScript.JSType; namespace TIAMMobileApp.Services { @@ -14,5 +17,7 @@ namespace TIAMMobileApp.Services public bool IsDriver { get; set; } = false; public bool IsDevAdmin { get; set; } = false; public bool IsSysAdmin { get; set; } = false; + public Guid DriverPersmissionId { get; set; } = Guid.Empty; + } } diff --git a/TIAMSharedUI/Pages/AppLaunchComponent.razor b/TIAMSharedUI/Pages/AppLaunchComponent.razor index e24f1c4e..944fad24 100644 --- a/TIAMSharedUI/Pages/AppLaunchComponent.razor +++ b/TIAMSharedUI/Pages/AppLaunchComponent.razor @@ -1,6 +1,7 @@ @* @page "/"; *@ @using Microsoft.AspNetCore.Components.Authorization @using TIAM.Core.Consts +@using TIAM.Entities.Users @using TIAMWebApp.Shared.Application.Interfaces @using TIAMWebApp.Shared.Application.Models @using TIAMWebApp.Shared.Application.Utility @@ -127,10 +128,7 @@ sessionService.User = user; sessionService.IsAuthenticated = true; sessionService.HasCompany = user.UserModelDto.UserProductMappings.Count > 0; - if (user.UserModelDto.UserProductMappings.Any(x => x.ProductId == TiamConstClient.TransferProductId)) - { - sessionService.IsDriver = true; - } + sessionService.IsDriver = CheckIfDriver(user.UserModelDto.UserProductMappings); if (user.UserModelDto.Id == TiamConstClient.DevAdminIds[0] || user.UserModelDto.Id == TiamConstClient.DevAdminIds[1]) { sessionService.IsDevAdmin = true; @@ -145,6 +143,26 @@ _logger.Debug($"Saved to session: IsAuthenticated: {sessionService.IsAuthenticated}, HasCompany: {sessionService.HasCompany}, IsDriver: {sessionService.IsDriver}, IsDevAdmin: {sessionService.IsDevAdmin}, IsSysAdmin: {sessionService.IsSysAdmin}"); } + public bool CheckIfDriver(List Permissions) + { + bool _isDriver = false; + foreach (UserProductMapping Permission in Permissions) + { + if (IsPowerOfTwoInSum(2, Permission.Permissions)) + { + _isDriver = true; + sessionService.DriverPersmissionId = Permission.Id; + } + } + return _isDriver; + } + + public static bool IsPowerOfTwoInSum(int number, int power) + { + int powerOfTwo = 1 << power; // Calculate 2^power + return (number & powerOfTwo) != 0; // Check if the bit at position `power` is set + } + public async Task<(string, string)> GetLocalSettings() { string userDetailsStr = await SecureStorageHandler.GetFromSecureStorageAsync(nameof(Setting.UserBasicDetails)); diff --git a/TIAMSharedUI/Pages/Login.razor.cs b/TIAMSharedUI/Pages/Login.razor.cs index 43b3d84d..c8ee6811 100644 --- a/TIAMSharedUI/Pages/Login.razor.cs +++ b/TIAMSharedUI/Pages/Login.razor.cs @@ -11,6 +11,7 @@ using Microsoft.Extensions.Localization; using AyCode.Services.Loggers; using Microsoft.AspNetCore.Components.Authorization; using TIAM.Core.Consts; +using TIAM.Entities.Users; namespace TIAMSharedUI.Pages { @@ -161,10 +162,7 @@ namespace TIAMSharedUI.Pages sessionService.User = user; sessionService.IsAuthenticated = true; sessionService.HasCompany = user.UserModelDto.UserProductMappings.Count > 0; - if(user.UserModelDto.UserProductMappings.Any(x=>x.ProductId==TiamConstClient.TransferProductId)) - { - sessionService.IsDriver = true; - } + sessionService.IsDriver = CheckIfDriver(user.UserModelDto.UserProductMappings); if (user.UserModelDto.Id == TiamConstClient.DevAdminIds[0] || user.UserModelDto.Id == TiamConstClient.DevAdminIds[1]) { sessionService.IsDevAdmin = true; @@ -178,5 +176,25 @@ namespace TIAMSharedUI.Pages } BrowserConsoleLogWriter.Debug($"Saved to session: IsAuthenticated: {sessionService.IsAuthenticated}, HasCompany: {sessionService.HasCompany}, IsDriver: {sessionService.IsDriver}, IsDevAdmin: {sessionService.IsDevAdmin}, IsSysAdmin: {sessionService.IsSysAdmin}"); } + + public bool CheckIfDriver(List Permissions) + { + bool _isDriver = false; + foreach (UserProductMapping Permission in Permissions) + { + if (IsPowerOfTwoInSum(2, Permission.Permissions)) + { + _isDriver = true; + sessionService.DriverPersmissionId = Permission.Id; + } + } + return _isDriver; + } + + public static bool IsPowerOfTwoInSum(int number, int power) + { + int powerOfTwo = 1 << power; // Calculate 2^power + return (number & powerOfTwo) != 0; // Check if the bit at position `power` is set + } } } diff --git a/TIAMSharedUI/Pages/User/Drivers/DriverManageCars.razor b/TIAMSharedUI/Pages/User/Drivers/DriverManageCars.razor new file mode 100644 index 00000000..6a21964d --- /dev/null +++ b/TIAMSharedUI/Pages/User/Drivers/DriverManageCars.razor @@ -0,0 +1,189 @@ +@page "/driver/cars/{driverId}" +@using BlazorAnimation +@using TIAM.Models.Dtos.Users +@using TIAM.Resources +@using TIAM.Services +@using TIAMSharedUI.Pages.Components +@using TIAMSharedUI.Pages.User.SysAdmins +@using TIAMSharedUI.Shared +@using TIAMWebApp.Shared.Application.Interfaces +@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels +@using TIAMWebApp.Shared.Application.Models.PageModels +@using TIAMWebApp.Shared.Application.Utility +@using AyCode.Services.Loggers +@layout AdminLayout +@inject IEnumerable LogWriters +@inject IStringLocalizer Localizer +@inject ISessionService SessionService +@inject IWizardProcessor WizardProcessor +@inject IUserDataService UserDataService +Car list + +
+

Car list

+

Manage cars here!

+
+ + +
+
+
+ +
+
+
+ +
+ + + +
+ +
+
+
+ +
+
+ +
+
+ +@code { + + [Parameter] public string driverId { get; set; } + + private LoggerClient _logger; + //public UserModelDtoDetail UserModelDtoDetail = new(); + + + bool PopupVisible { get; set; } + + IGrid Grid { get; set; } + //object? MasterGridData { get; set; } + + public List IgnoreList = + [ + "ReceiverEmailAddress", + "ReceiverId", + "SenderEmailAddress", + "SenderId", + "ContextId" + ]; + + + + void Grid_CustomizeElement(GridCustomizeElementEventArgs e) + { + if (e.ElementType == GridElementType.DataRow && e.VisibleIndex % 2 == 1) + { + e.CssClass = "bg-alt"; + } + else if (e.ElementType == GridElementType.HeaderCell) + { + e.Style = "background-color: rgba(0, 0, 0, 0.08); font-style=bold"; + + } + } + + void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e) + { + if (!e.IsNew) return; + + var userEditModel = (UserModelDtoDetail)e.EditModel; //TODO not valid cast + userEditModel.Id = Guid.NewGuid(); + + userEditModel.UserDto = new UserDtoDetail + { + AffiliateId = Guid.NewGuid(), + EmailAddress = "", + PhoneNumber = "" + }; + + userEditModel.ProfileDto = new TIAM.Entities.Profiles.Profile + { + Name = "New user" + }; + + 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 + 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()); + + registration.Email = userModelDtoDetail.UserDto.EmailAddress; + registration.PhoneNumber = userModelDtoDetail.UserDto.PhoneNumber; + registration.Password = password; + registration.ReferralId = null; + + await UserDataService.CreateGuestUser(registration); + _logger.Info("New user created added"); + } + else + { + _logger.Info("orderData updated at id " + userModelDtoDetail.Id); + + //await transferDataService.UpdateTransferAsync((TransferWizardModel)e.EditModel); + //modify transferData where transferData.Id == e.EditModel.Id + } + //get transfer from TransferData by Id + + // foreach (var transferToModify in (List)TransferData) + // { + // myModel = (Transfer)e.EditModel; + + // if (transferToModify.Id == myModel.Id) + // { + // //transferToModify.Driver = myModel.Driver; + // } + // } + + //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() + { + //refresh grid + + _logger.Info("orderData grid refreshed"); + } + + protected override async Task OnInitializedAsync() + { + _logger = new LoggerClient(LogWriters.ToArray()); + + base.OnInitialized(); + } + + void ColumnChooserButton_Click() + { + Grid.ShowColumnChooser(); + } + +} diff --git a/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor b/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor new file mode 100644 index 00000000..4af38f7b --- /dev/null +++ b/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor @@ -0,0 +1,520 @@ +@page "/driver/transfers/{driverId}" +@using BlazorAnimation +@using TIAM.Core.Enums +@using TIAM.Entities.Emails +@using TIAM.Entities.Transfers +@using TIAM.Resources +@using TIAMSharedUI.Pages.Components +@using TIAMSharedUI.Shared +@using TIAMWebApp.Shared.Application.Interfaces +@using TIAMWebApp.Shared.Application.Models.ClientSide.UI +@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels +@using TIAMWebApp.Shared.Application.Models.PageModels +@using TIAMWebApp.Shared.Application.Utility +@using AyCode.Services.Loggers +@using TIAMWebApp.Shared.Application.Services +@using TIAMSharedUI.Shared.Components.Grids +@using AyCode.Core.Enums +@using AyCode.Core.Extensions +@using AyCode.Core.Consts +@using AyCode.Core +@using AyCode.Core.Helpers +@using DevExpress.Data.Filtering +@using TIAM.Entities.Emails +@layout AdminLayout +@inject IEnumerable LogWriters +@inject IStringLocalizer localizer +@inject IWizardProcessor wizardProcessor +@inject ITransferDataService transferDataService +@inject ISessionService sessionService +@inject AdminSignalRClient AdminSignalRClient; +Transfers + +
+

Transfer management

+

Manage transfers here!

+
+ + + + + + + + + + + +
+
+
+ +
+ + + + +
+
+ +
+ + + + + + + + + @{ + var idKeyField = ((Transfer)context.DataItem).Id.ToString("N"); + var editUri = $"mytransfers/{idKeyField}"; + + @context.Value + + } + + + + + + + + + + + + + + @{ + var keyField = context.Value; + var keyItem = (Transfer)context.DataItem; + string buttonText = "Contact"; + + } + + + + + + + @{ + + TransferStatusModel keyField = Statuses.FirstOrDefault(x => x.StatusValue == (byte)context.Value)!; + string transferStatusText = keyField.StatusName; + @transferStatusText + } + + + + + + + + + + + + + + + + + + @{ + var transfer2 = (Transfer)editFormContext.EditModel; + } + + + @editFormContext.GetEditor("FirstName") + + + @editFormContext.GetEditor("LastName") + + + @editFormContext.GetEditor("ToAddress") + + + @editFormContext.GetEditor("FromAddress") + + + + + + + + + @editFormContext.GetEditor("PassengerCount") + + + + @editFormContext.GetEditor("Payed") + + + + @editFormContext.GetEditor("TransferStatusType") + + + + + + +
+ +
+
+
+
+
+ + +
+ + + + + + + + + + +
+
+
+
+
+
+ +
+
+ +
+
+ + +@code { + [Parameter] public string driverId { get; set; } + + private LoggerClient _logger; + + private bool _popupVisible; + private TransferGrid _gridTransfer; + + private DxTagBox _filterTag; + + public List IgnoreList = + [ + "ReceiverEmailAddress", + "ReceiverFullName", + "ReceiverId", + "SenderEmailAddress", + "SenderFullName", + "SenderId", + "ContextId", + ]; + + private static readonly List Statuses = + [ + new(Convert.ToByte(TransferStatusType.OrderSubmitted), "Order submitted"), + new(Convert.ToByte(TransferStatusType.OrderConfirmed), "Order confirmed"), + new(Convert.ToByte(TransferStatusType.AssignedToDriver), "Assigned to driver"), + new(Convert.ToByte(TransferStatusType.DriverConfirmed), "Driver confirmed"), + new(Convert.ToByte(TransferStatusType.DriverEnRoute), "Driver enroute"), + new(Convert.ToByte(TransferStatusType.PassengerPickup), "Passenger in car"), + new(Convert.ToByte(TransferStatusType.Finished), "Finished"), + new(Convert.ToByte(TransferStatusType.UserCanceled), "User cancelled"), + new(Convert.ToByte(TransferStatusType.AdminDenied), "Admin cancelled") + ]; + + private static List _selectedCategories = Statuses.Where(x => /* x.StatusValue != (byte)TransferStatusType.OrderSubmitted && */ x.StatusValue != (byte)TransferStatusType.Finished && x.StatusValue != (byte)TransferStatusType.UserCanceled && x.StatusValue != (byte)TransferStatusType.AdminDenied).ToList(); + private string _filterText = GetFilterText(_selectedCategories.Select(x => (TransferStatusType)x.StatusValue).ToList()); + + private MessageWizardModel _messageWizardModel = new(); + + public List AppointmentModels { get; set; } = null!; + + DateTime StartDate { get; set; } = DateTime.Today; + DxSchedulerDataStorage _dataStorage = new(); + + + void SendMail(Transfer item) + { + _logger.Info($"Sending mail to {item.ContactEmail}, {item.Id}"); + + _messageWizardModel.ReceiverId = item.UserId; + _messageWizardModel.ContextId = item.Id; + _messageWizardModel.SenderEmailAddress = "info@touriam.com"; + _messageWizardModel.ReceiverEmailAddress = item.ContactEmail; + _messageWizardModel.ReceiverFullName = item.FullName; + _popupVisible = true; + } + + void CancelCreateClick() + { + + _popupVisible = 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) + { + try + { + if (e.ElementType == GridElementType.HeaderCell) + { + e.Style = "background-color: rgba(0, 0, 0, 0.08)"; + e.CssClass = "header-bold"; + } + + if (e.ElementType != GridElementType.DataRow) return; + + var transferStatus = e.Grid?.GetRowValue(e.VisibleIndex, "TransferStatusType"); + if (transferStatus == null) return; + + var transferStatusByte = (byte)transferStatus; + + switch (transferStatusByte) + { + case 5: + e.CssClass = "bg-important"; + break; + case > 5 and < 35: + e.CssClass = "bg-attention"; + break; + case 35: + e.CssClass = "bg-finished"; + break; + case > 35: + e.CssClass = "bg-cancel"; + break; + } + } + catch (Exception ex) + { + _logger.Error($"Grid_CustomizeElement; {ex.Message}", ex); + } + } + + void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e) + { + 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"; + } + + private static string GetFilterText(ICollection selectedTransferStatuses) + => selectedTransferStatuses.Count == 0 ? string.Empty : CriteriaOperator.FromLambda(t => selectedTransferStatuses.Contains(t.TransferStatusType)).ToString(); + + void TagBox_ValuesChanged(IEnumerable newSelectedCategories) + { + var filterText = string.Empty; + InOperator? filterCriteria = null; + + _selectedCategories = newSelectedCategories.ToList(); + + if (_selectedCategories.Count > 0) + { + filterCriteria = new InOperator("TransferStatusType", _selectedCategories.Select(c => c.StatusValue)); + filterText = GetFilterText(_selectedCategories.Select(x => (TransferStatusType)x.StatusValue).ToList()); + } + + _filterText = filterText; + _gridTransfer.SetFieldFilterCriteria("TransferStatusType", filterCriteria); + } + + private void DataSourceChanged(IList transfers) + { + _logger.Info("DataSourceChanged called"); + + InitializeAppointments(transfers); + + if (_selectedCategories.Count > 0) + TagBox_ValuesChanged(_selectedCategories); + + // if(!SelectedCategories.Any()) + // SelectedCategories = [Statuses.FirstOrDefault(x => x.StatusValue == (byte)TransferStatusType.Finished)!]; + + // var filterTransferStatusType = Statuses.FirstOrDefault(x => x.StatusValue == (byte)TransferStatusType.Finished)!; + + // if (SelectedCategories.All(x => x.StatusValue != filterTransferStatusType.StatusValue)) + // SelectedCategories.Add(filterTransferStatusType); + } + + private void DataSourceItemChanging(GridDataItemChangingEventArgs args) + { + _logger.Info("DataSourceItemChanging called"); + } + + private void DataSourceItemChanged(GridDataItemChangedEventArgs args) + { + _logger.Info("DataSourceItemChanged called"); + + AppointmentModels.UpdateCollection(CreateAppointmentModel(args.DataItem), args.TrackingState == TrackingState.Remove); + } + + private void DataItemSaving(GridEditModelSavingEventArgs e) + { + _logger.Info("DataItemSaving called"); + } + + private void DataItemDeleting(GridDataItemDeletingEventArgs e) + { + _logger.Info($"DataItemDeleting OnItemDeleting"); + } + + protected override Task OnInitializedAsync() + { + _logger = new LoggerClient(LogWriters.ToArray()); + + return base.OnInitializedAsync(); + } + + private void InitializeAppointments(ICollection transferDataList) + { + _logger.Info("InitializeAppointments called"); + + AppointmentModels = new List(transferDataList.Count); + + foreach (var transfer in transferDataList) + { + // var bnm = DataStorage.CreateAppointmentItem(); + // bnm.Start = transfer.Appointment; + // bnm.Description = $"{transfer.FullName}, {transfer.ToAddress}"; + // bnm.Location = transfer.FromAddress; + // bnm.Subject = "Simple transfer"; + + AppointmentModels.Add(CreateAppointmentModel(transfer)); + } + + _dataStorage = new DxSchedulerDataStorage + { + AppointmentMappings = new DxSchedulerAppointmentMappings() + { + Type = "AppointmentType", + Start = "StartDate", + End = "EndDate", + Subject = "Caption", + AllDay = "AllDay", + Location = "Location", + Description = "Description", + LabelId = "Label", + StatusId = "Status", + RecurrenceInfo = "Recurrence" + }, + + AppointmentsSource = AppointmentModels + }; + } + + public AppointmentModel CreateAppointmentModel(Transfer transfer) + { + return new AppointmentModel { Id = transfer.Id, StartDate = transfer.Appointment, EndDate = transfer.Appointment.AddMinutes(30), Description = $"{transfer.FullName}, {transfer.ToAddress}", Location = transfer.FromAddress, Caption = "Simple transfer" }; + } + + void ColumnChooserButton_Click() + { + _gridTransfer.ShowColumnChooser(); + } + + + protected override void OnAfterRender(bool firstRender) + { + if (firstRender) + { + //_gridTransfer.ExpandDetailRow(0); + } + } +} \ No newline at end of file diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageDrivers.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageDrivers.razor index 9041f9ce..455ff70c 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageDrivers.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageDrivers.razor @@ -53,7 +53,7 @@ @code { - private LoggerClient _logger; + private LoggerClient _logger; //public UserModelDtoDetail UserModelDtoDetail = new(); @@ -62,7 +62,7 @@ protected override async Task OnInitializedAsync() { - _logger = new LoggerClient(LogWriters.ToArray()); + _logger = new LoggerClient(LogWriters.ToArray()); base.OnInitialized(); } diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor index bd6392d8..3c3af606 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor @@ -123,7 +123,7 @@ @{ var transfer2 = (UserModelDtoDetail)EditFormContext.EditModel; } - + @EditFormContext.GetEditor("UserDto.EmailAddress") @@ -133,14 +133,7 @@ @EditFormContext.GetEditor("UserDto.PhoneNumber") - - @EditFormContext.GetEditor("Profile.FirstName") - - - @EditFormContext.GetEditor("Profile.LastName") - - @@ -241,26 +234,35 @@ void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e) { - if (!e.IsNew) return; - - var userEditModel = (UserModelDtoDetail)e.EditModel; //TODO not valid cast - userEditModel.Id = Guid.NewGuid(); - - userEditModel.UserDto = new UserDtoDetail + if (!e.IsNew) { - AffiliateId = Guid.NewGuid(), - EmailAddress = "", - PhoneNumber = "" - }; - - userEditModel.ProfileDto = new TIAM.Entities.Profiles.Profile + //var result = (UserModelDtoDetail)e.DataItem; + e.EditModel = e.DataItem; + _logger.Debug($"kfldsfjklkj {((UserModelDtoDetail)e.EditModel).Id.ToString()}"); + } + else { - Name = "New user" - }; + var userEditModel = (UserModelDtoDetail)e.EditModel; //TODO not valid cast + userEditModel.Id = Guid.NewGuid(); - userEditModel.Products = []; - userEditModel.ServiceProviders = []; - userEditModel.UserProductMappings = []; + userEditModel.UserDto = new UserDtoDetail + { + AffiliateId = Guid.NewGuid(), + EmailAddress = "", + PhoneNumber = "" + }; + + userEditModel.ProfileDto = new TIAM.Entities.Profiles.Profile + { + Name = "New user" + }; + + userEditModel.Products = []; + userEditModel.ServiceProviders = []; + userEditModel.UserProductMappings = []; + } + + } async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) diff --git a/TIAMSharedUI/Shared/Users/AdminNavMenu.razor b/TIAMSharedUI/Shared/Users/AdminNavMenu.razor index cc50809c..4c323f81 100644 --- a/TIAMSharedUI/Shared/Users/AdminNavMenu.razor +++ b/TIAMSharedUI/Shared/Users/AdminNavMenu.razor @@ -22,7 +22,20 @@ - + + + + + + @{ + string url = $"driver/cars/{SessionService.DriverPersmissionId.ToString()}"; + + } + + + + + diff --git a/TIAMSharedUI/TIAMSharedUI.csproj b/TIAMSharedUI/TIAMSharedUI.csproj index 0e2933b2..43f15af5 100644 --- a/TIAMSharedUI/TIAMSharedUI.csproj +++ b/TIAMSharedUI/TIAMSharedUI.csproj @@ -71,10 +71,12 @@ - + + true + true diff --git a/TIAMWebApp/Client/Services/SessionServiceWeb.cs b/TIAMWebApp/Client/Services/SessionServiceWeb.cs index d7200ba4..339d7843 100644 --- a/TIAMWebApp/Client/Services/SessionServiceWeb.cs +++ b/TIAMWebApp/Client/Services/SessionServiceWeb.cs @@ -14,5 +14,7 @@ namespace TIAMWebApp.Client.Services public bool IsDriver { get; set; } = false; public bool IsDevAdmin { get; set; } = false; public bool IsSysAdmin { get; set; } = false; + + public Guid DriverPersmissionId { get; set; } = Guid.Empty; } } diff --git a/TIAMWebApp/Shared/Interfaces/ISessionService.cs b/TIAMWebApp/Shared/Interfaces/ISessionService.cs index 7baf75c5..d95db088 100644 --- a/TIAMWebApp/Shared/Interfaces/ISessionService.cs +++ b/TIAMWebApp/Shared/Interfaces/ISessionService.cs @@ -9,12 +9,10 @@ namespace TIAMWebApp.Shared.Application.Interfaces public UserSessionModel? User { get; set; } public IPAddress? IPAddress { get; set; } public bool IsAuthenticated { get; set; } - public bool HasCompany { get; set; } public bool IsDriver { get; set; } - public bool IsDevAdmin { get; set; } - public bool IsSysAdmin { get; set; } + public Guid DriverPersmissionId { get; set; } } }