From b3167b83b9de6631bfe02c84e2e638090a5dd46c Mon Sep 17 00:00:00 2001 From: mmrbnjd Date: Tue, 29 Jul 2025 22:21:38 +0330 Subject: [PATCH] ... --- Presentation/HushianWebApp/Pages/Chat.razor | 1 + .../HushianWebApp/Pages/Conversation.razor | 2 +- .../Pages/FromUserSide/UserCP.razor | 245 ++++++++++++++++++ .../{UserPanel.razor => ZUserPanel.razor} | 4 +- 4 files changed, 249 insertions(+), 3 deletions(-) create mode 100644 Presentation/HushianWebApp/Pages/FromUserSide/UserCP.razor rename Presentation/HushianWebApp/Pages/FromUserSide/{UserPanel.razor => ZUserPanel.razor} (99%) diff --git a/Presentation/HushianWebApp/Pages/Chat.razor b/Presentation/HushianWebApp/Pages/Chat.razor index 65cdb62..00e91f0 100644 --- a/Presentation/HushianWebApp/Pages/Chat.razor +++ b/Presentation/HushianWebApp/Pages/Chat.razor @@ -1,4 +1,5 @@ @page "/Chat" +@page "/" @using Common.Dtos.Conversation @using Common.Dtos.Group @using Common.Enums diff --git a/Presentation/HushianWebApp/Pages/Conversation.razor b/Presentation/HushianWebApp/Pages/Conversation.razor index 00e4b78..4f28ba8 100644 --- a/Presentation/HushianWebApp/Pages/Conversation.razor +++ b/Presentation/HushianWebApp/Pages/Conversation.razor @@ -1,5 +1,5 @@ @page "/Conversation" -@page "/" + @inject IJSRuntime JS @using Common.Dtos.Conversation diff --git a/Presentation/HushianWebApp/Pages/FromUserSide/UserCP.razor b/Presentation/HushianWebApp/Pages/FromUserSide/UserCP.razor new file mode 100644 index 0000000..2abfb00 --- /dev/null +++ b/Presentation/HushianWebApp/Pages/FromUserSide/UserCP.razor @@ -0,0 +1,245 @@ +@page "/UserCP/{CompanyID:int}" +@using Common.Dtos.Company +@using Common.Dtos.Conversation +@using Common.Dtos.Group +@using HushianWebApp.Service +@using HushianWebApp.Services +@inject ILocalStorageService localStorageService; +@inject AuthService authService; +@inject BaseController baseController; +@layout UserPanelLayout +
+
+ @if (IsEndFirstProcess) + { + @if (IsLogin) + { +
+
+ @if (LastOpenChat != null) + { +

@ExperYou

+ + @if (LastOpenChat.status == Common.Enums.ConversationStatus.InProgress) + { + + + + } + + } + +
+ +
+ @if (LastOpenChat != null && LastOpenChat.Responses != null) + { +
+ @{ + bool target = false; + } + @foreach (var msg in LastOpenChat?.Responses) + { + @if (!target && ((!msg.IsRead && msg.Type != Common.Enums.ConversationType.UE) || LastOpenChat.Responses.Last() == msg)) + { + target = true; +
+ @if (!msg.IsRead && msg.Type != Common.Enums.ConversationType.UE) + { +

ـــــــــــــــــــــــــ

+ } +
+ } + +
+
@msg.text
+ @if (msg.Type == Common.Enums.ConversationType.EU) + { + if (msg.IsRead) + { + + } + else + { + + } + } +
+ } + @{ + target = false; + } +
+ } + else + { +
+ + +

+ هوشیان +

+
+ + + } + +
+ + @if (LastOpenChat != null && LastOpenChat.status != Common.Enums.ConversationStatus.Finished && LastOpenChat.Responses != null) + { + +
+ + + + + +
+ } + + +
+ } + else + { + + } + } + else + { + //صحت سنجی لاگین در حال انجام است + } +
+
+@code { + [Parameter] public int CompanyID { get; set; } + + ReadANDUpdate_CompanyDto CompanyInfo = new(); + Common.Dtos.CurrentUserInfo CurrentUser = new(); + List CompanyGroups = new(); + ChatItemDto? LastOpenChat = new(); + string MsgInput = string.Empty; + bool chatloading = false; + public bool IsLogin { get; set; } = false; + public bool IsEndFirstProcess { get; set; } = false; + string ExperYou + { + get + { + string value = $"{CompanyInfo.FullName}"; + if (LastOpenChat != null) + { + value += "/" + LastOpenChat.ExperFullName; + } + return value; + } + } +} +@functions { + async Task OnClickSendMsg() + { + if (!string.IsNullOrEmpty(MsgInput) && LastOpenChat != null) + { + // Common.Enums.ConversationType type = CurrentUser.Role == "Company" ? Common.Enums.ConversationType.CU : Common.Enums.ConversationType.EU; + // await chatService.ADDChatResponse(LastOpenChat.ID, MsgInput, type); + // LastOpenChat?.Responses.Add(new() { text = MsgInput, Type = type }); + // LastOpenChat.LastText = MsgInput; + // await Task.Yield(); + // await JS.InvokeVoidAsync("scrollToBottom", "B1"); + MsgInput = string.Empty; + } + } + protected override async Task OnInitializedAsync() + { + await IsOnline(); + await base.OnInitializedAsync(); + } + async Task IsOnline() + { + var token = await localStorageService.GetItem("U/key"); + if (string.IsNullOrEmpty(token)) + { + IsLogin = false; + IsEndFirstProcess = true; + } + else + { + await baseController.RemoveToken(); + await baseController.SetToken(token); + if (!await authService.IsOnline()) + { + await baseController.RemoveToken(); + IsLogin = false; + IsEndFirstProcess = true; + } + else + { + IsEndFirstProcess = true; + await Afterlogin(); + } + + } + + } + async Task Afterlogin() + { + IsLogin = true; + CurrentUser = new(); + await IsCompany(); + } + async Task IsCompany() + { + CompanyInfo = new(); + CompanyGroups = new(); + await IsLastChat(); + } + async Task IsLastChat() + { + LastOpenChat = null; + StateHasChanged(); + } +} + diff --git a/Presentation/HushianWebApp/Pages/FromUserSide/UserPanel.razor b/Presentation/HushianWebApp/Pages/FromUserSide/ZUserPanel.razor similarity index 99% rename from Presentation/HushianWebApp/Pages/FromUserSide/UserPanel.razor rename to Presentation/HushianWebApp/Pages/FromUserSide/ZUserPanel.razor index eca6c5d..de8cadc 100644 --- a/Presentation/HushianWebApp/Pages/FromUserSide/UserPanel.razor +++ b/Presentation/HushianWebApp/Pages/FromUserSide/ZUserPanel.razor @@ -12,8 +12,8 @@ @inject BaseController baseController; @inject ConversationService conversationService @layout UserPanelLayout -@page "/UserPanel/{CompanyID:int}" -@page "/UserPanel/{CompanyID:int}/{ConversationID:int?}" +@page "/ZUserPanel/{CompanyID:int}" +@page "/ZUserPanel/{CompanyID:int}/{ConversationID:int?}"