Files
moadiran/TaxPayerFull/Layout/Lchat.razor

114 lines
3.1 KiB
Plaintext
Raw Normal View History

2024-05-04 02:53:36 +03:30
@using Front.Services
@using Shared.DTOs
@inject HttpClientController hc;
<div class="row">
<Alert hidden="@Hidealert" Color="@alertColor" Dismissable="false">
<Icon Name="@alertIconName" class="me-2"></Icon>
@alertMessage
</Alert>
</div>
<div dir="ltr" class="chat">
2024-05-03 18:18:38 +03:30
<div class="messages" id="chat">
2024-05-04 02:53:36 +03:30
@for (int i = 0; i < subTickets?.Count; i++)
{
if (i == 0 || subTickets[i - 1].Date != @subTickets[i].Date)
{
<div class="time"> @subTickets[i].Date </div>
}
string type = subTickets[i].Type == SideType.Customer ? "parker" : "stark";
2024-05-03 18:18:38 +03:30
2024-05-04 02:53:36 +03:30
<div class="message @type">
@subTickets[i].Text
2024-05-03 18:18:38 +03:30
</div>
2024-05-04 02:53:36 +03:30
}
2024-05-03 18:18:38 +03:30
</div>
2024-05-04 02:53:36 +03:30
@if (Ticket.Status == StatusTicket.Awaitingreview || Ticket.Status == StatusTicket.Read_Checking
|| Ticket.Status == StatusTicket.hasbeenanswered)
{
2024-05-04 19:16:56 +03:30
2024-05-04 02:53:36 +03:30
<div class="input">
2024-05-04 19:16:56 +03:30
<InputText @bind-Value="inputsub" placeholder="Type your message here!" type="text"/>
<Button Color="ButtonColor.Info" @onclick="sendsubTicket">ارسال</Button>
2024-05-04 02:53:36 +03:30
</div>
}
2024-05-03 18:18:38 +03:30
</div>
2024-05-04 02:53:36 +03:30
@code{
// alert
AlertColor alertColor = AlertColor.Primary;
IconName alertIconName = IconName.CheckCircleFill;
bool Hidealert = true;
string alertMessage = "";
[Parameter]
public TicketDTO Ticket { get; set; }
2024-05-04 19:16:56 +03:30
public string? inputsub { get; set; }
2024-05-04 02:53:36 +03:30
public List<SubTicketDTO>? subTickets { get; set; } = new List<SubTicketDTO>();
protected override async Task OnParametersSetAsync()
{
2024-05-04 19:16:56 +03:30
await Inital();
2024-05-04 02:53:36 +03:30
await base.OnParametersSetAsync();
}
}
@functions {
private void ShowSuccessAlert(string msg)
{
Hidealert = false;
alertColor = AlertColor.Success;
alertIconName = IconName.CheckCircleFill;
alertMessage = msg;
}
private void ShowDangerAlert(string msg)
{
Hidealert = false;
alertColor = AlertColor.Danger;
alertIconName = IconName.ExclamationTriangleFill;
alertMessage = msg;
}
2024-05-04 19:16:56 +03:30
private async Task Inital()
{
var rsp = await hc.Get($"Ticket/GetSubTicket/{Ticket.TicketID}");
if (rsp.IsSuccessStatusCode)
{
var res = await rsp.Content.ReadFromJsonAsync<ICollection<SubTicketDTO>>();
subTickets = res?.ToList();
}
else
{
ShowDangerAlert("خطایی در اجرای عملیات رخ داده");
}
}
private async Task sendsubTicket()
{
if (!string.IsNullOrEmpty(inputsub))
{
var rsp = await hc.Post<AddSubTicket>($"Ticket/AddSubicket", new AddSubTicket
{
TicketID = Ticket.TicketID,
Text = inputsub
});
if (rsp.IsSuccessStatusCode)
{
inputsub = "";
await Inital();
}
else
{
var errors = await rsp.Content.ReadFromJsonAsync<List<string>>();
ShowDangerAlert(errors[0]);
}
2024-05-04 02:53:36 +03:30
2024-05-04 19:16:56 +03:30
}
}
2024-05-04 02:53:36 +03:30
}