diff --git a/AccountManagement.Application.Contracts/AccountManagement.Application.Contracts.csproj b/AccountManagement.Application.Contracts/AccountManagement.Application.Contracts.csproj index b73ec3c5..57db0cd1 100644 --- a/AccountManagement.Application.Contracts/AccountManagement.Application.Contracts.csproj +++ b/AccountManagement.Application.Contracts/AccountManagement.Application.Contracts.csproj @@ -14,6 +14,7 @@ + diff --git a/AccountManagement.Application.Contracts/Role/IRoleApplication.cs b/AccountManagement.Application.Contracts/Role/IRoleApplication.cs index 9d49f8e2..68f3ab52 100644 --- a/AccountManagement.Application.Contracts/Role/IRoleApplication.cs +++ b/AccountManagement.Application.Contracts/Role/IRoleApplication.cs @@ -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 { diff --git a/AccountManagement.Application/AccountApplication.cs b/AccountManagement.Application/AccountApplication.cs index c36cea6a..bba09128 100644 --- a/AccountManagement.Application/AccountApplication.cs +++ b/AccountManagement.Application/AccountApplication.cs @@ -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( - // // url, - // // key, - // // parameters - // //); + //var response = InternalApiCaller.PostAsync( + // 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( // $"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( - // // 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( + // 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( - // // url, - // // key, - // // parameters - // //); + //var response = InternalApiCaller.PostAsync( + // 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(); diff --git a/AccountManagement.Application/AccountManagement.Application.csproj b/AccountManagement.Application/AccountManagement.Application.csproj index 270c0e13..15c192f3 100644 --- a/AccountManagement.Application/AccountManagement.Application.csproj +++ b/AccountManagement.Application/AccountManagement.Application.csproj @@ -8,6 +8,7 @@ + diff --git a/AccountManagement.Application/RoleApplication.cs b/AccountManagement.Application/RoleApplication.cs index 6ea605d4..80a1af83 100644 --- a/AccountManagement.Application/RoleApplication.cs +++ b/AccountManagement.Application/RoleApplication.cs @@ -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 Create(CreateRole command) @@ -47,19 +53,15 @@ 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 //{ @@ -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 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> GetPmRoleListToEdit(long? gozareshgirRoleId) { - return await _pmRoleRepository.GetPmRoleList(gozareshgirRoleId); + return await _pmRoleQueryService.GetPmRoleList(gozareshgirRoleId); } diff --git a/AccountManagement.Domain/AccountAgg/Account.cs b/AccountManagement.Domain/AccountAgg/Account.cs index 2b797142..253297ba 100644 --- a/AccountManagement.Domain/AccountAgg/Account.cs +++ b/AccountManagement.Domain/AccountAgg/Account.cs @@ -25,11 +25,6 @@ namespace AccountManagement.Domain.AccountAgg public string VerifyCode { get; set; } public string IsActiveString { get; private set; } - /// - /// آیا کاربر در پروگرام منیجر فعالیت می کند - /// - 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 CameraAccounts { get; private set; } public List 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; } diff --git a/AccountMangement.Infrastructure.EFCore/AccountMangement.Infrastructure.EFCore.csproj b/AccountMangement.Infrastructure.EFCore/AccountMangement.Infrastructure.EFCore.csproj index 9d4d7e2c..7949f7dc 100644 --- a/AccountMangement.Infrastructure.EFCore/AccountMangement.Infrastructure.EFCore.csproj +++ b/AccountMangement.Infrastructure.EFCore/AccountMangement.Infrastructure.EFCore.csproj @@ -20,4 +20,8 @@ + + + + diff --git a/AccountMangement.Infrastructure.EFCore/Migrations/20251213143102_romoveIsProgramManagerUserFromAccount.Designer.cs b/AccountMangement.Infrastructure.EFCore/Migrations/20251213143102_romoveIsProgramManagerUserFromAccount.Designer.cs new file mode 100644 index 00000000..52bca3e8 --- /dev/null +++ b/AccountMangement.Infrastructure.EFCore/Migrations/20251213143102_romoveIsProgramManagerUserFromAccount.Designer.cs @@ -0,0 +1,1449 @@ +// +using System; +using AccountMangement.Infrastructure.EFCore; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace AccountMangement.Infrastructure.EFCore.Migrations +{ + [DbContext(typeof(AccountContext))] + [Migration("20251213143102_romoveIsProgramManagerUserFromAccount")] + partial class romoveIsProgramManagerUserFromAccount + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.1") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("AccountManagement.Domain.AccountAgg.Account", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AdminAreaPermission") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ClientAriaPermission") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Email") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("Fullname") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("IsActiveString") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("Mobile") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PositionId") + .HasMaxLength(10) + .HasColumnType("bigint"); + + b.Property("PositionIsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("ProfilePhoto") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.Property("RoleName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Username") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("VerifyCode") + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.HasKey("id"); + + b.HasIndex("PositionId"); + + b.HasIndex("RoleId"); + + b.ToTable("Accounts", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.AccountLeftWorkAgg.AccountLeftWork", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("LeftWorkGr") + .HasColumnType("datetime2"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.Property("StartWorkGr") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("AccountId"); + + b.ToTable("AccountLeftWork", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.AdminResponseAgg.AdminResponse", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AdminAccountId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Response") + .HasColumnType("ntext"); + + b.Property("TicketId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("TicketId"); + + b.ToTable("AdminResponses", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.AdminResponseMediaAgg.AdminResponseMedia", b => + { + b.Property("AdminResponseId") + .HasColumnType("bigint"); + + b.Property("MediaId") + .HasColumnType("bigint"); + + b.HasKey("AdminResponseId", "MediaId"); + + b.HasIndex("MediaId"); + + b.ToTable("AdminResponseMedias", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.AssignAgg.Assign", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AcceptedTimeRequest") + .HasColumnType("int"); + + b.Property("AssignedId") + .HasColumnType("bigint"); + + b.Property("AssignedName") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("AssignedPositionValue") + .HasColumnType("int"); + + b.Property("AssignerId") + .HasColumnType("bigint"); + + b.Property("AssignerPositionValue") + .HasColumnType("int"); + + b.Property("CancelDescription") + .HasColumnType("ntext"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DoneDescription") + .HasColumnType("ntext"); + + b.Property("EndTaskDate") + .HasColumnType("datetime2"); + + b.Property("FirstTimeCreation") + .HasColumnType("bit"); + + b.Property("IsCancel") + .HasColumnType("bit"); + + b.Property("IsCanceledRequest") + .HasColumnType("bit"); + + b.Property("IsDone") + .HasColumnType("bit"); + + b.Property("IsDoneRequest") + .HasColumnType("bit"); + + b.Property("RequestDate") + .HasColumnType("datetime2"); + + b.Property("TaskId") + .HasColumnType("bigint"); + + b.Property("TimeRequest") + .HasColumnType("bit"); + + b.Property("TimeRequestDescription") + .HasColumnType("ntext"); + + b.HasKey("id"); + + b.HasIndex("TaskId"); + + b.ToTable("Assigns", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.CameraAccountAgg.CameraAccount", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveSting") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Mobile") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Username") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("AccountId"); + + b.ToTable("CameraAccounts", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.ClientResponseAgg.ClientResponse", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Response") + .HasColumnType("ntext"); + + b.Property("TicketId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("TicketId"); + + b.ToTable("ClientResponses", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.ClientResponseMediaAgg.ClientResponseMedia", b => + { + b.Property("ClientResponseId") + .HasColumnType("bigint"); + + b.Property("MediaId") + .HasColumnType("bigint"); + + b.HasKey("ClientResponseId", "MediaId"); + + b.HasIndex("MediaId"); + + b.ToTable("ClientResponseMedias", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.MediaAgg.Media", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Category") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Path") + .HasColumnType("ntext"); + + b.Property("ServiceName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Type") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.ToTable("Medias", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.PmDomains.PmRoleAgg.PmRole", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("GozareshgirRoleId") + .HasColumnType("bigint"); + + b.Property("RoleName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.ToTable("PmRoles", null, t => + { + t.ExcludeFromMigrations(); + }); + }); + + modelBuilder.Entity("AccountManagement.Domain.PmDomains.PmUserAgg.PmUser", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Email") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("FullName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("Mobile") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ProfilePhotoPath") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("VerifyCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.ToTable("Users", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.PositionAgg.Position", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("PositionName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("PositionValue") + .HasMaxLength(2) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("Positions", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.RoleAgg.Role", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.ToTable("Roles", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.SubAccountAgg.SubAccount", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhoneNumber") + .IsRequired() + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property("ProfilePhoto") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("SubAccountRoleId") + .HasColumnType("bigint"); + + b.Property("Username") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("VerifyCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("SubAccountRoleId"); + + b.ToTable("SubAccounts", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.SubAccountPermissionSubtitle1Agg.SubAccountPermissionSubtitle1", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Code") + .HasMaxLength(15) + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("SubAccountPermissionSubtitle1", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.SubAccountPermissionSubtitle2Agg.SubAccountPermissionSubtitle2", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Code") + .HasMaxLength(15) + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ParentId") + .HasColumnType("bigint"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("ParentId"); + + b.ToTable("SubAccountPermissionSubtitle2", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.SubAccountPermissionSubtitle3Agg.SubAccountPermissionSubtitle3", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Code") + .HasMaxLength(15) + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ParentId") + .HasColumnType("bigint"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("ParentId"); + + b.ToTable("SubAccountPermissionSubtitle3", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.SubAccountPermissionSubtitle4Agg.SubAccountPermissionSubtitle4", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Code") + .HasMaxLength(15) + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ParentId") + .HasColumnType("bigint"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("ParentId"); + + b.ToTable("SubAccountPermissionSubtitle4", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.SubAccountRoleAgg.SubAccountRole", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.ToTable("SubAccountRoles", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.TaskAgg.Tasks", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyName") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("ntext"); + + b.Property("IsActiveString") + .HasMaxLength(7) + .HasColumnType("nvarchar(7)"); + + b.Property("SenderId") + .HasColumnType("bigint"); + + b.Property("StartTaskDate") + .HasColumnType("datetime2"); + + b.Property("TaskScheduleId") + .HasColumnType("bigint"); + + b.Property("TicketId") + .HasColumnType("bigint"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("TaskScheduleId"); + + b.ToTable("TasksManager", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.TaskMediaAgg.TaskMedia", b => + { + b.Property("MediaId") + .HasColumnType("bigint"); + + b.Property("TaskId") + .HasColumnType("bigint"); + + b.HasKey("MediaId", "TaskId"); + + b.HasIndex("TaskId"); + + b.ToTable("TasksMedias", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.TaskMessageAgg.TaskMessage", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AssignId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Message") + .HasColumnType("ntext"); + + b.Property("RequestedDateFa") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TypeOfMessage") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.HasKey("id"); + + b.HasIndex("AssignId"); + + b.ToTable("TaskMessages", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.TaskMessageItemsAgg.TaskMessageItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ReceiverAccountId") + .HasColumnType("bigint"); + + b.Property("SenderAccountId") + .HasColumnType("bigint"); + + b.Property("TaskMessageId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("TaskMessageId"); + + b.ToTable("TaskMessageItems", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.TaskScheduleAgg.TaskSchedule", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Count") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LastEndTaskDate") + .HasColumnType("datetime2"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("UnitNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("UnitType") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.ToTable("TaskSchedules", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.TaskSubjectAgg.TaskSubject", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Subject") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.ToTable("TaskSubjects", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.TicketAccessAccountAgg.TicketAccessAccount", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.ToTable("TicketAccessAccounts", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.TicketAgg.Ticket", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyName") + .HasMaxLength(155) + .HasColumnType("nvarchar(155)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("ntext"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SenderId") + .HasColumnType("bigint"); + + b.Property("Status") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("SubAccountSenderId") + .HasColumnType("bigint"); + + b.Property("TicketNumber") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("TicketType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Title") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Tickets", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.TicketMediasAgg.TicketMedia", b => + { + b.Property("TicketId") + .HasColumnType("bigint"); + + b.Property("MediaId") + .HasColumnType("bigint"); + + b.HasKey("TicketId", "MediaId"); + + b.HasIndex("MediaId"); + + b.ToTable("TicketMedias", (string)null); + }); + + modelBuilder.Entity("AccountManagement.Domain.AccountAgg.Account", b => + { + b.HasOne("AccountManagement.Domain.PositionAgg.Position", "Position") + .WithMany("Accounts") + .HasForeignKey("PositionId"); + + b.HasOne("AccountManagement.Domain.RoleAgg.Role", "Role") + .WithMany("Accounts") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Position"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("AccountManagement.Domain.AccountLeftWorkAgg.AccountLeftWork", b => + { + b.HasOne("AccountManagement.Domain.AccountAgg.Account", "Account") + .WithMany("AccountLeftWorkList") + .HasForeignKey("AccountId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Account"); + }); + + modelBuilder.Entity("AccountManagement.Domain.AdminResponseAgg.AdminResponse", b => + { + b.HasOne("AccountManagement.Domain.TicketAgg.Ticket", "Ticket") + .WithMany("AdminResponses") + .HasForeignKey("TicketId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Ticket"); + }); + + modelBuilder.Entity("AccountManagement.Domain.AdminResponseMediaAgg.AdminResponseMedia", b => + { + b.HasOne("AccountManagement.Domain.AdminResponseAgg.AdminResponse", "AdminResponse") + .WithMany("AdminResponseMedias") + .HasForeignKey("AdminResponseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AccountManagement.Domain.MediaAgg.Media", "Media") + .WithMany("AdminResponseMedias") + .HasForeignKey("MediaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AdminResponse"); + + b.Navigation("Media"); + }); + + modelBuilder.Entity("AccountManagement.Domain.AssignAgg.Assign", b => + { + b.HasOne("AccountManagement.Domain.TaskAgg.Tasks", "Task") + .WithMany("Assigns") + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade); + + b.Navigation("Task"); + }); + + modelBuilder.Entity("AccountManagement.Domain.CameraAccountAgg.CameraAccount", b => + { + b.HasOne("AccountManagement.Domain.AccountAgg.Account", "Account") + .WithMany("CameraAccounts") + .HasForeignKey("AccountId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Account"); + }); + + modelBuilder.Entity("AccountManagement.Domain.ClientResponseAgg.ClientResponse", b => + { + b.HasOne("AccountManagement.Domain.TicketAgg.Ticket", "Ticket") + .WithMany("ClientResponses") + .HasForeignKey("TicketId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Ticket"); + }); + + modelBuilder.Entity("AccountManagement.Domain.ClientResponseMediaAgg.ClientResponseMedia", b => + { + b.HasOne("AccountManagement.Domain.ClientResponseAgg.ClientResponse", "ClientResponse") + .WithMany("ClientResponseMedias") + .HasForeignKey("ClientResponseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AccountManagement.Domain.MediaAgg.Media", "Media") + .WithMany("ClientResponseMedias") + .HasForeignKey("MediaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClientResponse"); + + b.Navigation("Media"); + }); + + modelBuilder.Entity("AccountManagement.Domain.PmDomains.PmRoleAgg.PmRole", b => + { + b.OwnsMany("AccountManagement.Domain.PmDomains.PmPermissionAgg.PmPermission", "PmPermission", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Code") + .HasColumnType("int"); + + b1.Property("Roleid") + .HasColumnType("bigint"); + + b1.HasKey("Id"); + + b1.HasIndex("Roleid"); + + b1.ToTable("PmRolePermissions", null, t => + { + t.ExcludeFromMigrations(); + }); + + b1.WithOwner("Role") + .HasForeignKey("Roleid"); + + b1.Navigation("Role"); + }); + + b.Navigation("PmPermission"); + }); + + modelBuilder.Entity("AccountManagement.Domain.PmDomains.PmUserAgg.PmUser", b => + { + b.OwnsMany("AccountManagement.Domain.PmDomains.PmRoleUserAgg.PmRoleUser", "RoleUser", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("RoleId") + .HasColumnType("bigint"); + + b1.Property("Userid") + .HasColumnType("bigint"); + + b1.HasKey("Id"); + + b1.HasIndex("Userid"); + + b1.ToTable("RoleUsers", (string)null); + + b1.WithOwner("User") + .HasForeignKey("Userid"); + + b1.Navigation("User"); + }); + + b.Navigation("RoleUser"); + }); + + modelBuilder.Entity("AccountManagement.Domain.RoleAgg.Role", b => + { + b.OwnsMany("AccountManagement.Domain.RoleAgg.Permission", "Permissions", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Code") + .HasColumnType("int"); + + b1.Property("RoleId") + .HasColumnType("bigint"); + + b1.HasKey("Id"); + + b1.HasIndex("RoleId"); + + b1.ToTable("RolePermissions", (string)null); + + b1.WithOwner("Role") + .HasForeignKey("RoleId"); + + b1.Navigation("Role"); + }); + + b.Navigation("Permissions"); + }); + + modelBuilder.Entity("AccountManagement.Domain.SubAccountAgg.SubAccount", b => + { + b.HasOne("AccountManagement.Domain.SubAccountRoleAgg.SubAccountRole", "SubAccountRole") + .WithMany("SubAccounts") + .HasForeignKey("SubAccountRoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SubAccountRole"); + }); + + modelBuilder.Entity("AccountManagement.Domain.SubAccountPermissionSubtitle2Agg.SubAccountPermissionSubtitle2", b => + { + b.HasOne("AccountManagement.Domain.SubAccountPermissionSubtitle1Agg.SubAccountPermissionSubtitle1", "Parent") + .WithMany("Children") + .HasForeignKey("ParentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("AccountManagement.Domain.SubAccountPermissionSubtitle3Agg.SubAccountPermissionSubtitle3", b => + { + b.HasOne("AccountManagement.Domain.SubAccountPermissionSubtitle2Agg.SubAccountPermissionSubtitle2", "Parent") + .WithMany("Children") + .HasForeignKey("ParentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("AccountManagement.Domain.SubAccountPermissionSubtitle4Agg.SubAccountPermissionSubtitle4", b => + { + b.HasOne("AccountManagement.Domain.SubAccountPermissionSubtitle3Agg.SubAccountPermissionSubtitle3", "Parent") + .WithMany("Children") + .HasForeignKey("ParentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("AccountManagement.Domain.SubAccountRoleAgg.SubAccountRole", b => + { + b.OwnsMany("AccountManagement.Domain.SubAccountRoleAgg.SubAccountRoleWorkshop", "RoleWorkshops", b1 => + { + b1.Property("SubAccountId") + .HasColumnType("bigint"); + + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("WorkshopId") + .HasColumnType("bigint"); + + b1.HasKey("SubAccountId", "id"); + + b1.ToTable("SubAccountRoleWorkshop"); + + b1.WithOwner("SubAccountRole") + .HasForeignKey("SubAccountId"); + + b1.Navigation("SubAccountRole"); + }); + + b.OwnsMany("AccountManagement.Domain.SubAccountRoleAgg.SubAccountRolePermission", "RolePermissions", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("PermissionCode") + .HasColumnType("int"); + + b1.Property("SubAccountRoleId") + .HasColumnType("bigint"); + + b1.HasKey("id"); + + b1.HasIndex("SubAccountRoleId"); + + b1.ToTable("SubAccountRolePermissions", (string)null); + + b1.WithOwner("SubAccountRole") + .HasForeignKey("SubAccountRoleId"); + + b1.Navigation("SubAccountRole"); + }); + + b.Navigation("RolePermissions"); + + b.Navigation("RoleWorkshops"); + }); + + modelBuilder.Entity("AccountManagement.Domain.TaskAgg.Tasks", b => + { + b.HasOne("AccountManagement.Domain.TaskScheduleAgg.TaskSchedule", "TaskSchedule") + .WithMany("TasksList") + .HasForeignKey("TaskScheduleId") + .OnDelete(DeleteBehavior.Cascade); + + b.Navigation("TaskSchedule"); + }); + + modelBuilder.Entity("AccountManagement.Domain.TaskMediaAgg.TaskMedia", b => + { + b.HasOne("AccountManagement.Domain.MediaAgg.Media", "Media") + .WithMany("TaskMedias") + .HasForeignKey("MediaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AccountManagement.Domain.TaskAgg.Tasks", "Tasks") + .WithMany("TaskMedias") + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Media"); + + b.Navigation("Tasks"); + }); + + modelBuilder.Entity("AccountManagement.Domain.TaskMessageAgg.TaskMessage", b => + { + b.HasOne("AccountManagement.Domain.AssignAgg.Assign", "Assign") + .WithMany("TaskMessageList") + .HasForeignKey("AssignId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Assign"); + }); + + modelBuilder.Entity("AccountManagement.Domain.TaskMessageItemsAgg.TaskMessageItems", b => + { + b.HasOne("AccountManagement.Domain.TaskMessageAgg.TaskMessage", "TaskMessage") + .WithMany("TaskMessageItemsList") + .HasForeignKey("TaskMessageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TaskMessage"); + }); + + modelBuilder.Entity("AccountManagement.Domain.TicketMediasAgg.TicketMedia", b => + { + b.HasOne("AccountManagement.Domain.MediaAgg.Media", "Media") + .WithMany("TicketMedias") + .HasForeignKey("MediaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AccountManagement.Domain.TicketAgg.Ticket", "Ticket") + .WithMany("TicketMedias") + .HasForeignKey("TicketId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Media"); + + b.Navigation("Ticket"); + }); + + modelBuilder.Entity("AccountManagement.Domain.AccountAgg.Account", b => + { + b.Navigation("AccountLeftWorkList"); + + b.Navigation("CameraAccounts"); + }); + + modelBuilder.Entity("AccountManagement.Domain.AdminResponseAgg.AdminResponse", b => + { + b.Navigation("AdminResponseMedias"); + }); + + modelBuilder.Entity("AccountManagement.Domain.AssignAgg.Assign", b => + { + b.Navigation("TaskMessageList"); + }); + + modelBuilder.Entity("AccountManagement.Domain.ClientResponseAgg.ClientResponse", b => + { + b.Navigation("ClientResponseMedias"); + }); + + modelBuilder.Entity("AccountManagement.Domain.MediaAgg.Media", b => + { + b.Navigation("AdminResponseMedias"); + + b.Navigation("ClientResponseMedias"); + + b.Navigation("TaskMedias"); + + b.Navigation("TicketMedias"); + }); + + modelBuilder.Entity("AccountManagement.Domain.PositionAgg.Position", b => + { + b.Navigation("Accounts"); + }); + + modelBuilder.Entity("AccountManagement.Domain.RoleAgg.Role", b => + { + b.Navigation("Accounts"); + }); + + modelBuilder.Entity("AccountManagement.Domain.SubAccountPermissionSubtitle1Agg.SubAccountPermissionSubtitle1", b => + { + b.Navigation("Children"); + }); + + modelBuilder.Entity("AccountManagement.Domain.SubAccountPermissionSubtitle2Agg.SubAccountPermissionSubtitle2", b => + { + b.Navigation("Children"); + }); + + modelBuilder.Entity("AccountManagement.Domain.SubAccountPermissionSubtitle3Agg.SubAccountPermissionSubtitle3", b => + { + b.Navigation("Children"); + }); + + modelBuilder.Entity("AccountManagement.Domain.SubAccountRoleAgg.SubAccountRole", b => + { + b.Navigation("SubAccounts"); + }); + + modelBuilder.Entity("AccountManagement.Domain.TaskAgg.Tasks", b => + { + b.Navigation("Assigns"); + + b.Navigation("TaskMedias"); + }); + + modelBuilder.Entity("AccountManagement.Domain.TaskMessageAgg.TaskMessage", b => + { + b.Navigation("TaskMessageItemsList"); + }); + + modelBuilder.Entity("AccountManagement.Domain.TaskScheduleAgg.TaskSchedule", b => + { + b.Navigation("TasksList"); + }); + + modelBuilder.Entity("AccountManagement.Domain.TicketAgg.Ticket", b => + { + b.Navigation("AdminResponses"); + + b.Navigation("ClientResponses"); + + b.Navigation("TicketMedias"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/AccountMangement.Infrastructure.EFCore/Migrations/20251213143102_romoveIsProgramManagerUserFromAccount.cs b/AccountMangement.Infrastructure.EFCore/Migrations/20251213143102_romoveIsProgramManagerUserFromAccount.cs new file mode 100644 index 00000000..2a3a5929 --- /dev/null +++ b/AccountMangement.Infrastructure.EFCore/Migrations/20251213143102_romoveIsProgramManagerUserFromAccount.cs @@ -0,0 +1,29 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace AccountMangement.Infrastructure.EFCore.Migrations +{ + /// + public partial class romoveIsProgramManagerUserFromAccount : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "IsProgramManagerUser", + table: "Accounts"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "IsProgramManagerUser", + table: "Accounts", + type: "bit", + nullable: false, + defaultValue: false); + } + } +} diff --git a/AccountMangement.Infrastructure.EFCore/Migrations/AccountContextModelSnapshot.cs b/AccountMangement.Infrastructure.EFCore/Migrations/AccountContextModelSnapshot.cs index ca6c5c8d..800be041 100644 --- a/AccountMangement.Infrastructure.EFCore/Migrations/AccountContextModelSnapshot.cs +++ b/AccountMangement.Infrastructure.EFCore/Migrations/AccountContextModelSnapshot.cs @@ -54,9 +54,6 @@ namespace AccountMangement.Infrastructure.EFCore.Migrations .HasMaxLength(6) .HasColumnType("nvarchar(6)"); - b.Property("IsProgramManagerUser") - .HasColumnType("bit"); - b.Property("Mobile") .IsRequired() .HasMaxLength(20) diff --git a/AccountMangement.Infrastructure.EFCore/Repository/AccountRepository.cs b/AccountMangement.Infrastructure.EFCore/Repository/AccountRepository.cs index 4e0a4dc4..1947a65b 100644 --- a/AccountMangement.Infrastructure.EFCore/Repository/AccountRepository.cs +++ b/AccountMangement.Infrastructure.EFCore/Repository/AccountRepository.cs @@ -46,8 +46,7 @@ public class AccountRepository : RepositoryBase, IAccountReposito Mobile = x.Mobile, RoleId = x.RoleId, Username = x.Username, - IsActiveString = x.IsActiveString, - IsProgramManagerUser = x.IsProgramManagerUser, + IsActiveString = x.IsActiveString }).FirstOrDefault(x => x.Id == id); } diff --git a/CompanyManagment.EFCore/Services/HolidayQueryService.cs b/CompanyManagment.EFCore/Services/HolidayQueryService.cs new file mode 100644 index 00000000..4b8aa51c --- /dev/null +++ b/CompanyManagment.EFCore/Services/HolidayQueryService.cs @@ -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> GetHolidaysInDates(DateTime startDate, DateTime endDate) + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/PersonalContractingParty.Config/PersonalBootstrapper.cs b/PersonalContractingParty.Config/PersonalBootstrapper.cs index a9ee5eae..3988ea58 100644 --- a/PersonalContractingParty.Config/PersonalBootstrapper.cs +++ b/PersonalContractingParty.Config/PersonalBootstrapper.cs @@ -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(); + + #endregion //----Task-Manager-Project--------------------------------- //services.AddTransient(); diff --git a/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/DependencyInjection.cs b/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/DependencyInjection.cs index 5d73a0b3..ae816e1a 100644 --- a/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/DependencyInjection.cs +++ b/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/DependencyInjection.cs @@ -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; @@ -83,9 +85,17 @@ public static class DependencyInjection // Authentication Services services.AddScoped(); services.AddScoped(); - - - + + + + #region ServicesInjection + + services.AddTransient(); + + services.AddTransient(); + + #endregion + // MediatR Validation Behavior services.AddTransient(typeof(IPipelineBehavior<,>), typeof(ValidationBehavior<,>)); diff --git a/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Services/Role/PmRoleCommandService.cs b/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Services/Role/PmRoleCommandService.cs new file mode 100644 index 00000000..09d551f4 --- /dev/null +++ b/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Services/Role/PmRoleCommandService.cs @@ -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); + } +} \ No newline at end of file diff --git a/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Services/Role/PmRoleQueryService.cs b/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Services/Role/PmRoleQueryService.cs new file mode 100644 index 00000000..1f863f27 --- /dev/null +++ b/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Services/Role/PmRoleQueryService.cs @@ -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> 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; + } +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Accounts/Account/Create.cshtml b/ServiceHost/Areas/Admin/Pages/Accounts/Account/Create.cshtml index 23e201b4..4819c826 100644 --- a/ServiceHost/Areas/Admin/Pages/Accounts/Account/Create.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Accounts/Account/Create.cshtml @@ -142,7 +142,7 @@
- @*
+
+ `); + pmIndex++; + } else { $("#hiddenInput").append(` `); normalIndex++; - // const isPm = chk.hasAttribute("data-pm"); - - // if (isPm) { - // $("#hiddenInput").append(` - // - // `); - // pmIndex++; - // } else { - // $("#hiddenInput").append(` - // - // `); - // normalIndex++; - // } + } }); diff --git a/ServiceHost/Areas/Admin/Pages/Accounts/Account/Edit.cshtml b/ServiceHost/Areas/Admin/Pages/Accounts/Account/Edit.cshtml index c3918b66..cfcf1bab 100644 --- a/ServiceHost/Areas/Admin/Pages/Accounts/Account/Edit.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Accounts/Account/Edit.cshtml @@ -146,7 +146,7 @@
-@*
+
@if (Model.IsProgramManagerUser) @@ -165,7 +165,7 @@ -
*@ +
diff --git a/ServiceHost/Areas/Admin/Pages/Accounts/Account/EditRole.cshtml b/ServiceHost/Areas/Admin/Pages/Accounts/Account/EditRole.cshtml index 8f0688a9..da948964 100644 --- a/ServiceHost/Areas/Admin/Pages/Accounts/Account/EditRole.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Accounts/Account/EditRole.cshtml @@ -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(` + + `); + pmIndex++; + } else { + $("#hiddenInput").append(` `); normalIndex++; - // const isPm = chk.hasAttribute("data-pm"); - - // if (isPm) { - // $("#hiddenInput").append(` - // - // `); - // pmIndex++; - // } else { - // $("#hiddenInput").append(` - // - // `); - // normalIndex++; - // } + } }); diff --git a/ServiceHost/Areas/Admin/Pages/Accounts/Account/Index.cshtml b/ServiceHost/Areas/Admin/Pages/Accounts/Account/Index.cshtml index 900be1d3..92dca681 100644 --- a/ServiceHost/Areas/Admin/Pages/Accounts/Account/Index.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Accounts/Account/Index.cshtml @@ -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; diff --git a/ServiceHost/Areas/Admin/Pages/Accounts/Account/Index.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Accounts/Account/Index.cshtml.cs index f7f192db..e4597d4f 100644 --- a/ServiceHost/Areas/Admin/Pages/Accounts/Account/Index.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Accounts/Account/Index.cshtml.cs @@ -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( // "api/role", diff --git a/Shared.Contracts/PmRole/Commands/CreatePmRoleDto.cs b/Shared.Contracts/PmRole/Commands/CreatePmRoleDto.cs new file mode 100644 index 00000000..62edf3b6 --- /dev/null +++ b/Shared.Contracts/PmRole/Commands/CreatePmRoleDto.cs @@ -0,0 +1,9 @@ +namespace Shared.Contracts.PmRole.Commands; + +public record CreatePmRoleDto +{ + public string RoleName { get; set; } + public List Permissions { get; set; } + + public long? GozareshgirRoleId { get; set; } +}; \ No newline at end of file diff --git a/Shared.Contracts/PmRole/Commands/IPmRoleCommandService.cs b/Shared.Contracts/PmRole/Commands/IPmRoleCommandService.cs new file mode 100644 index 00000000..3bd9e586 --- /dev/null +++ b/Shared.Contracts/PmRole/Commands/IPmRoleCommandService.cs @@ -0,0 +1,6 @@ +namespace Shared.Contracts.PmRole.Commands; + +public interface IPmRoleCommandService +{ + Task<(bool, string)> Create(CreatePmRoleDto command); +} \ No newline at end of file diff --git a/Shared.Contracts/PmRole/Queries/GetPmRolesDto.cs b/Shared.Contracts/PmRole/Queries/GetPmRolesDto.cs new file mode 100644 index 00000000..2bd131a2 --- /dev/null +++ b/Shared.Contracts/PmRole/Queries/GetPmRolesDto.cs @@ -0,0 +1,24 @@ +namespace Shared.Contracts.PmRole.Queries; + +public record GetPmRolesDto +{ + /// + /// آی دی نقش + /// + public long Id { get; set; } + + /// + /// نام نقش + /// + public string RoleName { get; set; } + + /// + /// آی دی نقش در گزارشگیر + /// + public long? GozareshgirRoleId { get; set; } + + /// + /// لیست کدهای دسترسی + /// + public List Permissions { get; set; } +}; \ No newline at end of file diff --git a/Shared.Contracts/PmRole/Queries/IPmRoleQueryService.cs b/Shared.Contracts/PmRole/Queries/IPmRoleQueryService.cs new file mode 100644 index 00000000..fef7ad2e --- /dev/null +++ b/Shared.Contracts/PmRole/Queries/IPmRoleQueryService.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shared.Contracts.PmRole.Queries; + +public interface IPmRoleQueryService +{ + Task> GetPmRoleList(long? gozareshgirRoleId); +} + +