@page "/UserCP/{CompanyID:int}" @using Common.Dtos.Company @using Common.Dtos.Conversation @using Common.Dtos.Group @using HushianWebApp.Service @using HushianWebApp.Services @inject ChatService ChatService @inject ILocalStorageService localStorageService; @inject AuthService authService; @inject BaseController baseController; @inject CompanyService companyService @inject UserService userService @inject GroupService groupService @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 { if (CompanyInfo == null) return string.Empty; 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 =await userService.GetCurrentUserInfo(); await IsCompany(); } async Task IsCompany() { CompanyInfo = await companyService.GetCompany(CompanyID); if (CompanyInfo!=null) CompanyGroups = await groupService.GetGroupsCompany(CompanyID); await IsLastChat(); } async Task IsLastChat() { if (CompanyInfo != null) LastOpenChat = await ChatService.GetLastOpenChatInCompany(CompanyID); StateHasChanged(); } async Task Logout() { await baseController.RemoveToken(); await localStorageService.RemoveItem("U/key"); IsLogin = false; StateHasChanged(); } }