add ticket and task count

This commit is contained in:
2025-10-05 11:41:56 +03:30
parent 2e97d3238d
commit 126cbff54f

View File

@@ -1,4 +1,6 @@
using _0_Framework.Application;
using AccountManagement.Application.Contracts.Task;
using AccountManagement.Application.Contracts.Ticket;
using AccountManagement.Application.Contracts.TicketAccessAccount;
using Microsoft.AspNetCore.Mvc;
using ServiceHost.BaseControllers;
@@ -6,7 +8,8 @@ using ServiceHost.Controllers;
namespace ServiceHost.Areas.Admin.Controllers;
public record GetAdminProfileDetails(long Id, string Fullname, string Mobile, string RoleName,
List<int> Permissions, long? PositionValue,UserType UserType,bool HasTicketAccess);
List<int> Permissions, long? PositionValue,UserType UserType,bool HasTicketAccess,
int TicketCount,int TaskCount);
public class LoginController:AdminBaseController
{
@@ -14,17 +17,22 @@ public class LoginController:AdminBaseController
private readonly IAuthHelper _authHelper;
private readonly ITicketAccessAccountApplication _ticketAccessAccount;
public LoginController(IAuthHelper authHelper, ITicketAccessAccountApplication ticketAccessAccount)
private readonly ITaskApplication _taskApplication;
private readonly ITicketApplication _ticketApplication;
public LoginController(IAuthHelper authHelper, ITicketAccessAccountApplication ticketAccessAccount, ITaskApplication taskApplication, ITicketApplication ticketApplication)
{
_authHelper = authHelper;
_ticketAccessAccount = ticketAccessAccount;
_taskApplication = taskApplication;
_ticketApplication = ticketApplication;
}
/// <summary>
/// جزئیات پروفایل کاربر ادمین را برمی گرداند
/// </summary>
/// <returns></returns>
[HttpGet("Profile")]
public ActionResult<GetAdminProfileDetails> GetProfile()
public async Task<ActionResult<GetAdminProfileDetails>> GetProfile()
{
if (!_authHelper.IsAuthenticated())
return Unauthorized();
@@ -41,6 +49,8 @@ public class LoginController:AdminBaseController
var hasTicketAccess = _ticketAccessAccount.HasTicketAccess(data.Id);
var taskCount = await _taskApplication.RequestedAndOverdueTasksCount(data.Id);
var ticketCount = _ticketApplication.GetAdminTicketsCount();
var details = new GetAdminProfileDetails(
data.Id,
data.Fullname,
@@ -49,7 +59,8 @@ public class LoginController:AdminBaseController
data.Permissions,
data.PositionValue,
userTypeWithId.userType,
hasTicketAccess
hasTicketAccess,
ticketCount, taskCount
);
return details;
}