This commit is contained in:
mmrbnjd
2025-07-30 23:49:51 +03:30
parent 5731c9ff97
commit 96d6f5c004
4 changed files with 58 additions and 3 deletions

View File

@@ -299,5 +299,45 @@ namespace Hushian.Application.Services
} }
return false; return false;
} }
public async Task<ResponseBase<ChatItemDto>> GetLastOpenChatInCompany(int CompanyID,int UserID)
{
ResponseBase<ChatItemDto> Response = new();
Response.Value= await _ConversationRepository.Get()
.Include(inc => inc.Group)
.Include(inc => inc.ConversationResponses).ThenInclude(tinc => tinc.Exper)
.Where(w => w.UserID== UserID && w.Status != ConversationStatus.Finished)
.Select(s => new ChatItemDto()
{
ID = s.ID,
ExperID = s.ConversationResponses.OrderBy(o => o.ID).Last().ExperID,
ExperFullName = s.ConversationResponses.OrderBy(o => o.ID).Last().Exper.FullName,
GroupID = s.GroupID,
GroupName = s.Group.Name,
LastText = s.ConversationResponses.OrderBy(o => o.ID).Last().Text,
LastMsgdate = s.Cdatetime.GetDatePersian(),
LastMsgtime = s.Cdatetime.GetTime(),
LastMsgType = s.ConversationResponses.OrderBy(o => o.ID).Last().Type,
status = s.Status,
UserID = s.UserID,
UserFullName = string.IsNullOrEmpty(s.User.FullName) ? s.User.Mobile : s.User.FullName,
Responses = s.ConversationResponses.Select(ss => new ChatItemResponseDto()
{
ChatItemID = ss.ConversationID,
ExperID = ss.ExperID,
ExperName = ss.Exper.FullName,
FileContent = ss.FileContent,
FileName = ss.FileName,
FileType = ss.FileType,
ID = ss.ID,
IsRead = ss.IsRead,
text = ss.Text,
Type = ss.Type
}).ToList()
}).FirstOrDefaultAsync();
if (Response.Value != null) Response.Success = true;
return Response;
}
} }
} }

View File

@@ -41,6 +41,17 @@ namespace Hushian.WebApi.Controllers.v1
} }
return Forbid(); return Forbid();
}
[HttpGet("User/LastOpenChatInCompany/{CompanyID}")]
[Authorize(Roles = "User")]
public async Task<ActionResult> GetLastOpenChatInCompany(int CompanyID)
{
string strUserID = User.Claims.Where(w => w.Type == CustomClaimTypes.Uid).Select(s => s.Value).First();
int UserID = Convert.ToInt32(strUserID);
var response = await _chatService.GetLastOpenChatInCompany(CompanyID,UserID);
return response.Success ? Ok(response.Value) : Accepted() ;
} }
[HttpGet("ChatsAwaitingOurResponse")] [HttpGet("ChatsAwaitingOurResponse")]
[Authorize(Roles = "Company,Exper")] [Authorize(Roles = "Company,Exper")]

View File

@@ -205,7 +205,7 @@
async Task IsLastChat() async Task IsLastChat()
{ {
if (CompanyInfo != null) if (CompanyInfo != null)
LastOpenChat =await ChatService.GetLastChatInCompany(CompanyID); LastOpenChat = await ChatService.GetLastOpenChatInCompany(CompanyID);
StateHasChanged(); StateHasChanged();
} }
} }

View File

@@ -73,9 +73,13 @@ namespace HushianWebApp.Service
return response.IsSuccessStatusCode; return response.IsSuccessStatusCode;
} }
public async Task<ChatItemDto> GetLastChatInCompany(int CompanyID) public async Task<ChatItemDto?> GetLastOpenChatInCompany(int CompanyID)
{ {
return new(); var response = await _baseController.Get($"{BaseRoute}User/LastOpenChatInCompany/{CompanyID}");
if (response.StatusCode==System.Net.HttpStatusCode.OK)
return await response.Content.ReadFromJsonAsync<ChatItemDto>();
return null;
} }
} }
} }