...
This commit is contained in:
@@ -99,10 +99,14 @@ namespace Back.Controllers
|
||||
var Ticket = await _servTicket.GetTicketorgbyTicketID(user.RolUsers.First().CompanyID,TicketID);
|
||||
if (Ticket == null)
|
||||
return NotFound(new List<string>() { "تیکت یافت نشد" });
|
||||
if (!string.IsNullOrEmpty(Ticket.EndDate)) return BadRequest("این تیکت قبلا بسته شده");
|
||||
|
||||
Ticket.Status = StatusTicket.optout;
|
||||
return Ok(await _servTicket.UpdateTicket(Ticket));
|
||||
// if (!string.IsNullOrEmpty(Ticket.EndDate)) return BadRequest("این تیکت قبلا بسته شده");
|
||||
if (Ticket.Status == StatusTicket.Awaitingreview || Ticket.Status == StatusTicket.Read_Checking
|
||||
|| Ticket.Status == StatusTicket.hasbeenanswered)
|
||||
{
|
||||
Ticket.Status = StatusTicket.optout;
|
||||
return Ok(await _servTicket.UpdateTicket(Ticket));
|
||||
}
|
||||
return Ok();
|
||||
}
|
||||
[HttpPost("NewTicketNoAuthentication")]
|
||||
[AllowAnonymous]
|
||||
|
@@ -65,7 +65,7 @@ namespace Back.Services
|
||||
#endregion
|
||||
|
||||
//-----------------------
|
||||
return await invok.OrderByDescending(o => o.ID).Select(s => new SubTicketDTO()
|
||||
return await invok.OrderBy(o => o.ID).Select(s => new SubTicketDTO()
|
||||
{
|
||||
Date = s.Date.ShamciToFormatShamci(),
|
||||
Text = s.Text,
|
||||
|
@@ -5,7 +5,7 @@ namespace Shared.DTOs
|
||||
public enum StatusTicket
|
||||
{
|
||||
|
||||
[Display(Name = "فرد ناشناس")]
|
||||
[Display(Name = "فرد ناشناس")]//
|
||||
unknownPerson,
|
||||
[Display(Name = "در انتظار بررسی")]
|
||||
Awaitingreview,
|
||||
@@ -13,9 +13,9 @@ namespace Shared.DTOs
|
||||
Read_Checking,
|
||||
[Display(Name = "پاسخ داده شده")]
|
||||
hasbeenanswered,
|
||||
[Display(Name = "پاِیان")]
|
||||
[Display(Name = "پاِیان")]//
|
||||
End,
|
||||
[Display(Name = "انصراف")]
|
||||
[Display(Name = "انصراف")]//
|
||||
optout,
|
||||
}
|
||||
}
|
||||
|
@@ -1,18 +1,25 @@
|
||||
@using Shared.DTOs
|
||||
|
||||
@using Front.Services
|
||||
@using Shared.DTOs
|
||||
@inject HttpClientController hc;
|
||||
<Modal @ref="modal" title=@Ticket.Title IsVerticallyCentered="true">
|
||||
<BodyTemplate>
|
||||
<Lchat/>
|
||||
<Badge Color="@badgeColor" IndicatorType="BadgeIndicatorType.RoundedPill">@Ticket.MsgStatus</Badge>
|
||||
<Lchat Ticket="Ticket" />
|
||||
</BodyTemplate>
|
||||
<FooterTemplate>
|
||||
<Button Color="ButtonColor.Secondary" @onclick="OnHideModalClick">Close</Button>
|
||||
<Button Color="ButtonColor.Danger" @onclick="OnHideModalClick">بستن</Button>
|
||||
@if (Ticket.Status == StatusTicket.Awaitingreview || Ticket.Status == StatusTicket.Read_Checking
|
||||
|| Ticket.Status == StatusTicket.hasbeenanswered)
|
||||
{
|
||||
<Button Color="ButtonColor.Danger" @onclick="OnCloseTicket">بستن</Button>
|
||||
}
|
||||
|
||||
</FooterTemplate>
|
||||
</Modal>
|
||||
|
||||
<li class="list-group-item" data-toggle="modal" data-target="#issue">
|
||||
<div class="row">
|
||||
<div class="col-md-1">
|
||||
<div class="col-md-2">
|
||||
<a style="cursor:pointer" @onclick="OnShowModalClick"><br />#@Ticket.TicketID</a>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
@@ -47,6 +54,8 @@
|
||||
@code {
|
||||
[Parameter]
|
||||
public TicketDTO Ticket { get; set; }
|
||||
[Parameter]
|
||||
public EventCallback<int> OnMultipleOfThree { get; set; }
|
||||
public BadgeColor badgeColor = BadgeColor.Light;
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
@@ -80,7 +89,19 @@
|
||||
{
|
||||
await modal.ShowAsync();
|
||||
}
|
||||
private async Task OnCloseTicket()
|
||||
{
|
||||
var rsp = await hc.Put($"Ticket/CancelTicket/{Ticket.TicketID}");
|
||||
if (rsp.IsSuccessStatusCode)
|
||||
{
|
||||
// await Search(1);
|
||||
await modal.HideAsync();
|
||||
await OnMultipleOfThree.InvokeAsync(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
private async Task OnHideModalClick()
|
||||
{
|
||||
await modal.HideAsync();
|
||||
|
@@ -1,32 +1,85 @@
|
||||
<div dir="ltr" class="chat">
|
||||
|
||||
@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">
|
||||
<div class="messages" id="chat">
|
||||
<div class="time">
|
||||
Today at 11:41
|
||||
</div>
|
||||
<div class="message parker">
|
||||
Hey, man! What's up, Mr Stark? 👋
|
||||
</div>
|
||||
|
||||
@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";
|
||||
|
||||
<div class="message stark">
|
||||
Kid, where'd you come from?
|
||||
<div class="message @type">
|
||||
@subTickets[i].Text
|
||||
</div>
|
||||
|
||||
}
|
||||
|
||||
|
||||
<div class="message parker">
|
||||
Field trip! 🤣
|
||||
</div>
|
||||
<div class="message parker">
|
||||
حل شد 🤣
|
||||
</div>
|
||||
|
||||
<div class="message stark">
|
||||
مشکل ما چی شد
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="input">
|
||||
<input placeholder="Type your message here!" type="text">
|
||||
</div>
|
||||
@if (Ticket.Status == StatusTicket.Awaitingreview || Ticket.Status == StatusTicket.Read_Checking
|
||||
|| Ticket.Status == StatusTicket.hasbeenanswered)
|
||||
{
|
||||
<div class="input">
|
||||
<input placeholder="Type your message here!" type="text">
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
|
||||
@code{
|
||||
// alert
|
||||
AlertColor alertColor = AlertColor.Primary;
|
||||
IconName alertIconName = IconName.CheckCircleFill;
|
||||
bool Hidealert = true;
|
||||
string alertMessage = "";
|
||||
|
||||
[Parameter]
|
||||
public TicketDTO Ticket { get; set; }
|
||||
|
||||
public List<SubTicketDTO>? subTickets { get; set; } = new List<SubTicketDTO>();
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
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("خطایی در اجرای عملیات رخ داده");
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -77,7 +77,8 @@
|
||||
<ul class="list-group fa-padding">
|
||||
@for (int i = 0; i < request?.list.Count; i++)
|
||||
{
|
||||
<LTicket Ticket="request?.list[i]" />
|
||||
|
||||
<LTicket OnMultipleOfThree=@Search Ticket="request?.list[i]" />
|
||||
}
|
||||
</ul>
|
||||
<nav aria-label="Page navigation">
|
||||
@@ -111,6 +112,8 @@
|
||||
|
||||
|
||||
@code {
|
||||
LTicket child;
|
||||
|
||||
private Modal modal = default!;
|
||||
// alert
|
||||
AlertColor alertColor = AlertColor.Primary;
|
||||
@@ -157,12 +160,13 @@
|
||||
alertIconName = IconName.ExclamationTriangleFill;
|
||||
alertMessage = msg;
|
||||
}
|
||||
private async Task Search(int pi)
|
||||
public async Task Search(int pi)
|
||||
{
|
||||
|
||||
var rsp = await hc.Post<ItemSerchGetTicket>("Ticket/GetAll", new ItemSerchGetTicket
|
||||
{
|
||||
PageIndex = pi,
|
||||
PageSize = 10,
|
||||
PageSize = 5,
|
||||
TicketID = string.IsNullOrEmpty(TicketID) ? null : Convert.ToInt32(TicketID),
|
||||
Title = Title
|
||||
|
||||
|
@@ -1,5 +1,10 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Json;
|
||||
using BlazorBootstrap;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
|
||||
namespace Front.Services
|
||||
{
|
||||
@@ -32,6 +37,18 @@ namespace Front.Services
|
||||
if (request.StatusCode == System.Net.HttpStatusCode.Unauthorized)
|
||||
_nav.NavigateTo("/Sign-in/unon");
|
||||
return request;
|
||||
}
|
||||
public async Task<HttpResponseMessage> Put(string route)
|
||||
{
|
||||
var jsonString = "{\"appid\":1,\"platformid\":1,\"rating\":3}";
|
||||
var httpContent = new StringContent(jsonString, Encoding.UTF8, "application/json");
|
||||
var response = await _hc.PutAsync(route, httpContent);
|
||||
if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
|
||||
_nav.NavigateTo("/Sign-in/unon");
|
||||
return response;
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user