Files
Backend-Api/ServiceHost/Areas/Admin/Controllers/AccountController.cs
2025-09-21 11:57:48 +03:30

50 lines
1.9 KiB
C#

using AccountManagement.Application.Contracts.Account;
using Microsoft.AspNetCore.Mvc;
using ServiceHost.BaseControllers;
namespace ServiceHost.Areas.Admin.Controllers;
public class AccountController:AdminBaseController
{
private readonly IAccountApplication _accountApplication;
public AccountController(IAccountApplication accountApplication)
{
_accountApplication = accountApplication;
}
/// <summary>
/// سلکت لیست اکانت های ادمین برای جستجو
/// </summary>
/// <returns></returns>
[HttpGet("select_list")]
public async Task<ActionResult<List<AccountSelectListViewModel>>> GetAdminAccountsSelectList()
{
var res = await _accountApplication.GetAdminSelectList();
return res;
}
[HttpGet("admins-by-role")]
public ActionResult<AdminAccountByRoleResponse> GetAdminAccountsByRole()
{
var adminAccounts = _accountApplication.GetAdminAccountsNew().Select(x=> new AccountSelectListViewModel()
{
Id = x.Id,
Name = x.Fullname,
RoleId = x.RoleId
}).ToList();
var seniorContractAccountsList = adminAccounts.Where(x => x.RoleId == 3).ToList();
var juniorContractAccountsList = adminAccounts.Where(x => x.RoleId == 5).ToList();
var seniorInsuranceAccountList = adminAccounts.Where(x => x.RoleId == 7).ToList();
var juniorInsuranceAccountsList = adminAccounts.Where(x => x.RoleId == 8).ToList();
return new AdminAccountByRoleResponse(seniorContractAccountsList, juniorContractAccountsList,
seniorInsuranceAccountList, juniorInsuranceAccountsList);
}
}
public record AdminAccountByRoleResponse(
List<AccountSelectListViewModel> SeniorContractAccountsList,
List<AccountSelectListViewModel> JuniorContractAccountsList,
List<AccountSelectListViewModel> SeniorInsuranceAccountList,
List<AccountSelectListViewModel> JuniorInsuranceAccountsList);