added new metod for getting workshop on client login
This commit is contained in:
@@ -246,15 +246,13 @@ public class AccountApplication : IAccountApplication
|
|||||||
{
|
{
|
||||||
var clientPermissions = _accountPermissionSubtitle1Repository.GetAllPermissionCodes();
|
var clientPermissions = _accountPermissionSubtitle1Repository.GetAllPermissionCodes();
|
||||||
authViewModel.Permissions = clientPermissions;
|
authViewModel.Permissions = clientPermissions;
|
||||||
var workshopList = _workshopRepository.SearchForClient(new WorkshopSearchModel() { AccountId = account.id })
|
var workshopList = _workshopRepository.GetWorkshopsByClientAccountId(account.id).Select(x => new WorkshopClaim
|
||||||
.OrderByDescending(x => x.PersonnelCount).ToList().Select(x => new WorkshopClaim()
|
{
|
||||||
{
|
PersonnelCount = x.PersonnelCount,
|
||||||
Slug = _passwordHasher.SlugHasher(x.Id),
|
Id = x.Id,
|
||||||
Name = x.WorkshopFullName,
|
Name = x.WorkshopFullName,
|
||||||
PersonnelCount = x.PersonnelCount,
|
Slug = _passwordHasher.SlugHasher(x.Id)
|
||||||
Id = x.Id
|
}).OrderByDescending(x => x.PersonnelCount).ToList();
|
||||||
}
|
|
||||||
).ToList();
|
|
||||||
authViewModel.WorkshopList = workshopList;
|
authViewModel.WorkshopList = workshopList;
|
||||||
if (workshopList.Any())
|
if (workshopList.Any())
|
||||||
authViewModel.WorkshopSlug = _passwordHasher.SlugHasher(workshopList.First().Id);
|
authViewModel.WorkshopSlug = _passwordHasher.SlugHasher(workshopList.First().Id);
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ public interface IWorkshopRepository : IRepository<long, Workshop>
|
|||||||
#endregion
|
#endregion
|
||||||
#region Mahan
|
#region Mahan
|
||||||
PersonalContractingPartyViewModel GetPersonalContractingPartyByWorkshopId(long workshopId);
|
PersonalContractingPartyViewModel GetPersonalContractingPartyByWorkshopId(long workshopId);
|
||||||
|
List<WorkshopViewModel> GetWorkshopsByClientAccountId(long clientAccountId);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
@@ -6,6 +6,8 @@ using _0_Framework.Application;
|
|||||||
using _0_Framework.InfraStructure;
|
using _0_Framework.InfraStructure;
|
||||||
using AccountManagement.Application.Contracts.Account;
|
using AccountManagement.Application.Contracts.Account;
|
||||||
using AccountMangement.Infrastructure.EFCore;
|
using AccountMangement.Infrastructure.EFCore;
|
||||||
|
using Company.Domain.EmployeeAgg;
|
||||||
|
using Company.Domain.empolyerAgg;
|
||||||
using Company.Domain.WorkshopAccountAgg;
|
using Company.Domain.WorkshopAccountAgg;
|
||||||
using Company.Domain.WorkshopAgg;
|
using Company.Domain.WorkshopAgg;
|
||||||
using Company.Domain.WorkshopEmployerAgg;
|
using Company.Domain.WorkshopEmployerAgg;
|
||||||
@@ -27,13 +29,15 @@ public class WorkshopRepository : RepositoryBase<long, Company.Domain.WorkshopAg
|
|||||||
private readonly IAuthHelper _authHelper;
|
private readonly IAuthHelper _authHelper;
|
||||||
private readonly IPasswordHasher _passwordHasher;
|
private readonly IPasswordHasher _passwordHasher;
|
||||||
private readonly IWorkshopAccountRepository _workshopAccountRepository;
|
private readonly IWorkshopAccountRepository _workshopAccountRepository;
|
||||||
public WorkshopRepository(CompanyContext context, AccountContext accountContext, IAuthHelper authHelper, IPasswordHasher passwordHasher, IWorkshopAccountRepository workshopAccountRepository) : base(context)
|
private readonly IEmployeeRepository _employeeRepository;
|
||||||
|
public WorkshopRepository(CompanyContext context, AccountContext accountContext, IAuthHelper authHelper, IPasswordHasher passwordHasher, IWorkshopAccountRepository workshopAccountRepository, IEmployeeRepository employeeRepository) : base(context)
|
||||||
{
|
{
|
||||||
_context = context;
|
_context = context;
|
||||||
_accountContext = accountContext;
|
_accountContext = accountContext;
|
||||||
_authHelper = authHelper;
|
_authHelper = authHelper;
|
||||||
_passwordHasher = passwordHasher;
|
_passwordHasher = passwordHasher;
|
||||||
_workshopAccountRepository = workshopAccountRepository;
|
_workshopAccountRepository = workshopAccountRepository;
|
||||||
|
_employeeRepository = employeeRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1037,6 +1041,30 @@ public class WorkshopRepository : RepositoryBase<long, Company.Domain.WorkshopAg
|
|||||||
}).FirstOrDefault();
|
}).FirstOrDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<WorkshopViewModel> GetWorkshopsByClientAccountId(long clientAccountId)
|
||||||
|
{
|
||||||
|
var workshops = _context.ContractingPartyAccounts.Where(x => x.AccountId == clientAccountId)
|
||||||
|
.Include(x => x.PersonalContractingParty)
|
||||||
|
.ThenInclude(x => x.Employers).ThenInclude(x => x.WorkshopEmployers).ThenInclude(x => x.Workshop).SelectMany(x =>
|
||||||
|
x.PersonalContractingParty.Employers.SelectMany(e => e.WorkshopEmployers).Select(e => e.Workshop)).Distinct().Select(x => new WorkshopViewModel()
|
||||||
|
{
|
||||||
|
Id = x.id,
|
||||||
|
WorkshopFullName = x.WorkshopFullName,
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
workshops = workshops.Select(x => new WorkshopViewModel()
|
||||||
|
{
|
||||||
|
Id = x.Id,
|
||||||
|
WorkshopFullName = x.WorkshopFullName,
|
||||||
|
PersonnelCount = _employeeRepository.GetWorkingEmployeesByWorkshopId(x.Id).Count(),
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
return workshops;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
#region NewByHeydari
|
#region NewByHeydari
|
||||||
|
|||||||
Reference in New Issue
Block a user