This commit is contained in:
mmrbnjd
2025-08-20 14:15:10 +03:30
parent 69a75731ce
commit c535cb078e
7 changed files with 50 additions and 49 deletions

View File

@@ -4,6 +4,7 @@ using Hushian.Application.Contracts.Persistence;
using Hushian.Application.Models;
using Hushian.Domain.Entites;
using Hushian.WebApi;
using Microsoft.AspNetCore.Components.Routing;
using Microsoft.AspNetCore.Routing.Constraints;
using Microsoft.AspNetCore.SignalR;
using Microsoft.EntityFrameworkCore;
@@ -280,20 +281,20 @@ namespace Hushian.Application.Services
await _ConversationRepository.UPDATE(convModel);
}
if (dto.Type != ConversationType.UE)
await WriteInHubFromCompany(Response.Value, convModel.UserID);
await WriteInHubFromCompany(Response.Value, "U"+convModel.UserID);
else
{
var modelA = convModel.ConversationResponses.OrderBy(o => o.ID)
.LastOrDefault(l => l.Type == ConversationType.EU || l.Type == ConversationType.CU);
if (modelA != null)
{
int userid = 0;
string user ="";
if (modelA.Type == ConversationType.EU) userid = modelA.ExperID.Value;
if (modelA.Type == ConversationType.EU) user = modelA.ExperID.Value.ToString();
else if (modelA.Type == ConversationType.CU) userid = modelA.conversation.CompanyID;
else if (modelA.Type == ConversationType.CU) user = "C"+modelA.conversation.CompanyID;
await WriteInHubFromUser(Response.Value, userid);
await WriteInHubFromUser(Response.Value, user);
}
@@ -386,14 +387,14 @@ namespace Hushian.Application.Services
if( (await _ConversationResponseRepository.UPDATE(item)) != null)
{
int userID = 0;
if (item.Type == ConversationType.EU) userID = item.ExperID.Value;
string user = "";
if (item.Type == ConversationType.EU) user = item.ExperID.Value.ToString();
else if (item.Type == ConversationType.CU) userID = item.conversation.CompanyID;
else if (item.Type == ConversationType.CU) user = "C" + item.conversation.CompanyID;
else if (item.Type == ConversationType.UE) userID = item.conversation.UserID;
else if (item.Type == ConversationType.UE) user = "U"+ item.conversation.UserID;
await CheckMarkAsReadInHub(item.ID, userID);
await CheckMarkAsReadInHub(item.ID, user);
return true;
}
@@ -486,9 +487,9 @@ namespace Hushian.Application.Services
if (Response.Value != null) Response.Success = true;
return Response;
}
public async Task WriteInHubFromCompany(ChatItemResponseDto item, int UserID)
public async Task WriteInHubFromCompany(ChatItemResponseDto item, string ToUser)
{
await _hubContext.Clients.User(UserID.ToString())
await _hubContext.Clients.User(ToUser)
.SendAsync("ReceiveNewChatItemFromCompany", item);
//// فرض: لیستی از کاربرانی که به گفتگو دسترسی دارند
@@ -500,14 +501,14 @@ namespace Hushian.Application.Services
// // .SendAsync("ReceiveNewConversation", conv.Id, conv.Title);
//}
}
public async Task WriteInHubFromUser(ChatItemResponseDto item, int UserID)
public async Task WriteInHubFromUser(ChatItemResponseDto item, string ToUser)
{
await _hubContext.Clients.User(UserID.ToString())
await _hubContext.Clients.User(ToUser)
.SendAsync("ReceiveNewChatItemFromUser", item);
}
public async Task CheckMarkAsReadInHub(int item, int UserID)
public async Task CheckMarkAsReadInHub(int item, string ToUser)
{
await _hubContext.Clients.User(UserID.ToString())
await _hubContext.Clients.User(ToUser)
.SendAsync("CheckMarkAsRead", item);
}
public async Task NewChatInHub(int CompanyID)