From 9bba24f2329695c1dcfe7316ed073f4b2b278531 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 13 Aug 2024 09:48:19 +0200 Subject: [PATCH] more changes --- .../Services/UserDataServiceMobile.cs | 36 +- TIAMSharedUI/Pages/EditTransfers.razor | 21 +- TIAMSharedUI/Pages/User/Admin.razor | 175 ++----- .../User/SysAdmins/DriverGridComponent.razor | 60 ++- .../Pages/User/UserManageTransfers.razor | 451 ++++++++++++++++++ TIAMSharedUI/Shared/AdminLayout.razor | 2 + TIAMSharedUI/Shared/Components/Navbar.razor | 71 +-- .../Shared/Components/Navbar.razor.cs | 44 +- TIAMSharedUI/Shared/Users/AdminNavMenu.razor | 48 +- TIAMSharedUI/wwwroot/css/TourIAm.css | 2 +- .../Client/Services/SessionServiceWeb.cs | 10 +- .../Client/Services/UserDataServiceWeb.cs | 15 + .../Shared/Interfaces/IUserDataService.cs | 2 + 13 files changed, 732 insertions(+), 205 deletions(-) create mode 100644 TIAMSharedUI/Pages/User/UserManageTransfers.razor diff --git a/TIAMMobileApp/Services/UserDataServiceMobile.cs b/TIAMMobileApp/Services/UserDataServiceMobile.cs index 0de804e9..b4bc058e 100644 --- a/TIAMMobileApp/Services/UserDataServiceMobile.cs +++ b/TIAMMobileApp/Services/UserDataServiceMobile.cs @@ -328,33 +328,43 @@ namespace TIAMMobileApp.Services { _logger.Info("SendForgottenPasswordMail() called"); - var url = $"{Setting.ApiBaseUrl}/{APIUrls.SendForgottenPasswordMail}"; + var url = $"{Setting.ApiBaseUrl}/{APIUrls.SendForgottenPasswordMail}"; var response = await http.PostAsJsonAsync(url, emailAddress); var success = await response.Content.ReadFromJsonAsync(); + _logger.Detail($"SendForgottenPasswordMail(): {success.ToString()}"); return success; } public async Task ValidateForgotPasswordToken(Guid userId, string token) { - _logger.Info("SendForgottenPasswordMail() called"); + string? result = ""; + _logger.Info("ValidateForgotPasswordToken() called"); - string[] parameters = new string[2]; - parameters[0] = userId.ToString(); - parameters[1] = token.ToString(); - - var url = $"{Setting.ApiBaseUrl}/{APIUrls.SendForgottenPasswordMail}"; + var url = $"{Setting.ApiBaseUrl}/{APIUrls.ValidateForgottenPasswordToken}"; + var parameters = new[] { userId.ToString(), token }; var response = await http.PostAsJsonAsync(url, parameters); - var success = await response.Content.ReadFromJsonAsync(); + result = await response.Content.ReadAsStringAsync(); - if (success == "Success") - { - _logger.Detail($"SendForgottenPasswordMail(): {success}"); - } + _logger.Detail($"ValidateForgotPasswordToken(): {result}"); - return success; + return result; + } + public async Task SetEmailConfirmed(Guid userId) + { + bool result = false; + _logger.Info("SetEmailConfirmed() called"); + + var url = $"{Setting.ApiBaseUrl}/{APIUrls.SetEmailConfirmed}"; + + var response = await http.PostAsJsonAsync(url, userId); + result = await response.Content.ReadFromJsonAsync(); + + _logger.Detail($"ValidateForgotPasswordToken(): {result.ToString()}"); + + return result; } //public Task> GetUserRolesAsync(UserModel userModel) diff --git a/TIAMSharedUI/Pages/EditTransfers.razor b/TIAMSharedUI/Pages/EditTransfers.razor index 2f9a568a..5aa6ecba 100644 --- a/TIAMSharedUI/Pages/EditTransfers.razor +++ b/TIAMSharedUI/Pages/EditTransfers.razor @@ -1,4 +1,5 @@ @page "/mytransfers/{transferId:guid}" +@using AyCode.Core.Extensions @using TIAM.Entities.Transfers @using TIAM.Resources @using TIAMWebApp.Shared.Application.Interfaces @@ -13,6 +14,7 @@ @inject NavigationManager navManager @inject IEnumerable LogWriters @inject ITransferDataService transferDataService +@inject IUserDataService UserDataService @inject SumupService SumUpService @inject NavigationManager navigationManager @inject IStringLocalizer localizer @@ -260,12 +262,12 @@ else public List IgnoreList = [ "ReceiverEmailAddress", - "ReceiverFullName", - "ReceiverId", - "SenderEmailAddress", - "SenderFullName", - "SenderId", - "ContextId", + "ReceiverFullName", + "ReceiverId", + "SenderEmailAddress", + "SenderFullName", + "SenderId", + "ContextId", ]; List StatusTypes = new List(); @@ -362,13 +364,18 @@ else _logger = new LoggerClient(LogWriters.ToArray()); _logger.Info($"parameter: {transferId.ToString()}"); + await LoadTransfer(); + if(transfer.UserId.IsNullOrEmpty()) + { + await UserDataService.SetEmailConfirmed(transfer.UserId); + } } protected override async Task OnParametersSetAsync() { _logger.Info($"on parameter set: {transferId.ToString()}"); - base.OnParametersSet(); + await base.OnParametersSetAsync(); } private void SetEditMode() diff --git a/TIAMSharedUI/Pages/User/Admin.razor b/TIAMSharedUI/Pages/User/Admin.razor index ef8e7a93..1f6283e6 100644 --- a/TIAMSharedUI/Pages/User/Admin.razor +++ b/TIAMSharedUI/Pages/User/Admin.razor @@ -1,5 +1,6 @@ @page "/user/admin" @using Microsoft.AspNetCore.Authorization +@using TIAM.Models.Dtos.Users @using TIAMSharedUI.Shared @using TIAMWebApp.Shared.Application.Interfaces; @using TIAMSharedUI.Shared.Components.BaseComponents @@ -12,34 +13,42 @@ Administration
-

Dashboard

+

Control panel

Have a nice day!

-
+
+ + + +
+
+

Welcome @myUser.UserDto.EmailAddress

+

Good to see you here :)

+ Call to action +
+
-
+
- Panel title -

Subtitle

-
-
-
All details
+ Overview +

Your transfers and such

+
-
Some info
-

Budapest, Dózsa György út 35, 1146

+
Upcoming transfers
+

You have 0 upcoming transfers

+
+ +
+ +
+
+
Hotels
+

You have 0 hotels

+
+
+ +
+ +
+

Some conclusion

@@ -72,110 +96,8 @@
-
-
-
-
-
- Panel title -

Subtitle

-
- -
-
-
-
-
-
Some info
-

Budapest, Dózsa György út 35, 1146

-
-
- -
- -
-
    -
  • - PLACED -
  • -
  • WAITING FOR PICK UP
  • -
  • - FINISHED -
  • -
- -
-

Some conclusion

-
-
- -
+
-
-
-
-
-
- Panel title -

Subtitle

-
- -
-
-
-
-
-
Some info
-

Budapest, Dózsa György út 35, 1146

-
-
- -
- -
-
    -
  • - PLACED -
  • -
  • WAITING FOR PICK UP
  • -
  • - FINISHED -
  • -
- -
-

Some conclusion

-
-
- -
-
-
-
- -
@@ -187,13 +109,14 @@ bool isUserLoggedIn; int userType = 0; - - - + private UserModelDtoDetail? myUser; protected override async Task OnInitializedAsync() { - + if(_sessionService.User != null) + { + myUser = _sessionService.User.UserModelDto; + } await base.OnInitializedAsync(); } diff --git a/TIAMSharedUI/Pages/User/SysAdmins/DriverGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/DriverGridComponent.razor index 4bda650d..8fca1b4f 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/DriverGridComponent.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/DriverGridComponent.razor @@ -90,7 +90,40 @@ @{ + + + + + + + + + + + + + + + + + + + + + + @@ -151,7 +184,7 @@ private ElementReference _errorMessage; private string _errorCss = "display: none;"; private List FoundUsers { get; set; } = new List(); - + private TransferGrid _gridTransfer; private string Email { get; set; } = "email@email.com"; string EmailMask { get; set; } = @"(\w|[.-])+@(\w|-)+\.(\w|-){2,4}"; @@ -164,6 +197,31 @@ base.OnInitialized(); } + void Grid_CustomGroup(GridCustomGroupEventArgs e) + { + if (e.FieldName == "Appointment") + { + e.SameGroup = Grid_CompareColumnValues(((DateTime)e.Value1).Date, ((DateTime)e.Value2).Date); + e.Handled = true; + } + } + bool Grid_CompareColumnValues(DateTime value1, DateTime value2) + { + if (value1.Year == value2.Year && value1.Month == value2.Month) + return true; + else + return false; + } + void Grid_CustomizeGroupValueDisplayText(GridCustomizeGroupValueDisplayTextEventArgs e) + { + if (e.FieldName == "Appointment") + { + + string displayText = ((DateTime)e.Value).Date.ToString(); + e.DisplayText = displayText; + } + } + void CustomizeEditModel(GridCustomizeEditModelEventArgs e) { if (!e.IsNew) return; diff --git a/TIAMSharedUI/Pages/User/UserManageTransfers.razor b/TIAMSharedUI/Pages/User/UserManageTransfers.razor new file mode 100644 index 00000000..2a6d98cf --- /dev/null +++ b/TIAMSharedUI/Pages/User/UserManageTransfers.razor @@ -0,0 +1,451 @@ +@page "/user/transfers/{userId:guid}" +@using BlazorAnimation +@using TIAM.Core.Enums +@using TIAM.Entities.Emails +@using TIAM.Entities.Transfers +@using TIAM.Resources +@using TIAM.Services +@using TIAMSharedUI.Pages.Components +@using TIAMSharedUI.Pages.User.CardComponents +@using TIAMSharedUI.Pages.User.SysAdmins +@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 +@using TIAMSharedUI.Shared.Components.BaseComponents +@inherits UserBasePageComponent +@layout AdminLayout +@inject IEnumerable LogWriters +@inject IStringLocalizer localizer +@inject IWizardProcessor wizardProcessor +@inject ITransferDataService transferDataService +@inject ISessionService sessionService +@inject AdminSignalRClient AdminSignalRClient; +Transfers + +
+

Tasks

+

Manage your tasks here!

+
+ + + + + + + + + + + +
+
+
+ + + + + + + + @foreach (var (transfer, i) in Upcoming) + { + + + +
+ +
+
+
+ } +
+
+
+ + + + @foreach (var (transfer, i) in Problems) + { + + + +
+ +
+
+
+ } +
+
+
+ + + +
+ + + + + + + + + + +
+
+ + +
+ + + + + + + + + + + + + +
+
+ +
+ +
+ +
+
+ +
+
+ + +@code { + [Parameter] public Guid UserId { get; set; } + private Guid userId; + private LoggerClient _logger; + private TransferGrid _gridTransfer; + private bool _popupVisible; + + private List? transfers = []; + IEnumerable<(Transfer, int)> Upcoming = []; + IEnumerable<(Transfer, int)> Problems = []; + + AccordionExpandMode ExpandMode { get; set; } = AccordionExpandMode.SingleOrNone; + AccordionExpandCollapseAction ExpandCollapseAction { get; set; } = AccordionExpandCollapseAction.HeaderClick; + + private MessageWizardModel _messageWizardModel = new(); + + public List AppointmentModels { get; set; } = null!; + + DateTime StartDate { get; set; } = DateTime.Today; + DxSchedulerDataStorage _dataStorage = new(); + + + 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") + ]; + + 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_CustomGroup(GridCustomGroupEventArgs e) + { + if (e.FieldName == "Appointment") + { + e.SameGroup = Grid_CompareColumnValues(((DateTime)e.Value1).Date, ((DateTime)e.Value2).Date); + e.Handled = true; + } + } + bool Grid_CompareColumnValues(DateTime value1, DateTime value2) + { + if (value1 == value2) + return true; + else + return false; + } + void Grid_CustomizeGroupValueDisplayText(GridCustomizeGroupValueDisplayTextEventArgs e) + { + if (e.FieldName == "Appointment") + { + + string displayText = ((DateTime)e.Value).Date.ToString(); + e.DisplayText = displayText; + } + } + + + private void RefreshComponent() + { + StateHasChanged(); + } + + protected override async Task OnParametersSetAsync() + { + userId = UserId; + // transfers = await AdminSignalRClient.GetByIdAsync>(SignalRTags.GetTransfersByUserProductMappingId, DriverId); + + + } + + 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 EmailPopupClosed() + { + //cancel clicked + + } + + void EmailPopupClosing(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.ReceiverFullName},

+

{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}"); + } + + + + string GetCustomColor(TransferStatusType transferStatusType) + { + + var transferStatusByte = (byte)transferStatusType; + + switch (transferStatusByte) + { + case 5: + return "bg-important"; + + case > 5 and < 35: + return "bg-attention"; + + case 35: + return "bg-finished"; + + case > 35: + return "bg-cancel"; + + default: + return ""; + } + + } + + + + protected override async Task OnInitializedAsync() + { + _logger = new LoggerClient(LogWriters.ToArray()); + if (transfers != null) + { + var test = UserId.ToString(); + var result = await AdminSignalRClient.GetByIdAsync>(SignalRTags.GetTransfersByUserId, UserId); + transfers = result.Where(t => t.TransferStatusType != TransferStatusType.UserCanceled && t.TransferStatusType != TransferStatusType.AdminDenied).ToList(); + Upcoming = transfers.Where(x => x.Appointment >= DateTime.Now).Select((item, index) => (item, index)); + Problems = transfers.Where(x => x.Paid == false).Select((item, index) => (item, index)); + InitializeAppointments(transfers); + } + + await base.OnInitializedAsync(); + } + + private void GroupTransfers(List transferDataList) + { + + } + + 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" }; + } + + +} \ No newline at end of file diff --git a/TIAMSharedUI/Shared/AdminLayout.razor b/TIAMSharedUI/Shared/AdminLayout.razor index 1b5ad88c..d5a1d5e7 100644 --- a/TIAMSharedUI/Shared/AdminLayout.razor +++ b/TIAMSharedUI/Shared/AdminLayout.razor @@ -1,6 +1,7 @@ @inherits LayoutComponentBase @using Microsoft.AspNetCore.Authorization +@using TIAMSharedUI.Pages @using TIAMSharedUI.Shared.Users @using AyCode.Interfaces.StorageHandlers; @using AyCode.Services.Loggers @@ -17,6 +18,7 @@
+ diff --git a/TIAMSharedUI/Shared/Components/Navbar.razor b/TIAMSharedUI/Shared/Components/Navbar.razor index 783c1b42..6e43bd38 100644 --- a/TIAMSharedUI/Shared/Components/Navbar.razor +++ b/TIAMSharedUI/Shared/Components/Navbar.razor @@ -12,7 +12,7 @@ TourIam Logo - - + } } @@ -165,6 +149,27 @@
+ + + @code { + + } diff --git a/TIAMSharedUI/Shared/Components/Navbar.razor.cs b/TIAMSharedUI/Shared/Components/Navbar.razor.cs index 884fb0f6..256b8337 100644 --- a/TIAMSharedUI/Shared/Components/Navbar.razor.cs +++ b/TIAMSharedUI/Shared/Components/Navbar.razor.cs @@ -17,6 +17,9 @@ using TIAMSharedUI.Pages.Components; using TIAMWebApp.Shared.Application.Models.ClientSide; using Newtonsoft.Json; using Microsoft.AspNetCore.Components.Authorization; +using Microsoft.JSInterop; +using Microsoft.EntityFrameworkCore.Metadata.Internal; +using Microsoft.AspNetCore.Components.Routing; namespace TIAMSharedUI.Shared.Components @@ -43,6 +46,9 @@ namespace TIAMSharedUI.Shared.Components [Inject] private IUserDataService UserDataService { get; set; } + [Inject] + private IJSRuntime JsRuntime { get; set; } + [Inject] AuthenticationStateProvider AuthStateProvider { get; set; } private bool enableLogin = true; @@ -52,7 +58,7 @@ namespace TIAMSharedUI.Shared.Components private bool enableApi = true; private bool enableChat = true; - private bool collapseNavMenu = true; + private bool expandNavMenu = true; private bool myUser = false; private bool hasProperty = false; @@ -65,6 +71,11 @@ namespace TIAMSharedUI.Shared.Components } + private async Task ExpandNavMenu() + { + await JsRuntime.InvokeVoidAsync("toggleBootstrapNavMenu"); + } + private void RefreshMe() { _logger.Debug($"Navbar refresh called! {DateTime.Now} "); @@ -76,12 +87,9 @@ namespace TIAMSharedUI.Shared.Components private void ToggleNavMenu() { - collapseNavMenu = !collapseNavMenu; - } - - private void NavigateBack() - { - + expandNavMenu = !expandNavMenu; + + JsRuntime.InvokeVoidAsync("toggleBootstrapNavMenu", expandNavMenu); } private async Task SignOut() @@ -102,15 +110,12 @@ namespace TIAMSharedUI.Shared.Components myUser = false; } - private void ThrowSomeError() - { - throw new Exception(); - } protected override void OnInitialized() { + base.OnInitialized(); - + navigationManager.LocationChanged += OnLocationChanged; _logger = new LoggerClient(LogWriters.ToArray()); @@ -119,6 +124,21 @@ namespace TIAMSharedUI.Shared.Components InitUser(); } + private void OnLocationChanged(object sender, LocationChangedEventArgs e) + { + // Collapse the navbar on navigation + + expandNavMenu = false; + JsRuntime.InvokeVoidAsync("toggleBootstrapNavMenu", false); + + } + + public void Dispose() + { + // Unsubscribe from the event when the component is disposed + navigationManager.LocationChanged -= OnLocationChanged; + } + private void InitUser() { if (sessionService.User != null) diff --git a/TIAMSharedUI/Shared/Users/AdminNavMenu.razor b/TIAMSharedUI/Shared/Users/AdminNavMenu.razor index 7b050964..b834f253 100644 --- a/TIAMSharedUI/Shared/Users/AdminNavMenu.razor +++ b/TIAMSharedUI/Shared/Users/AdminNavMenu.razor @@ -19,10 +19,18 @@ DisplayMode="DisplayMode"> - - - - + @{ + if (userHasCompany) + { + + } + if(userHasHotels) + { + + } + } + @* *@ + @@ -30,8 +38,8 @@ @{ - string url1 = $"driver/transfers/{SessionService.DriverPersmissionId}"; - string url2 = $"driver/cars/{SessionService.DriverPersmissionId}"; + string url1 = $"driver/transfers/{driverPermissionId}"; + string url2 = $"driver/cars/{driverPermissionId}"; } @@ -68,6 +76,8 @@ + @* *@ +
@@ -81,8 +91,8 @@
-
@SessionService.User.Email
-
@SessionService.User.UserModelDto.ProfileDto.FullName
+
@userEmail
+
@userFullName
@@ -106,6 +116,13 @@ private bool IsSysAdmin; private bool IsDriver; + private bool userHasCompany = false; + private bool userHasHotels = false; + private string? userEmail; + private string? userFullName; + + private Guid driverPermissionId; + private ILogger _logger; MenuDisplayMode DisplayMode { get; set; } = MenuDisplayMode.Auto; @@ -127,7 +144,20 @@ //_logger.Debug($"UserId: {SessionService.IsSysAdmin}"); IsDriver = SessionService.IsDriver; //_logger.Debug($"UserId: {SessionService.IsDriver}"); - + userHasCompany = SessionService.HasCompany; + if (SessionService.GetHotels().Count() > 0) + { + userHasHotels = true; + } + if (SessionService.User != null) + { + driverPermissionId = SessionService.DriverPersmissionId; + userEmail = SessionService.User.Email; + if (SessionService.User.UserModelDto.ProfileDto.FullName != null) + { + userFullName = SessionService.User.UserModelDto.ProfileDto.FullName; + } + } base.OnInitialized(); } diff --git a/TIAMSharedUI/wwwroot/css/TourIAm.css b/TIAMSharedUI/wwwroot/css/TourIAm.css index d582bf71..b7f133e5 100644 --- a/TIAMSharedUI/wwwroot/css/TourIAm.css +++ b/TIAMSharedUI/wwwroot/css/TourIAm.css @@ -59,7 +59,7 @@ select { .card { - border-radius: 16px; + overflow: hidden; /*min-height: 300px;*/ diff --git a/TIAMWebApp/Client/Services/SessionServiceWeb.cs b/TIAMWebApp/Client/Services/SessionServiceWeb.cs index 78be5433..524571fb 100644 --- a/TIAMWebApp/Client/Services/SessionServiceWeb.cs +++ b/TIAMWebApp/Client/Services/SessionServiceWeb.cs @@ -18,11 +18,15 @@ namespace TIAMWebApp.Client.Services public List GetHotels() { - if(User.UserModelDto.Products.Count > 0) + if(User != null) { - return User.UserModelDto.Products.Where(x => x.ProductType == TIAM.Core.Enums.ProductType.Hotel).ToList(); + if(User.UserModelDto.Products.Count > 0) + { + return User.UserModelDto.Products.Where(x => x.ProductType == TIAM.Core.Enums.ProductType.Hotel).ToList(); + } + else return new List(); } - else return new List(); + else return new List(); } public Guid DriverPersmissionId { get; set; } = Guid.Empty; diff --git a/TIAMWebApp/Client/Services/UserDataServiceWeb.cs b/TIAMWebApp/Client/Services/UserDataServiceWeb.cs index c7f5ba39..b9ab9e96 100644 --- a/TIAMWebApp/Client/Services/UserDataServiceWeb.cs +++ b/TIAMWebApp/Client/Services/UserDataServiceWeb.cs @@ -359,6 +359,21 @@ namespace TIAMWebApp.Client.Services return result; } + public async Task SetEmailConfirmed(Guid userId) + { + bool result = false; + _logger.Info("SetEmailConfirmed() called"); + + var url = $"{Setting.ApiBaseUrl}/{APIUrls.SetEmailConfirmed}"; + + var response = await http.PostAsJsonAsync(url, userId); + result = await response.Content.ReadFromJsonAsync(); + + _logger.Detail($"ValidateForgotPasswordToken(): {result.ToString()}"); + + return result; + } + /*public Task> GetUserRolesAsync(UserModel userModel) { //TODO: finish this diff --git a/TIAMWebApp/Shared/Interfaces/IUserDataService.cs b/TIAMWebApp/Shared/Interfaces/IUserDataService.cs index 8e015cc1..db20a8f0 100644 --- a/TIAMWebApp/Shared/Interfaces/IUserDataService.cs +++ b/TIAMWebApp/Shared/Interfaces/IUserDataService.cs @@ -30,5 +30,7 @@ namespace TIAMWebApp.Shared.Application.Interfaces public Task SendForgottenPasswordMail(string emailAddress); public Task ValidateForgotPasswordToken(Guid userId, string token); + + public Task SetEmailConfirmed(Guid userId); } } \ No newline at end of file