...
This commit is contained in:
@@ -299,5 +299,45 @@ namespace Hushian.Application.Services
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -41,6 +41,17 @@ namespace Hushian.WebApi.Controllers.v1
|
||||
}
|
||||
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")]
|
||||
[Authorize(Roles = "Company,Exper")]
|
||||
|
@@ -205,7 +205,7 @@
|
||||
async Task IsLastChat()
|
||||
{
|
||||
if (CompanyInfo != null)
|
||||
LastOpenChat =await ChatService.GetLastChatInCompany(CompanyID);
|
||||
LastOpenChat = await ChatService.GetLastOpenChatInCompany(CompanyID);
|
||||
StateHasChanged();
|
||||
}
|
||||
}
|
||||
|
@@ -73,9 +73,13 @@ namespace HushianWebApp.Service
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user