create PmRole Completed

This commit is contained in:
SamSys
2025-12-13 18:25:19 +03:30
parent f2293934d4
commit c9d582877b
26 changed files with 2010 additions and 398 deletions

View File

@@ -14,6 +14,7 @@
<ItemGroup>
<ProjectReference Include="..\0_Framework\0_Framework.csproj" />
<ProjectReference Include="..\Shared.Contracts\Shared.Contracts.csproj" />
</ItemGroup>
</Project>

View File

@@ -1,8 +1,9 @@
using _0_Framework.Application;
using AccountManagement.Application.Contracts.ProgramManager;
using Microsoft.AspNetCore.Mvc.Rendering;
using System.Collections.Generic;
using System.Threading.Tasks;
using Shared.Contracts.PmRole.Queries;
namespace AccountManagement.Application.Contracts.Role
{

View File

@@ -155,7 +155,7 @@ public class AccountApplication : IAccountApplication
}
var account = new Account(command.Fullname, command.Username, password, command.Mobile, command.RoleId,
picturePath, roleName.Name, "true", "false", command.IsProgramManagerUser);
picturePath, roleName.Name, "true", "false");
_unitOfWork.BeginAccountContext();
@@ -163,64 +163,64 @@ public class AccountApplication : IAccountApplication
_accountRepository.Create(account);
_accountRepository.SaveChanges();
//if (command.IsProgramManagerUser)
//{
if (command.IsProgramManagerUser)
{
// try
// {
// if (_pmUserRepository.Exists(x => x.FullName == command.Fullname))
// {
// _unitOfWork.RollbackAccountContext();
// return operation.Failed("نام و خانوادگی تکراری است");
// }
try
{
if (_pmUserRepository.Exists(x => x.FullName == command.Fullname))
{
_unitOfWork.RollbackAccountContext();
return operation.Failed("نام و خانوادگی تکراری است");
}
// if (_pmUserRepository.Exists(x => x.UserName == command.Username))
// {
// _unitOfWork.RollbackAccountContext();
// return operation.Failed("نام کاربری تکراری است");
// }
if (_pmUserRepository.Exists(x => x.UserName == command.Username))
{
_unitOfWork.RollbackAccountContext();
return operation.Failed("نام کاربری تکراری است");
}
// if (_pmUserRepository.Exists(x => !string.IsNullOrWhiteSpace(x.Mobile) && x.Mobile == command.Mobile))
// {
// _unitOfWork.RollbackAccountContext();
// return operation.Failed("این شماره همراه قبلا به فرد دیگری اختصاص داده شده است");
// }
if (_pmUserRepository.Exists(x => !string.IsNullOrWhiteSpace(x.Mobile) && x.Mobile == command.Mobile))
{
_unitOfWork.RollbackAccountContext();
return operation.Failed("این شماره همراه قبلا به فرد دیگری اختصاص داده شده است");
}
// var userRoles = command.UserRoles.Where(x => x > 0).Select(x => new PmRoleUser(x)).ToList();
// var create = new PmUser(command.Fullname, command.Username, command.Password, command.Mobile,
// null, account.id, userRoles);
// await _pmUserRepository.CreateAsync(create);
// await _pmUserRepository.SaveChangesAsync();
// }
// catch (Exception e)
// {
// _unitOfWork.RollbackAccountContext();
// return operation.Failed("خطا در ایجاد کاربر پروگرام منیجر");
// }
var userRoles = command.UserRoles.Where(x => x > 0).Select(x => new PmRoleUser(x)).ToList();
var create = new PmUser(command.Fullname, command.Username, command.Password, command.Mobile,
null, account.id, userRoles);
await _pmUserRepository.CreateAsync(create);
await _pmUserRepository.SaveChangesAsync();
}
catch (Exception e)
{
_unitOfWork.RollbackAccountContext();
return operation.Failed("خطا در ایجاد کاربر پروگرام منیجر");
}
// //var url = "api/user/create";
// //var key = SecretKeys.ProgramManagerInternalApi;
//var url = "api/user/create";
//var key = SecretKeys.ProgramManagerInternalApi;
// //var response = InternalApiCaller.PostAsync<CreateProgramManagerUser, ApiResponse>(
// // url,
// // key,
// // parameters
// //);
//var response = InternalApiCaller.PostAsync<CreateProgramManagerUser, ApiResponse>(
// url,
// key,
// parameters
//);
// //if (!response.Success)
// //{
// // _unitOfWork.RollbackAccountContext();
// // return operation.Failed(response.Error);
// //}
//if (!response.Success)
//{
// _unitOfWork.RollbackAccountContext();
// return operation.Failed(response.Error);
//}
// //if (!response.Result.isSuccess)
// //{
// // _unitOfWork.RollbackAccountContext();
// // return operation.Failed(response.Result.errorMessage);
// //}
//}
//if (!response.Result.isSuccess)
//{
// _unitOfWork.RollbackAccountContext();
// return operation.Failed(response.Result.errorMessage);
//}
}
_unitOfWork.CommitAccountContext();
return operation.Succcedded();
@@ -276,148 +276,148 @@ public class AccountApplication : IAccountApplication
var path = $"profilePhotos";
var picturePath = _fileUploader.Upload(command.ProfilePhoto, path);
_unitOfWork.BeginAccountContext();
account.Edit(command.Fullname, command.Username, command.Mobile, command.RoleId, picturePath, roleName.Name, command.IsProgramManagerUser);
account.Edit(command.Fullname, command.Username, command.Mobile, command.RoleId, picturePath, roleName.Name);
_accountRepository.SaveChanges();
// var key = SecretKeys.ProgramManagerInternalApi;
var key = SecretKeys.ProgramManagerInternalApi;
//var apiResult = InternalApiCaller.GetAsync<SingleUserResponseResult>(
// $"api/user/{account.id}",
// key
//);
// var userResult = _pmUserRepository.GetByPmUsertoEditbyAccountId(account.id).GetAwaiter().GetResult();
var userResult = _pmUserRepository.GetByPmUsertoEditbyAccountId(account.id).GetAwaiter().GetResult();
//اگر کاربر در پروگرام منیجر قبلا ایجاد شده
//if (userResult != null)
//{
// if (!command.UserRoles.Any())
// {
// _unitOfWork.RollbackAccountContext();
// return operation.Failed("حداقل یک نقش باید انتخاب شود");
// }
if (userResult != null)
{
if (!command.UserRoles.Any())
{
_unitOfWork.RollbackAccountContext();
return operation.Failed("حداقل یک نقش باید انتخاب شود");
}
// try
// {
try
{
// var userRoles = command.UserRoles.Where(x => x > 0).Select(x => new PmRoleUser(x)).ToList();
// userResult.Edit(command.Fullname, command.Username, command.Mobile, userRoles, command.IsProgramManagerUser);
// await _pmUserRepository.SaveChangesAsync();
// }
// catch (Exception)
// {
// _unitOfWork.RollbackAccountContext();
// return operation.Failed("خطا در ویرایش کاربر پروگرام منیجر");
// }
// //var parameters = new EditUserCommand(
// // command.Fullname,
// // command.Username,
// // command.Mobile,
// // account.id,
// // command.UserRoles,
// // command.IsProgramManagerUser
// //);
// //var url = "api/user/edit";
// //var response = InternalApiCaller.PostAsync<EditUserCommand, ApiResponse>(
// // url,
// // key,
// // parameters
// //);
var userRoles = command.UserRoles.Where(x => x > 0).Select(x => new PmRoleUser(x)).ToList();
userResult.Edit(command.Fullname, command.Username, command.Mobile, userRoles, command.IsProgramManagerUser);
await _pmUserRepository.SaveChangesAsync();
}
catch (Exception)
{
_unitOfWork.RollbackAccountContext();
return operation.Failed("خطا در ویرایش کاربر پروگرام منیجر");
}
//var parameters = new EditUserCommand(
// command.Fullname,
// command.Username,
// command.Mobile,
// account.id,
// command.UserRoles,
// command.IsProgramManagerUser
//);
//var url = "api/user/edit";
//var response = InternalApiCaller.PostAsync<EditUserCommand, ApiResponse>(
// url,
// key,
// parameters
//);
// //if (!response.Success)
// //{
// // _unitOfWork.RollbackAccountContext();
// // return operation.Failed(response.Error);
//if (!response.Success)
//{
// _unitOfWork.RollbackAccountContext();
// return operation.Failed(response.Error);
// //}
//}
// //if (!response.Result.isSuccess)
// //{
// // _unitOfWork.RollbackAccountContext();
// // return operation.Failed(response.Error);
// //}
//if (!response.Result.isSuccess)
//{
// _unitOfWork.RollbackAccountContext();
// return operation.Failed(response.Error);
//}
//}
//else //اگر کاربر قبلا ایجاد نشده
//{
// //اگر تیک فعالیت در پروگرام منیجر روشن بود
// if (command.IsProgramManagerUser)
// {
// if (!command.UserRoles.Any())
// {
// _unitOfWork.RollbackAccountContext();
// return operation.Failed("حداقل یک نقش باید انتخاب شود");
// }
}
else //اگر کاربر قبلا ایجاد نشده
{
//اگر تیک فعالیت در پروگرام منیجر روشن بود
if (command.IsProgramManagerUser)
{
if (!command.UserRoles.Any())
{
_unitOfWork.RollbackAccountContext();
return operation.Failed("حداقل یک نقش باید انتخاب شود");
}
// if (_pmUserRepository.Exists(x => x.FullName == command.Fullname))
// {
// _unitOfWork.RollbackAccountContext();
// return operation.Failed("نام و خانوادگی تکراری است");
// }
if (_pmUserRepository.Exists(x => x.FullName == command.Fullname))
{
_unitOfWork.RollbackAccountContext();
return operation.Failed("نام و خانوادگی تکراری است");
}
// if (_pmUserRepository.Exists(x => x.UserName == command.Username))
// {
// _unitOfWork.RollbackAccountContext();
// return operation.Failed("نام کاربری تکراری است");
// }
if (_pmUserRepository.Exists(x => x.UserName == command.Username))
{
_unitOfWork.RollbackAccountContext();
return operation.Failed("نام کاربری تکراری است");
}
// if (_pmUserRepository.Exists(x => !string.IsNullOrWhiteSpace(x.Mobile) && x.Mobile == command.Mobile))
// {
// _unitOfWork.RollbackAccountContext();
// return operation.Failed("این شماره همراه قبلا به فرد دیگری اختصاص داده شده است");
// }
if (_pmUserRepository.Exists(x => !string.IsNullOrWhiteSpace(x.Mobile) && x.Mobile == command.Mobile))
{
_unitOfWork.RollbackAccountContext();
return operation.Failed("این شماره همراه قبلا به فرد دیگری اختصاص داده شده است");
}
// try
// {
// var userRoles = command.UserRoles.Where(x => x > 0).Select(x => new PmRoleUser(x)).ToList();
// var create = new PmUser(command.Fullname, command.Username, account.Password, command.Mobile,
// null, account.id, userRoles);
// await _pmUserRepository.CreateAsync(create);
// await _pmUserRepository.SaveChangesAsync();
// }
// catch (Exception)
// {
try
{
var userRoles = command.UserRoles.Where(x => x > 0).Select(x => new PmRoleUser(x)).ToList();
var create = new PmUser(command.Fullname, command.Username, account.Password, command.Mobile,
null, account.id, userRoles);
await _pmUserRepository.CreateAsync(create);
await _pmUserRepository.SaveChangesAsync();
}
catch (Exception)
{
// _unitOfWork.RollbackAccountContext();
// return operation.Failed("خطا در ویرایش کاربر پروگرام منیجر");
// }
_unitOfWork.RollbackAccountContext();
return operation.Failed("خطا در ویرایش کاربر پروگرام منیجر");
}
// //var parameters = new CreateProgramManagerUser(
// // command.Fullname,
// // command.Username,
// // account.Password,
// // command.Mobile,
// // command.Email,
// // account.id,
// // command.UserRoles
// //);
//var parameters = new CreateProgramManagerUser(
// command.Fullname,
// command.Username,
// account.Password,
// command.Mobile,
// command.Email,
// account.id,
// command.UserRoles
//);
// //var url = "api/user/Create";
//var url = "api/user/Create";
// //var response = InternalApiCaller.PostAsync<CreateProgramManagerUser, ApiResponse>(
// // url,
// // key,
// // parameters
// //);
//var response = InternalApiCaller.PostAsync<CreateProgramManagerUser, ApiResponse>(
// url,
// key,
// parameters
//);
// //if (!response.Success)
// //{
// // _unitOfWork.RollbackAccountContext();
// // return operation.Failed(response.Error);
//if (!response.Success)
//{
// _unitOfWork.RollbackAccountContext();
// return operation.Failed(response.Error);
// //}
//}
// //if (!response.Result.isSuccess)
// //{
// // _unitOfWork.RollbackAccountContext();
// // return operation.Failed(response.Error);
// //}
// }
//if (!response.Result.isSuccess)
//{
// _unitOfWork.RollbackAccountContext();
// return operation.Failed(response.Error);
//}
}
//}
}
_unitOfWork.CommitAccountContext();
return operation.Succcedded();
@@ -919,7 +919,7 @@ public class AccountApplication : IAccountApplication
if (!string.IsNullOrWhiteSpace(command.PhoneNumber))
{
entity.Edit(entity.Fullname, entity.Username, command.PhoneNumber, entity.RoleId, entity.ProfilePhoto, entity.RoleName, false);
entity.Edit(entity.Fullname, entity.Username, command.PhoneNumber, entity.RoleId, entity.ProfilePhoto, entity.RoleName);
}
_accountRepository.SaveChanges();
return op.Succcedded();

View File

@@ -8,6 +8,7 @@
<ProjectReference Include="..\AccountManagement.Application.Contracts\AccountManagement.Application.Contracts.csproj" />
<ProjectReference Include="..\AccountManagement.Domain\AccountManagement.Domain.csproj" />
<ProjectReference Include="..\Company.Domain\Company.Domain.csproj" />
<ProjectReference Include="..\Shared.Contracts\Shared.Contracts.csproj" />
</ItemGroup>

View File

@@ -4,7 +4,6 @@ using AccountManagement.Domain.RoleAgg;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using AccountManagement.Application.Contracts.ProgramManager;
using AccountManagement.Application.Contracts.ProgramManagerApiResult;
using AccountManagement.Domain.InternalApiCaller;
using Company.Domain._common;
@@ -13,7 +12,10 @@ using AccountManagement.Domain.PmDomains.PmPermissionAgg;
using AccountManagement.Domain.PmDomains.PmRoleAgg;
using AccountManagement.Domain.PmDomains.PmUserAgg;
using Microsoft.AspNetCore.Mvc.Rendering;
using Shared.Contracts.PmRole.Commands;
using GetPmRolesDto = Shared.Contracts.PmRole.Queries.GetPmRolesDto;
using Role = AccountManagement.Domain.RoleAgg.Role;
using Shared.Contracts.PmRole.Queries;
namespace AccountManagement.Application;
@@ -22,14 +24,18 @@ public class RoleApplication : IRoleApplication
private readonly IRoleRepository _roleRepository;
private readonly IPmRoleRepository _pmRoleRepository;
private readonly IPmUserRepository _pmUserRepository;
private readonly IPmRoleQueryService _pmRoleQueryService;
private readonly IPmRoleCommandService _pmRoleCommandService;
private readonly IUnitOfWork _unitOfWork;
public RoleApplication(IRoleRepository roleRepository, IUnitOfWork unitOfWork, IPmRoleRepository pmRoleRepository, IPmUserRepository pmUserRepository)
public RoleApplication(IRoleRepository roleRepository, IUnitOfWork unitOfWork, IPmRoleRepository pmRoleRepository, IPmUserRepository pmUserRepository, IPmRoleQueryService pmRoleQueryService, IPmRoleCommandService pmRoleCommandService)
{
_roleRepository = roleRepository;
_unitOfWork = unitOfWork;
_pmRoleRepository = pmRoleRepository;
_pmUserRepository = pmUserRepository;
_pmRoleQueryService = pmRoleQueryService;
_pmRoleCommandService = pmRoleCommandService;
}
public async Task<OperationResult> Create(CreateRole command)
@@ -47,20 +53,16 @@ public class RoleApplication : IRoleApplication
var pmPermissions = command.PmPermissions.Where(x => x > 0).ToList();
if (pmPermissions.Any())
{
try
{
var pmPermissionsData = pmPermissions.Where(x => x > 0).Select(x => new PmPermission(x)).ToList();
var pmRole = new PmRole(command.Name, role.id, pmPermissionsData);
await _pmRoleRepository.CreateAsync(pmRole);
await _pmRoleRepository.SaveChangesAsync();
}
catch (System.Exception)
var pmRole = new CreatePmRoleDto{ RoleName = command.Name, Permissions = pmPermissions, GozareshgirRoleId = role.id};
var res =await _pmRoleCommandService.Create(pmRole);
if (!res.Item1)
{
_unitOfWork.RollbackAccountContext();
return operation.Failed("خطا در ویرایش دسترسی ها در پروگرام منیجر");
}
//var parameters = new CreateProgramManagerRole
//{
// RoleName = command.Name,
@@ -136,8 +138,8 @@ public class RoleApplication : IRoleApplication
//);
var pmRoleResult = await _pmRoleRepository.GetPmRoleToEdit(command.Id);
var pmRoleListResult = await _pmRoleQueryService.GetPmRoleList(command.Id);
var pmRoleResult = pmRoleListResult.FirstOrDefault();
//اگر این نقش در پروگرام منیجر وجود داشت ویرایش کن
if (pmRoleResult != null)
@@ -146,8 +148,8 @@ public class RoleApplication : IRoleApplication
try
{
var pmpermissionsData = pmPermissions.Where(x => x > 0).Select(x => new PmPermission(x)).ToList();
pmRoleResult.Edit(command.Name, pmpermissionsData);
await _pmRoleRepository.SaveChangesAsync();
//pmRoleResult.Edit(command.Name, pmpermissionsData);
// await _pmRoleRepository.SaveChangesAsync();
}
catch (System.Exception)
{
@@ -254,7 +256,7 @@ public class RoleApplication : IRoleApplication
public async Task<SelectList> GetPmRoleList(long? gozareshgirRoleId)
{
var rolse = await _pmRoleRepository.GetPmRoleList(gozareshgirRoleId);
var rolse = await _pmRoleQueryService.GetPmRoleList(gozareshgirRoleId);
return new SelectList(rolse, "Id", "RoleName");
@@ -262,7 +264,7 @@ public class RoleApplication : IRoleApplication
public async Task<List<GetPmRolesDto>> GetPmRoleListToEdit(long? gozareshgirRoleId)
{
return await _pmRoleRepository.GetPmRoleList(gozareshgirRoleId);
return await _pmRoleQueryService.GetPmRoleList(gozareshgirRoleId);
}

View File

@@ -25,11 +25,6 @@ namespace AccountManagement.Domain.AccountAgg
public string VerifyCode { get; set; }
public string IsActiveString { get; private set; }
/// <summary>
/// آیا کاربر در پروگرام منیجر فعالیت می کند
/// </summary>
public bool IsProgramManagerUser { get; private set; }
#region Mahan
public string PositionIsActive { get; private set; }
public long? PositionId { get; private set; }
@@ -40,7 +35,7 @@ namespace AccountManagement.Domain.AccountAgg
public List<CameraAccount> CameraAccounts { get; private set; }
public List<AccountLeftWork> AccountLeftWorkList { get; set; }
public Account(string fullname, string username, string password, string mobile,
long roleId, string profilePhoto, string roleName, string adminAreaPermission, string clientAriaPermission, bool isProgramManagerUser)
long roleId, string profilePhoto, string roleName, string adminAreaPermission, string clientAriaPermission)
{
Fullname = fullname;
Username = username;
@@ -55,7 +50,6 @@ namespace AccountManagement.Domain.AccountAgg
RoleName = roleName;
AdminAreaPermission = adminAreaPermission;
ClientAriaPermission = clientAriaPermission;
IsProgramManagerUser = isProgramManagerUser;
IsActiveString = "true";
}
@@ -76,20 +70,18 @@ namespace AccountManagement.Domain.AccountAgg
public Account()
{
ProfilePhoto = " ";
}
public void Edit(string fullname, string username, string mobile,
long roleId, string profilePhoto, string roleName, bool isProgramManagerUser)
long roleId, string profilePhoto, string roleName)
{
Fullname = fullname;
Username = username;
Mobile = mobile;
RoleId = roleId;
RoleName = roleName;
IsProgramManagerUser = isProgramManagerUser;
if (!string.IsNullOrWhiteSpace(profilePhoto))
ProfilePhoto = profilePhoto;
}

View File

@@ -20,4 +20,8 @@
<ProjectReference Include="..\Company.Domain\Company.Domain.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Services\" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,29 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace AccountMangement.Infrastructure.EFCore.Migrations
{
/// <inheritdoc />
public partial class romoveIsProgramManagerUserFromAccount : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "IsProgramManagerUser",
table: "Accounts");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<bool>(
name: "IsProgramManagerUser",
table: "Accounts",
type: "bit",
nullable: false,
defaultValue: false);
}
}
}

View File

@@ -54,9 +54,6 @@ namespace AccountMangement.Infrastructure.EFCore.Migrations
.HasMaxLength(6)
.HasColumnType("nvarchar(6)");
b.Property<bool>("IsProgramManagerUser")
.HasColumnType("bit");
b.Property<string>("Mobile")
.IsRequired()
.HasMaxLength(20)

View File

@@ -46,8 +46,7 @@ public class AccountRepository : RepositoryBase<long, Account>, IAccountReposito
Mobile = x.Mobile,
RoleId = x.RoleId,
Username = x.Username,
IsActiveString = x.IsActiveString,
IsProgramManagerUser = x.IsProgramManagerUser,
IsActiveString = x.IsActiveString
}).FirstOrDefault(x => x.Id == id);
}

View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Shared.Contracts.Holidays;
namespace CompanyManagment.EFCore.Services;
public class HolidayQueryService : IHolidayQueryService
{
public Task<List<HolidayDto>> GetHolidaysInDates(DateTime startDate, DateTime endDate)
{
throw new NotImplementedException();
}
}

View File

@@ -1,18 +1,44 @@
using System;
using _0_Framework.Application.FaceEmbedding;
using _0_Framework.Application.UID;
using _0_Framework.Infrastructure;
using _0_Framework.InfraStructure;
using Company.Application.Contracts.AuthorizedBankDetails;
using Company.Domain._common;
using Company.Domain.AdminMonthlyOverviewAgg;
using Company.Domain.AndroidApkVersionAgg;
using Company.Domain.AuthorizedBankDetailsAgg;
using Company.Domain.AuthorizedPersonAgg;
using Company.Domain.BankAgg;
using Company.Domain.BillAgg;
using Company.Domain.Board;
using Company.Domain.ChapterAgg;
using Company.Domain.CheckoutAgg;
using Company.Domain.ClassifiedSalaryAgg;
using Company.Domain.Contact2Agg;
using Company.Domain.CrossJobAgg;
using Company.Domain.CrossJobGuildAgg;
using Company.Domain.ContactUsAgg;
using Company.Domain.ContarctingPartyAgg;
using Company.Domain.ContractAgg;
using Company.Domain.ContractingPartyBankAccountsAgg;
using Company.Domain.CrossJobAgg;
using Company.Domain.CrossJobGuildAgg;
using Company.Domain.CrossJobItemsAgg;
using Company.Domain.CustomizeCheckoutAgg;
using Company.Domain.CustomizeCheckoutTempAgg;
using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg;
using Company.Domain.CustomizeWorkshopGroupSettingsAgg;
using Company.Domain.CustomizeWorkshopSettingsAgg;
using Company.Domain.DateSalaryAgg;
using Company.Domain.DateSalaryItemAgg;
using Company.Domain.EmployeeAgg;
using Company.Domain.EmployeeAuthorizeTempAgg;
using Company.Domain.EmployeeBankInformationAgg;
using Company.Domain.EmployeeChildrenAgg;
using Company.Domain.EmployeeClientTempAgg;
using Company.Domain.EmployeeComputeOptionsAgg;
using Company.Domain.EmployeeDocumentItemAgg;
using Company.Domain.EmployeeDocumentsAdminSelectionAgg;
using Company.Domain.EmployeeDocumentsAgg;
using Company.Domain.EmployeeFaceEmbeddingAgg;
using Company.Domain.empolyerAgg;
using Company.Domain.Evidence;
using Company.Domain.EvidenceDetail;
@@ -23,38 +49,108 @@ using Company.Domain.FileEmployerAgg;
using Company.Domain.FileState;
using Company.Domain.FileTiming;
using Company.Domain.FileTitle;
using Company.Domain.FinancialInvoiceAgg;
using Company.Domain.FinancialStatmentAgg;
using Company.Domain.FinancialTransactionAgg;
using Company.Domain.FineAgg;
using Company.Domain.FineSubjectAgg;
using Company.Domain.GroupPlanAgg;
using Company.Domain.GroupPlanJobItemAgg;
using Company.Domain.HolidayAgg;
using Company.Domain.HolidayItemAgg;
using Company.Domain.InstitutionContractAgg;
using Company.Domain.InstitutionContractContactInfoAgg;
using Company.Domain.InstitutionContractExtensionTempAgg;
using Company.Domain.InstitutionPlanAgg;
using Company.Domain.InsuranceAgg;
using Company.Domain.InsuranceEmployeeInfoAgg;
using Company.Domain.InsuranceJobItemAgg;
using Company.Domain.InsuranceListAgg;
using Company.Domain.InsuranceYearlySalaryAgg;
using Company.Domain.InsurancJobAgg;
using Company.Domain.InsurancWorkshopInfoAgg;
using Company.Domain.JobAgg;
using Company.Domain.LawAgg;
using Company.Domain.LeaveAgg;
using Company.Domain.LeftWorkAgg;
using Company.Domain.LeftWorkInsuranceAgg;
using Company.Domain.LeftWorkTempAgg;
using Company.Domain.LoanAgg;
using Company.Domain.MandatoryHoursAgg;
using Company.Domain.MasterPenaltyTitle;
using Company.Domain.MasterPetition;
using Company.Domain.MasterWorkHistory;
using Company.Domain.ModuleAgg;
using Company.Domain.OriginalTitleAgg;
using Company.Domain.PaymentInstrumentAgg;
using Company.Domain.PaymentToEmployeeAgg;
using Company.Domain.PaymentToEmployeeItemAgg;
using Company.Domain.PaymentTransactionAgg;
using Company.Domain.PenaltyTitle;
using Company.Domain.PercentageAgg;
using Company.Domain.PersonnelCodeAgg;
using Company.Domain.Petition;
using Company.Domain.ProceedingSession;
using Company.Domain.ReportAgg;
using Company.Domain.ReportClientAgg;
using Company.Domain.RepresentativeAgg;
using Company.Domain.RewardAgg;
using Company.Domain.RollCallAgg;
using Company.Domain.RollCallAgg.DomainService;
using Company.Domain.RollCallEmployeeAgg;
using Company.Domain.RollCallEmployeeStatusAgg;
using Company.Domain.RollCallPlanAgg;
using Company.Domain.RollCallServiceAgg;
using Company.Domain.SalaryAidAgg;
using Company.Domain.SmsResultAgg;
using Company.Domain.SubtitleAgg;
using Company.Domain.TaxJobCategoryAgg;
using Company.Domain.TemporaryClientRegistrationAgg;
using Company.Domain.WorkHistory;
using Company.Domain.WorkingHoursAgg;
using Company.Domain.WorkingHoursItemsAgg;
using Company.Domain.WorkingHoursTempAgg;
using Company.Domain.WorkingHoursTempItemAgg;
using Company.Domain.WorkshopAccountAgg;
using Company.Domain.WorkshopAgg;
using Company.Domain.WorkshopPlanAgg;
using Company.Domain.WorkshopPlanEmployeeAgg;
using Company.Domain.WorkshopSubAccountAgg;
using Company.Domain.YearlySalaryAgg;
using Company.Domain.YearlySalaryItemsAgg;
using Company.Domain.YearlysSalaryTitleAgg;
using Company.Domain.ZoneAgg;
using CompanyManagement.Infrastructure.Excel.SalaryAid;
using CompanyManagement.Infrastructure.Mongo.EmployeeFaceEmbeddingRepo;
using CompanyManagement.Infrastructure.Mongo.InstitutionContractInsertTempRepo;
using CompanyManagment.App.Contracts.AdminMonthlyOverview;
using CompanyManagment.App.Contracts.AndroidApkVersion;
using CompanyManagment.App.Contracts.AuthorizedPerson;
using CompanyManagment.App.Contracts.Bank;
using CompanyManagment.App.Contracts.Board;
using CompanyManagment.App.Contracts.Chapter;
using CompanyManagment.App.Contracts.Checkout;
using CompanyManagment.App.Contracts.ClassifiedSalary;
using CompanyManagment.App.Contracts.Contact2;
using CompanyManagment.App.Contracts.ContactUs;
using CompanyManagment.App.Contracts.Contract;
using CompanyManagment.App.Contracts.ContractingPartyBankAccounts;
using CompanyManagment.App.Contracts.CrossJob;
using CompanyManagment.App.Contracts.CrossJobGuild;
using CompanyManagment.App.Contracts.CrossJobItems;
using CompanyManagment.App.Contracts.CustomizeCheckout;
using CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
using CompanyManagment.App.Contracts.DateSalary;
using CompanyManagment.App.Contracts.DateSalaryItem;
using CompanyManagment.App.Contracts.Employee;
using CompanyManagment.App.Contracts.EmployeeBankInformation;
using CompanyManagment.App.Contracts.EmployeeChildren;
using CompanyManagment.App.Contracts.EmployeeClientTemp;
using CompanyManagment.App.Contracts.EmployeeComputeOptions;
using CompanyManagment.App.Contracts.EmployeeDocuments;
using CompanyManagment.App.Contracts.EmployeeDocumentsAdminSelection;
using CompanyManagment.App.Contracts.EmployeeFaceEmbedding;
using CompanyManagment.App.Contracts.EmployeeInsurancListData;
using CompanyManagment.App.Contracts.Employer;
using CompanyManagment.App.Contracts.Evidence;
using CompanyManagment.App.Contracts.EvidenceDetail;
@@ -65,176 +161,82 @@ using CompanyManagment.App.Contracts.FileEmployer;
using CompanyManagment.App.Contracts.FileState;
using CompanyManagment.App.Contracts.FileTiming;
using CompanyManagment.App.Contracts.FileTitle;
using CompanyManagment.App.Contracts.FinancialInvoice;
using CompanyManagment.App.Contracts.FinancialStatment;
using CompanyManagment.App.Contracts.FinancilTransaction;
using CompanyManagment.App.Contracts.Fine;
using CompanyManagment.App.Contracts.FineSubject;
using CompanyManagment.App.Contracts.Holiday;
using CompanyManagment.App.Contracts.HolidayItem;
using CompanyManagment.App.Contracts.InstitutionContract;
using CompanyManagment.App.Contracts.InstitutionContractContactinfo;
using CompanyManagment.App.Contracts.InstitutionPlan;
using CompanyManagment.App.Contracts.Insurance;
using CompanyManagment.App.Contracts.InsuranceEmployeeInfo;
using CompanyManagment.App.Contracts.InsuranceJob;
using CompanyManagment.App.Contracts.InsuranceList;
using CompanyManagment.App.Contracts.InsuranceWorkshopInfo;
using CompanyManagment.App.Contracts.InsuranceYearlySalary;
using CompanyManagment.App.Contracts.Job;
using CompanyManagment.App.Contracts.Law;
using CompanyManagment.App.Contracts.Leave;
using CompanyManagment.App.Contracts.LeftWork;
using CompanyManagment.App.Contracts.LeftWorkInsurance;
using CompanyManagment.App.Contracts.LeftWorkTemp;
using CompanyManagment.App.Contracts.Loan;
using CompanyManagment.App.Contracts.MandantoryHours;
using CompanyManagment.App.Contracts.MasterPenaltyTitle;
using CompanyManagment.App.Contracts.MasterPetition;
using CompanyManagment.App.Contracts.MasterWorkHistory;
using CompanyManagment.App.Contracts.Module;
using CompanyManagment.App.Contracts.OriginalTitle;
using CompanyManagment.App.Contracts.PaymentInstrument;
using CompanyManagment.App.Contracts.PaymentToEmployee;
using CompanyManagment.App.Contracts.PaymentTransaction;
using CompanyManagment.App.Contracts.PenaltyTitle;
using CompanyManagment.App.Contracts.Percentage;
using CompanyManagment.App.Contracts.PersonalContractingParty;
using CompanyManagment.App.Contracts.PersonnleCode;
using CompanyManagment.App.Contracts.Petition;
using CompanyManagment.App.Contracts.ProceedingSession;
using CompanyManagment.App.Contracts.Report;
using CompanyManagment.App.Contracts.ReportClient;
using CompanyManagment.App.Contracts.Representative;
using CompanyManagment.App.Contracts.Reward;
using CompanyManagment.App.Contracts.RollCall;
using CompanyManagment.App.Contracts.RollCallEmployee;
using CompanyManagment.App.Contracts.RollCallEmployeeStatus;
using CompanyManagment.App.Contracts.RollCallPlan;
using CompanyManagment.App.Contracts.RollCallService;
using CompanyManagment.App.Contracts.SalaryAid;
using CompanyManagment.App.Contracts.SmsResult;
using CompanyManagment.App.Contracts.Subtitle;
using CompanyManagment.App.Contracts.TaxJobCategory;
using CompanyManagment.App.Contracts.TemporaryClientRegistration;
using CompanyManagment.App.Contracts.TextManager;
using CompanyManagment.App.Contracts.WorkHistory;
using CompanyManagment.App.Contracts.WorkingHours;
using CompanyManagment.App.Contracts.WorkingHoursItems;
using CompanyManagment.App.Contracts.WorkingHoursTemp;
using CompanyManagment.App.Contracts.WorkingHoursTempItem;
using CompanyManagment.App.Contracts.Workshop;
using CompanyManagment.App.Contracts.WorkshopPlan;
using CompanyManagment.App.Contracts.YearlySalary;
using CompanyManagment.App.Contracts.YearlySalaryItems;
using CompanyManagment.App.Contracts.YearlySalaryTitles;
using CompanyManagment.App.Contracts.Zone;
using CompanyManagment.Application;
using CompanyManagment.EFCore;
using CompanyManagment.EFCore._common;
using CompanyManagment.EFCore.Repository;
using CompanyManagment.EFCore.Repository;
using File.EfCore.Repository;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using P_TextManager.Domin.TextManagerAgg;
using CompanyManagment.App.Contracts.CrossJobItems;
using Company.Domain.CrossJobItemsAgg;
using Company.Domain.DateSalaryAgg;
using Company.Domain.DateSalaryItemAgg;
using Company.Domain.FinancialStatmentAgg;
using Company.Domain.FinancialTransactionAgg;
using Company.Domain.GroupPlanAgg;
using Company.Domain.GroupPlanJobItemAgg;
using Company.Domain.InstitutionContractAgg;
using Company.Domain.InstitutionContractContactInfoAgg;
using CompanyManagment.App.Contracts.Insurance;
using Company.Domain.InsuranceAgg;
using Company.Domain.InsuranceEmployeeInfoAgg;
using Company.Domain.InsuranceJobItemAgg;
using Company.Domain.InsuranceListAgg;
using Company.Domain.InsurancJobAgg;
using Company.Domain.InsurancWorkshopInfoAgg;
using Company.Domain.LeftWorkInsuranceAgg;
using Company.Domain.PaymentToEmployeeAgg;
using Company.Domain.PaymentToEmployeeItemAgg;
using Company.Domain.PercentageAgg;
using Company.Domain.PersonnelCodeAgg;
using Company.Domain.SmsResultAgg;
using Company.Domain.WorkingHoursTempAgg;
using Company.Domain.WorkingHoursTempItemAgg;
using Company.Domain.WorkshopPlanAgg;
using Company.Domain.WorkshopPlanEmployeeAgg;
using Company.Domain.ZoneAgg;
using CompanyManagment.App.Contracts.ClassifiedSalary;
using CompanyManagment.App.Contracts.DateSalary;
using CompanyManagment.App.Contracts.DateSalaryItem;
using CompanyManagment.App.Contracts.EmployeeInsurancListData;
using CompanyManagment.App.Contracts.FinancialStatment;
using CompanyManagment.App.Contracts.FinancilTransaction;
using CompanyManagment.App.Contracts.InstitutionContract;
using CompanyManagment.App.Contracts.InstitutionContractContactinfo;
using CompanyManagment.App.Contracts.InsuranceEmployeeInfo;
using CompanyManagment.App.Contracts.InsuranceJob;
using CompanyManagment.App.Contracts.InsuranceList;
using CompanyManagment.App.Contracts.InsuranceWorkshopInfo;
using CompanyManagment.App.Contracts.LeftWorkInsurance;
using CompanyManagment.App.Contracts.PaymentToEmployee;
using CompanyManagment.App.Contracts.Percentage;
using CompanyManagment.App.Contracts.PersonnleCode;
using CompanyManagment.App.Contracts.SmsResult;
using CompanyManagment.App.Contracts.WorkingHoursTemp;
using CompanyManagment.App.Contracts.WorkingHoursTempItem;
using CompanyManagment.App.Contracts.WorkshopPlan;
using CompanyManagment.App.Contracts.Zone;
using CompanyManagment.App.Contracts.EmployeeComputeOptions;
using Company.Domain.EmployeeComputeOptionsAgg;
using Company.Domain.InsuranceYearlySalaryAgg;
using Company.Domain.ReportAgg;
using Company.Domain.RollCallAgg;
using Company.Domain.RollCallEmployeeAgg;
using Company.Domain.RollCallPlanAgg;
using Company.Domain.RollCallServiceAgg;
using CompanyManagment.App.Contracts.InsuranceYearlySalary;
using CompanyManagment.App.Contracts.Report;
using CompanyManagment.App.Contracts.RollCall;
using CompanyManagment.App.Contracts.RollCallEmployee;
using CompanyManagment.App.Contracts.RollCallService;
using CompanyManagment.App.Contracts.RollCallPlan;
using Company.Domain.ReportClientAgg;
using Company.Domain.TaxJobCategoryAgg;
using Company.Domain.WorkshopAccountAgg;
using CompanyManagment.App.Contracts.ReportClient;
using CompanyManagment.App.Contracts.TaxJobCategory;
using Company.Domain.RollCallEmployeeStatusAgg;
using CompanyManagment.App.Contracts.RollCallEmployeeStatus;
using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg;
using Company.Domain.CustomizeWorkshopGroupSettingsAgg;
using Company.Domain.CustomizeWorkshopSettingsAgg;
using Company.Domain.FineAgg;
using Company.Domain.LoanAgg;
using Company.Domain.RewardAgg;
using Company.Domain.SalaryAidAgg;
using CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
using CompanyManagment.App.Contracts.Fine;
using CompanyManagment.App.Contracts.Loan;
using CompanyManagment.App.Contracts.Reward;
using CompanyManagment.App.Contracts.SalaryAid;
using Company.Domain.AndroidApkVersionAgg;
using Company.Domain.BankAgg;
using CompanyManagment.App.Contracts.AndroidApkVersion;
using Company.Domain.FineSubjectAgg;
using CompanyManagment.App.Contracts.FineSubject;
using Company.Domain.CustomizeCheckoutAgg;
using CompanyManagment.App.Contracts.CustomizeCheckout;
using Company.Domain.WorkshopSubAccountAgg;
using Company.Domain.CustomizeCheckoutTempAgg;
using Company.Domain.EmployeeBankInformationAgg;
using Company.Domain.RollCallAgg.DomainService;
using CompanyManagment.App.Contracts.Bank;
using CompanyManagment.App.Contracts.EmployeeBankInformation;
using Company.Domain.EmployeeDocumentItemAgg;
using Company.Domain.EmployeeDocumentsAdminSelectionAgg;
using Company.Domain.EmployeeDocumentsAgg;
using CompanyManagement.Infrastructure.Excel.SalaryAid;
using CompanyManagment.App.Contracts.EmployeeDocuments;
using CompanyManagment.App.Contracts.EmployeeDocumentsAdminSelection;
using Company.Domain.EmployeeClientTempAgg;
using Company.Domain.InstitutionPlanAgg;
using Company.Domain.LeftWorkTempAgg;
using Company.Domain.TemporaryClientRegistrationAgg;
using CompanyManagment.App.Contracts.EmployeeClientTemp;
using CompanyManagment.App.Contracts.InstitutionPlan;
using CompanyManagment.App.Contracts.LeftWorkTemp;
using CompanyManagment.App.Contracts.TemporaryClientRegistration;
using Company.Domain.ContactUsAgg;
using CompanyManagment.App.Contracts.ContactUs;
using Company.Domain.EmployeeAuthorizeTempAgg;
using Company.Domain.AdminMonthlyOverviewAgg;
using Company.Domain.AuthorizedBankDetailsAgg;
using Company.Domain.ContractingPartyBankAccountsAgg;
using Company.Domain.PaymentInstrumentAgg;
using Company.Domain.PaymentTransactionAgg;
using Company.Domain.FinancialInvoiceAgg;
using CompanyManagment.App.Contracts.AdminMonthlyOverview;
using CompanyManagment.App.Contracts.ContractingPartyBankAccounts;
using CompanyManagment.App.Contracts.PaymentInstrument;
using CompanyManagment.App.Contracts.PaymentTransaction;
using CompanyManagment.App.Contracts.AuthorizedPerson;
using Company.Domain.AuthorizedPersonAgg;
using Company.Domain.EmployeeFaceEmbeddingAgg;
using Company.Domain.InstitutionContractExtensionTempAgg;
using Company.Domain.LawAgg;
using CompanyManagement.Infrastructure.Mongo.EmployeeFaceEmbeddingRepo;
using CompanyManagement.Infrastructure.Mongo.InstitutionContractInsertTempRepo;
using CompanyManagment.App.Contracts.EmployeeFaceEmbedding;
using CompanyManagment.App.Contracts.Law;
using CompanyManagment.EFCore.Repository;
using CompanyManagment.App.Contracts.FinancialInvoice;
using _0_Framework.Application.FaceEmbedding;
using _0_Framework.Infrastructure;
using _0_Framework.InfraStructure;
using Company.Domain._common;
using CompanyManagment.EFCore._common;
using Shared.Contracts.Holidays;
using System;
using CompanyManagment.EFCore.Services;
namespace PersonalContractingParty.Config;
@@ -242,6 +244,12 @@ public class PersonalBootstrapper
{
public static void Configure(IServiceCollection services, string connectionString)
{
#region Services
services.AddTransient<IHolidayQueryService, HolidayQueryService>();
#endregion
//----Task-Manager-Project---------------------------------
//services.AddTransient<ITaskApplication, TaskApplication>();

View File

@@ -1,29 +1,31 @@
using FluentValidation;
using GozareshgirProgramManager.Application._Common.Behaviors;
using GozareshgirProgramManager.Application._Common.Interfaces;
using GozareshgirProgramManager.Domain._Common;
using GozareshgirProgramManager.Domain.CheckoutAgg.Repositories;
using GozareshgirProgramManager.Domain.CustomerAgg.Repositories;
using GozareshgirProgramManager.Domain.ProjectAgg.Repositories;
using GozareshgirProgramManager.Domain.RoleAgg.Repositories;
using GozareshgirProgramManager.Domain.RoleAgg.Repositories;
using GozareshgirProgramManager.Domain.SalaryPaymentSettingAgg.Repositories;
using GozareshgirProgramManager.Domain.SalaryPaymentSettingAgg.Repositories;
using GozareshgirProgramManager.Domain.SkillAgg.Repositories;
using GozareshgirProgramManager.Domain.SkillAgg.Repositories;
using GozareshgirProgramManager.Domain.UserAgg.Repositories;
using GozareshgirProgramManager.Infrastructure.Persistence;
using GozareshgirProgramManager.Infrastructure.Persistence.Context;
using GozareshgirProgramManager.Infrastructure.Persistence.Repositories;
using GozareshgirProgramManager.Infrastructure.Services.Authentication;
using GozareshgirProgramManager.Infrastructure.Services.Role;
using MediatR;
using FluentValidation;
using GozareshgirProgramManager.Domain.CheckoutAgg.Repositories;
using GozareshgirProgramManager.Domain.RoleAgg.Repositories;
using GozareshgirProgramManager.Domain.SalaryPaymentSettingAgg.Repositories;
using GozareshgirProgramManager.Domain.SkillAgg.Repositories;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Shared.Contracts.PmRole.Commands;
using Shared.Contracts.PmRole.Queries;
namespace GozareshgirProgramManager.Infrastructure;
@@ -86,6 +88,14 @@ public static class DependencyInjection
#region ServicesInjection
services.AddTransient<IPmRoleQueryService, PmRoleQueryService>();
services.AddTransient<IPmRoleCommandService, PmRoleCommandService>();
#endregion
// MediatR Validation Behavior
services.AddTransient(typeof(IPipelineBehavior<,>), typeof(ValidationBehavior<,>));

View File

@@ -0,0 +1,28 @@
using GozareshgirProgramManager.Application._Common.Models;
using GozareshgirProgramManager.Application.Modules.Roles.Commands.CreateRole;
using MediatR;
using Shared.Contracts.PmRole.Commands;
namespace GozareshgirProgramManager.Infrastructure.Services.Role;
public class PmRoleCommandService: IPmRoleCommandService
{
private readonly IMediator _mediator;
public PmRoleCommandService(IMediator mediator)
{
_mediator = mediator;
}
public async Task<(bool, string)> Create(CreatePmRoleDto command)
{
var request = new CreateRoleCommand
{
RoleName = command.RoleName, Permissions = command.Permissions, GozareshgirRoleId = command.GozareshgirRoleId
};
var res = await _mediator.Send(request);
return (res.IsSuccess, res.ErrorMessage);
}
}

View File

@@ -0,0 +1,34 @@
using GozareshgirProgramManager.Infrastructure.Persistence.Context;
using Microsoft.EntityFrameworkCore;
using Shared.Contracts.PmRole.Queries;
namespace GozareshgirProgramManager.Infrastructure.Services.Role;
public class PmRoleQueryService : IPmRoleQueryService
{
private readonly ProgramManagerDbContext _programManagerDbContext;
public PmRoleQueryService(ProgramManagerDbContext programManagerDbContext)
{
_programManagerDbContext = programManagerDbContext;
}
public async Task<List<GetPmRolesDto>> GetPmRoleList(long? gozareshgirRoleId)
{
var query = _programManagerDbContext.Roles.AsQueryable();
if (gozareshgirRoleId != null && gozareshgirRoleId > 0)
query = query.Where(x => x.GozareshgirRoleId == gozareshgirRoleId);
var res = await query
.Select(p => new GetPmRolesDto()
{
Id = p.Id,
RoleName = p.RoleName,
GozareshgirRoleId = p.GozareshgirRoleId,
Permissions = p.Permissions.Select(x => x.Code).ToList()
})
.ToListAsync();
return res;
}
}

View File

@@ -142,7 +142,7 @@
</div>
<div class="col-md-6">
@* <div class="form-group">
<div class="form-group">
<label asp-for="UserRoles" > نقش در پروگرام منیجر </label>
<select disabled="disabled" class="form-control select-city" multiple="multiple" asp-for="UserRoles" asp-items="Model.RoleList">
<option value="0"></option>
@@ -150,7 +150,7 @@
<span asp-validation-for="UserRoles" class="error"></span>
</div> *@
</div>
</div>
</div>
</div>

View File

@@ -1309,35 +1309,30 @@
function saveRole() {
const checks = document.querySelectorAll("input.check-btn");
//let pmIndex = 0;
let pmIndex = 0;
let normalIndex = 0;
$("#hiddenInput").empty(); // مهم!! قبل از اضافه‌کردن، خالی کن
checks.forEach(chk => {
const isPm = chk.hasAttribute("data-pm");
if (isPm) {
$("#hiddenInput").append(`
<input class="item1" type="hidden"
name="PmPermissions[${pmIndex}]"
value="${chk.checked ? chk.value : 0}">
`);
pmIndex++;
} else {
$("#hiddenInput").append(`
<input class="item1" type="hidden"
name="Permissions[${normalIndex}]"
value="${chk.checked ? chk.value : 0}">
`);
normalIndex++;
// const isPm = chk.hasAttribute("data-pm");
// if (isPm) {
// $("#hiddenInput").append(`
// <input class="item1" type="hidden"
// name="PmPermissions[${pmIndex}]"
// value="${chk.checked ? chk.value : 0}">
// `);
// pmIndex++;
// } else {
// $("#hiddenInput").append(`
// <input class="item1" type="hidden"
// name="Permissions[${normalIndex}]"
// value="${chk.checked ? chk.value : 0}">
// `);
// normalIndex++;
// }
}
});

View File

@@ -146,7 +146,7 @@
</div>
<div class="col-md-6">
@* <div class="form-group">
<div class="form-group">
<label asp-for="UserRoles"> نقش در پروگرام منیجر </label>
@if (Model.IsProgramManagerUser)
@@ -165,7 +165,7 @@
<span asp-validation-for="UserRoles" class="error"></span>
</div> *@
</div>
</div>
</div>
</div>

View File

@@ -1363,35 +1363,30 @@
function saveRole() {
const checks = document.querySelectorAll("input.check-btn");
//let pmIndex = 0;
let pmIndex = 0;
let normalIndex = 0;
$("#hiddenInput").empty(); // مهم!! قبل از اضافه‌کردن، خالی کن
checks.forEach(chk => {
$("#hiddenInput").append(`
const isPm = chk.hasAttribute("data-pm");
if (isPm) {
$("#hiddenInput").append(`
<input class="item1" type="hidden"
name="PmPermissions[${pmIndex}]"
value="${chk.checked ? chk.value : 0}">
`);
pmIndex++;
} else {
$("#hiddenInput").append(`
<input class="item1" type="hidden"
name="Permissions[${normalIndex}]"
value="${chk.checked ? chk.value : 0}">
`);
normalIndex++;
// const isPm = chk.hasAttribute("data-pm");
// if (isPm) {
// $("#hiddenInput").append(`
// <input class="item1" type="hidden"
// name="PmPermissions[${pmIndex}]"
// value="${chk.checked ? chk.value : 0}">
// `);
// pmIndex++;
// } else {
// $("#hiddenInput").append(`
// <input class="item1" type="hidden"
// name="Permissions[${normalIndex}]"
// value="${chk.checked ? chk.value : 0}">
// `);
// normalIndex++;
// }
}
});

View File

@@ -1,4 +1,6 @@
@page
@using CompanyManagment.App.Contracts.PersonalContractingParty
@using Microsoft.EntityFrameworkCore
@using _0_Framework.Application
@model ServiceHost.Areas.Admin.Pages.Accounts.Account.IndexModel
@inject IAuthHelper _AuthHelper;

View File

@@ -121,22 +121,22 @@ public class IndexModel : PageModel
//);
//var result = _accountApplication.GetPmUserByAccountId(account.Id).GetAwaiter().GetResult();
var result = _accountApplication.GetPmUserByAccountId(account.Id).GetAwaiter().GetResult();
//// مثل قبل:
//if (result != null)
//{
// account.IsProgramManagerUser = (result.AccountId== account.Id && result.IsActive);
// account.UserRoles = result.Roles;
//}
//else
//{
// account.IsProgramManagerUser = false;
//}
// مثل قبل:
if (result != null)
{
account.IsProgramManagerUser = (result.AccountId== account.Id && result.IsActive);
account.UserRoles = result.Roles;
}
else
{
account.IsProgramManagerUser = false;
}
//var pmRolseSelectList = _roleApplication.GetPmRoleList(null).GetAwaiter().GetResult();
//account.RoleList = pmRolseSelectList;
var pmRolseSelectList = _roleApplication.GetPmRoleList(null).GetAwaiter().GetResult();
account.RoleList = pmRolseSelectList;
//var response = InternalApiCaller.GetAsync<RoleResponse>(
// "api/role",

View File

@@ -0,0 +1,9 @@
namespace Shared.Contracts.PmRole.Commands;
public record CreatePmRoleDto
{
public string RoleName { get; set; }
public List<int> Permissions { get; set; }
public long? GozareshgirRoleId { get; set; }
};

View File

@@ -0,0 +1,6 @@
namespace Shared.Contracts.PmRole.Commands;
public interface IPmRoleCommandService
{
Task<(bool, string)> Create(CreatePmRoleDto command);
}

View File

@@ -0,0 +1,24 @@
namespace Shared.Contracts.PmRole.Queries;
public record GetPmRolesDto
{
/// <summary>
/// آی دی نقش
/// </summary>
public long Id { get; set; }
/// <summary>
/// نام نقش
/// </summary>
public string RoleName { get; set; }
/// <summary>
/// آی دی نقش در گزارشگیر
/// </summary>
public long? GozareshgirRoleId { get; set; }
/// <summary>
/// لیست کدهای دسترسی
/// </summary>
public List<int> Permissions { get; set; }
};

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shared.Contracts.PmRole.Queries;
public interface IPmRoleQueryService
{
Task<List<GetPmRolesDto>> GetPmRoleList(long? gozareshgirRoleId);
}