Files
Hushian/Presentation/HushianWebApp/Service/ConversationService.cs

87 lines
3.5 KiB
C#
Raw Normal View History

2025-07-12 16:59:25 +03:30
using Common.Dtos.Conversation;
using Common.Enums;
2025-07-11 20:37:28 +03:30
using System.Net.Http.Json;
namespace HushianWebApp.Service
{
public class ConversationService
{
private readonly BaseController _baseController;
const string BaseRoute = "v1/Conversation/";
public ConversationService(BaseController baseController)
{
_baseController = baseController;
}
2025-07-12 16:59:25 +03:30
public async Task <List<Read_ConversationDto>> MyConversationIsFinished()
2025-07-11 20:37:28 +03:30
{
2025-07-12 16:59:25 +03:30
var response = await _baseController.Post($"{BaseRoute}MyConversation", ConversationStatus.Finished);
2025-07-11 20:37:28 +03:30
if (response.IsSuccessStatusCode)
2025-07-12 16:59:25 +03:30
return await response.Content.ReadFromJsonAsync<List<Read_ConversationDto>>();
2025-07-11 20:37:28 +03:30
return new() ;
}
2025-07-12 16:59:25 +03:30
public async Task<List<Read_ConversationDto>> MyConversationIsInProgress()
2025-07-11 20:37:28 +03:30
{
2025-07-12 16:59:25 +03:30
var response = await _baseController.Post($"{BaseRoute}MyConversation", ConversationStatus.InProgress);
2025-07-11 20:37:28 +03:30
if (response.IsSuccessStatusCode)
2025-07-12 16:59:25 +03:30
return await response.Content.ReadFromJsonAsync<List<Read_ConversationDto>>();
2025-07-11 20:37:28 +03:30
return new();
}
2025-07-12 16:59:25 +03:30
public async Task<List<Read_ConversationDto>> ConversationAwaitingOurResponse()
2025-07-11 20:37:28 +03:30
{
var response = await _baseController.Get($"{BaseRoute}ConversationAwaitingOurResponse");
if (response.IsSuccessStatusCode)
2025-07-12 16:59:25 +03:30
return await response.Content.ReadFromJsonAsync<List<Read_ConversationDto>>();
2025-07-11 20:37:28 +03:30
return new();
}
public async Task<bool> MarkAsReadConversationItemAsync(int ID)
{
var response = await _baseController.Put($"{BaseRoute}MarkAsReadConversationItem/{ID}");
return response.IsSuccessStatusCode;
}
2025-07-12 16:59:25 +03:30
public async Task<List<Read_ConversationResponseDto>> GetConversationItems(int ConversationID)
2025-07-11 20:37:28 +03:30
{
var response = await _baseController.Get($"{BaseRoute}ConversationItems/{ConversationID}");
if (response.IsSuccessStatusCode)
2025-07-12 16:59:25 +03:30
return await response.Content.ReadFromJsonAsync<List<Read_ConversationResponseDto>>();
2025-07-11 20:37:28 +03:30
return new();
}
2025-07-12 16:59:25 +03:30
public async Task ADDConversationItemFromCompanySide(int ConversationID,string text, ConversationType type)
2025-07-11 20:37:28 +03:30
{
2025-07-12 16:59:25 +03:30
var response = await _baseController.Post($"{BaseRoute}ADDConversationResponse",new ADD_ConversationResponseDto()
2025-07-11 20:37:28 +03:30
{
ConversationID = ConversationID,
2025-07-12 16:59:25 +03:30
Text=text,
Type=type
2025-07-11 20:37:28 +03:30
});
}
public async Task<bool> ConversationIsFinish(int ConversationID)
{
var response = await _baseController.Put($"{BaseRoute}ConversationIsFinish/{ConversationID}");
return response.IsSuccessStatusCode;
}
public async Task<int> GetCountQueueCompany(int CompanyID,int GroupID=0)
{
var response = await _baseController.Get($"{BaseRoute}CountQueueCompany/{CompanyID}?GroupID={GroupID}");
if (response.IsSuccessStatusCode)
return await response.Content.ReadFromJsonAsync<int>();
return -1;
}
2025-07-12 16:59:25 +03:30
public async Task<List<Read_ConversationDto>> MyConversationUserSide(int CompanyID)
2025-07-11 20:37:28 +03:30
{
var response = await _baseController.Get($"{BaseRoute}ConversationFromUserSide/{CompanyID}");
if (response.IsSuccessStatusCode)
2025-07-12 16:59:25 +03:30
return await response.Content.ReadFromJsonAsync<List<Read_ConversationDto>>();
2025-07-11 20:37:28 +03:30
return new();
}
}
}