using Common.Dtos.Conversation; using Common.Enums; using System.ComponentModel.Design; 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; } public async Task > MyConversationIsFinished() { var response = await _baseController.Post($"{BaseRoute}MyConversation", ConversationStatus.Finished); if (response.IsSuccessStatusCode) return await response.Content.ReadFromJsonAsync>(); return new() ; } public async Task> MyConversationIsInProgress() { var response = await _baseController.Post($"{BaseRoute}MyConversation", ConversationStatus.InProgress); if (response.IsSuccessStatusCode) return await response.Content.ReadFromJsonAsync>(); return new(); } public async Task> ConversationAwaitingOurResponse() { var response = await _baseController.Get($"{BaseRoute}ConversationAwaitingOurResponse"); if (response.IsSuccessStatusCode) return await response.Content.ReadFromJsonAsync>(); return new(); } public async Task MarkAsReadConversationItemAsync(int ID) { var response = await _baseController.Put($"{BaseRoute}MarkAsReadConversationItem/{ID}"); return response.IsSuccessStatusCode; } public async Task> GetConversationItems(int ConversationID) { var response = await _baseController.Get($"{BaseRoute}ConversationItems/{ConversationID}"); if (response.IsSuccessStatusCode) return await response.Content.ReadFromJsonAsync>(); return new(); } public async Task ADDConversationItemFromCompanySide(int ConversationID,string text, ConversationType type) { var response = await _baseController.Post($"{BaseRoute}ADDConversationResponse",new ADD_ConversationResponseDto() { ConversationID = ConversationID, Text=text, Type=type }); } public async Task ConversationIsFinish(int ConversationID) { var response = await _baseController.Put($"{BaseRoute}ConversationIsFinish/{ConversationID}"); return response.IsSuccessStatusCode; } public async Task GetCountQueueCompany(int CompanyID,int GroupID=0) { var response = await _baseController.Get($"{BaseRoute}CountQueueCompany/{CompanyID}?GroupID={GroupID}"); if (response.IsSuccessStatusCode) return await response.Content.ReadFromJsonAsync(); return -1; } public async Task> MyConversationUserSide(int CompanyID) { var response = await _baseController.Get($"{BaseRoute}ConversationFromUserSide/{CompanyID}"); if (response.IsSuccessStatusCode) return await response.Content.ReadFromJsonAsync>(); return new(); } public async Task NewConversationFromCurrentUser(ADD_ConversationDto conversation) { var response = await _baseController.Post($"{BaseRoute}NewConversationFromCurrentUser", conversation); if (response.IsSuccessStatusCode) return await response.Content.ReadFromJsonAsync(); return -1; } } }