LeftWorkAccount Table created - workshop Account edited table

This commit is contained in:
samsys
2024-07-23 21:14:55 +03:30
parent 88fbea0a39
commit d922487032
33 changed files with 13405 additions and 155 deletions

View File

@@ -0,0 +1,14 @@
using System.Collections.Generic;
namespace AccountManagement.Application.Contracts.Account;
public class AccountLeftWorkViewModel
{
public string AccountFullName { get; set; }
public long AccountId { get; set; }
public string StartDateFa { get; set; }
public string LeftDateFa { get; set; }
public List<AccountViewModel> AccountList { get; set; }
public List<WorkshopAccountlistViewModel> WorkshopAccountlist { get; set; }
}

View File

@@ -28,8 +28,10 @@ namespace AccountManagement.Application.Contracts.Account
OperationResult DeActive(long id);
OperationResult DirectLogin(long id);
#region Mahan
List<AccountViewModel> AccountsForAssign(long accountId);
AccountLeftWorkViewModel WorkshopList(long accountId);
#region Mahan
List<AccountViewModel> AccountsForAssign(long accountId);
List<AccountViewModel> GetAccountsByPositionId(long positionId);
List<AccountViewModel> GetAccountLowerPositionvalue();

View File

@@ -0,0 +1,12 @@
namespace AccountManagement.Application.Contracts.Account;
public class WorkshopAccountlistViewModel
{
public long WorkshopId { get; set; }
public string WorkshopName { get; set; }
public long AccountId { get; set; }
public string ContractAndCheckout { get; set; }
public string Insurance { get; set; }
public string Tax { get; set; }
public string IsActiveSting { get; set; }
}

View File

@@ -8,6 +8,7 @@ using System.Runtime.InteropServices;
using System.Threading;
using System.Threading.Tasks;
using _0_Framework.Application.Sms;
using AccountManagement.Domain.AccountLeftWorkAgg;
using AccountManagement.Domain.CameraAccountAgg;
using AccountManagement.Domain.RoleAgg;
using Microsoft.AspNetCore.Http;
@@ -27,16 +28,18 @@ public class AccountApplication : IAccountApplication
private readonly ISmsService _smsService;
private readonly ICameraAccountRepository _cameraAccountRepository;
private readonly IPositionRepository _positionRepository;
private readonly IAccountLeftworkRepository _accountLeftworkRepository;
public AccountApplication(IAccountRepository accountRepository, IPasswordHasher passwordHasher,
IFileUploader fileUploader, IAuthHelper authHelper, IRoleRepository roleRepository, IWorker worker, ISmsService smsService, ICameraAccountRepository cameraAccountRepository, IPositionRepository positionRepository)
IFileUploader fileUploader, IAuthHelper authHelper, IRoleRepository roleRepository, IWorker worker, ISmsService smsService, ICameraAccountRepository cameraAccountRepository, IPositionRepository positionRepository, IAccountLeftworkRepository accountLeftworkRepository)
{
_authHelper = authHelper;
_roleRepository = roleRepository;
_smsService = smsService;
_cameraAccountRepository = cameraAccountRepository;
_positionRepository = positionRepository;
_accountLeftworkRepository = accountLeftworkRepository;
_fileUploader = fileUploader;
_passwordHasher = passwordHasher;
_accountRepository = accountRepository;
@@ -411,6 +414,24 @@ public class AccountApplication : IAccountApplication
return operation.Succcedded(2);
}
public AccountLeftWorkViewModel WorkshopList(long accountId)
{
string fullName = _accountRepository.GetById(accountId).Fullname;
var list =_accountLeftworkRepository.WorkshopList(accountId);
var lefts = _accountLeftworkRepository.GetByAccountId(accountId);
var result = new AccountLeftWorkViewModel
{
AccountId = accountId,
AccountFullName = fullName,
StartDateFa = lefts.StartWorkFa,
LeftDateFa = lefts.LeftWorkFa,
WorkshopAccountlist = list,
};
return result;
}
public List<AccountViewModel> AccountsForAssign(long accountId)
{
return _accountRepository.AccountsForAssign(accountId);

View File

@@ -7,6 +7,7 @@ using AccountManagement.Application.Contracts.Task;
using AccountManagement.Application.Contracts.TaskSubject;
using AccountManagement.Application.Contracts.Ticket;
using AccountManagement.Domain.AccountAgg;
using AccountManagement.Domain.AccountLeftWorkAgg;
using AccountManagement.Domain.AssignAgg;
using AccountManagement.Domain.CameraAccountAgg;
using AccountManagement.Domain.MediaAgg;
@@ -16,6 +17,7 @@ using AccountManagement.Domain.TaskSubjectAgg;
using AccountManagement.Domain.TicketAgg;
using AccountMangement.Infrastructure.EFCore;
using AccountMangement.Infrastructure.EFCore.Repository;
using Company.Domain.WorkshopAccountAgg;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using TaskManager.Application;
@@ -37,8 +39,11 @@ namespace AccountManagement.Configuration
services.AddTransient<ICameraAccountApplication, CameraAccountApplication>();
services.AddTransient<ICameraAccountRepository, CameraAccountRepository>();
#region Mahan
services.AddTransient<IPositionRepository, PositionRepository>();
services.AddTransient<IAccountLeftworkRepository, AccountLeftworkRepository>();
//services.AddTransient<IWorkshopAccountRepository, IWorkshopAccountRepository>();
#region Mahan
services.AddTransient<IPositionRepository, PositionRepository>();
services.AddTransient<IPositionApplication, PositionApplication>();
services.AddTransient<ITaskApplication, TaskApplication>();

View File

@@ -1,5 +1,6 @@
using System.Collections.Generic;
using _0_Framework.Domain;
using AccountManagement.Domain.AccountLeftWorkAgg;
using AccountManagement.Domain.CameraAccountAgg;
using AccountManagement.Domain.RoleAgg;
using TaskManager.Domain.PositionAgg;
@@ -33,6 +34,7 @@ namespace AccountManagement.Domain.AccountAgg
#endregion
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)
{

View File

@@ -0,0 +1,27 @@
using System;
using _0_Framework.Domain;
using AccountManagement.Application.Contracts.Account;
using AccountManagement.Domain.AccountAgg;
namespace AccountManagement.Domain.AccountLeftWorkAgg;
public class AccountLeftWork : EntityBase
{
public AccountLeftWork(DateTime startWorkGr, DateTime leftWorkGr, long accountId)
{
StartWorkGr = startWorkGr;
LeftWorkGr = leftWorkGr;
AccountId = accountId;
}
public DateTime StartWorkGr { get; private set; }
public DateTime LeftWorkGr { get; private set; }
public long AccountId { get; private set; }
public Account Account { get; set; }
public void Edit(DateTime startWorkGr, DateTime leftWorkGr)
{
StartWorkGr = startWorkGr;
LeftWorkGr = leftWorkGr;
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using _0_Framework.Domain;
using AccountManagement.Application.Contracts.Account;
namespace AccountManagement.Domain.AccountLeftWorkAgg;
public interface IAccountLeftworkRepository : IRepository<long, AccountLeftWork>
{
(string StartWorkFa, string LeftWorkFa) GetByAccountId(long accountId);
List<WorkshopAccountlistViewModel> WorkshopList(long accountId);
}

View File

@@ -2,6 +2,7 @@
using AccountMangement.Infrastructure.EFCore.Mappings;
using Microsoft.EntityFrameworkCore;
using System;
using AccountManagement.Domain.AccountLeftWorkAgg;
using AccountManagement.Domain.CameraAccountAgg;
using AccountManagement.Domain.RoleAgg;
using AccountManagement.Domain.AssignAgg;
@@ -25,7 +26,7 @@ namespace AccountMangement.Infrastructure.EFCore
public DbSet<Account> Accounts { get; set; }
public DbSet<Role> Roles { get; set; }
public DbSet<CameraAccount> CameraAccounts { get; set; }
public DbSet<AccountLeftWork> AccountLeftWorks { get; set; }
#region Mahan
public DbSet<Position> Positions { get; set; }

View File

@@ -0,0 +1,23 @@
using AccountManagement.Domain.AccountLeftWorkAgg;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace AccountMangement.Infrastructure.EFCore.Mappings;
public class AccountLeftWorkMapping : IEntityTypeConfiguration<AccountLeftWork>
{
public void Configure(EntityTypeBuilder<AccountLeftWork> builder)
{
builder.ToTable("AccountLeftWork");
builder.HasKey(x => x.id);
builder.Property(x => x.id);
builder.Property(x => x.StartWorkGr);
builder.Property(x => x.LeftWorkGr);
builder.HasOne(x => x.Account)
.WithMany(x => x.AccountLeftWorkList)
.HasForeignKey(x => x.AccountId);
}
}

View File

@@ -30,5 +30,8 @@ public class AccountMapping : IEntityTypeConfiguration<Account>
.WithOne(x => x.Account)
.HasForeignKey(x => x.AccountId);
builder.HasOne(x => x.Position).WithMany(x => x.Accounts).HasForeignKey(x => x.PositionId).IsRequired(false);
builder.HasMany(x => x.AccountLeftWorkList)
.WithOne(x => x.Account)
.HasForeignKey(x => x.AccountId);
}
}

View File

@@ -0,0 +1,768 @@
// <auto-generated />
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("20240722150241_AccountLeftworkTable")]
partial class AccountLeftworkTable
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.4")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("AccountManagement.Domain.AccountAgg.Account", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<string>("AdminAreaPermission")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.Property<string>("ClientAriaPermission")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Email")
.HasMaxLength(150)
.HasColumnType("nvarchar(150)");
b.Property<string>("Fullname")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("IsActiveString")
.HasMaxLength(6)
.HasColumnType("nvarchar(6)");
b.Property<string>("Mobile")
.IsRequired()
.HasMaxLength(20)
.HasColumnType("nvarchar(20)");
b.Property<string>("NationalCode")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.Property<string>("Password")
.IsRequired()
.HasMaxLength(1000)
.HasColumnType("nvarchar(1000)");
b.Property<long?>("PositionId")
.HasMaxLength(10)
.HasColumnType("bigint");
b.Property<string>("ProfilePhoto")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<long>("RoleId")
.HasColumnType("bigint");
b.Property<string>("RoleName")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("Username")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("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<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<long>("AccountId")
.HasColumnType("bigint");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<DateTime>("LeftWorkGr")
.HasColumnType("datetime2");
b.Property<DateTime>("StartWorkGr")
.HasColumnType("datetime2");
b.HasKey("id");
b.HasIndex("AccountId");
b.ToTable("AccountLeftWork", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.AdminResponseAgg.AdminResponse", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Response")
.HasColumnType("ntext");
b.Property<long>("TicketId")
.HasColumnType("bigint");
b.HasKey("id");
b.HasIndex("TicketId");
b.ToTable("AdminResponses", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.AdminResponseMediaAgg.AdminResponseMedia", b =>
{
b.Property<long>("AdminResponseId")
.HasColumnType("bigint");
b.Property<long>("MediaId")
.HasColumnType("bigint");
b.HasKey("AdminResponseId", "MediaId");
b.HasIndex("MediaId");
b.ToTable("AdminResponseMedias", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.AssignAgg.Assign", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<long>("AssignedId")
.HasColumnType("bigint");
b.Property<string>("AssignedName")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property<int>("AssignedPositionValue")
.HasColumnType("int");
b.Property<long>("AssignerId")
.HasColumnType("bigint");
b.Property<int>("AssignerPositionValue")
.HasColumnType("int");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<long>("TaskId")
.HasColumnType("bigint");
b.HasKey("id");
b.HasIndex("TaskId");
b.ToTable("Assigns", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.CameraAccountAgg.CameraAccount", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<long>("AccountId")
.HasColumnType("bigint");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("IsActiveSting")
.IsRequired()
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("Mobile")
.HasMaxLength(11)
.HasColumnType("nvarchar(11)");
b.Property<string>("Password")
.IsRequired()
.HasMaxLength(1000)
.HasColumnType("nvarchar(1000)");
b.Property<string>("Username")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<long>("WorkshopId")
.HasColumnType("bigint");
b.Property<string>("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<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Response")
.HasColumnType("ntext");
b.Property<long>("TicketId")
.HasColumnType("bigint");
b.HasKey("id");
b.HasIndex("TicketId");
b.ToTable("ClientResponses", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.ClientResponseMediaAgg.ClientResponseMedia", b =>
{
b.Property<long>("ClientResponseId")
.HasColumnType("bigint");
b.Property<long>("MediaId")
.HasColumnType("bigint");
b.HasKey("ClientResponseId", "MediaId");
b.HasIndex("MediaId");
b.ToTable("ClientResponseMedias", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.MediaAgg.Media", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<string>("Category")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Path")
.HasColumnType("ntext");
b.Property<string>("Type")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.HasKey("id");
b.ToTable("Medias", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.RoleAgg.Role", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.HasKey("id");
b.ToTable("Roles", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.TaskAgg.Tasks", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<int>("AcceptedTimeRequest")
.HasColumnType("int");
b.Property<string>("CancelDescription")
.HasColumnType("ntext");
b.Property<string>("ContractingPartyName")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Description")
.HasColumnType("ntext");
b.Property<string>("DoneDescription")
.HasColumnType("ntext");
b.Property<DateTime>("EndTaskDate")
.HasColumnType("datetime2");
b.Property<string>("IsActiveString")
.HasMaxLength(7)
.HasColumnType("nvarchar(7)");
b.Property<bool>("IsCancel")
.HasColumnType("bit");
b.Property<bool>("IsCanceledRequest")
.HasColumnType("bit");
b.Property<bool>("IsDone")
.HasColumnType("bit");
b.Property<bool>("IsDoneRequest")
.HasColumnType("bit");
b.Property<DateTime?>("RequestDate")
.HasColumnType("datetime2");
b.Property<long>("SenderId")
.HasColumnType("bigint");
b.Property<DateTime>("StartTaskDate")
.HasColumnType("datetime2");
b.Property<long?>("TicketId")
.HasColumnType("bigint");
b.Property<bool>("TimeRequest")
.HasColumnType("bit");
b.Property<string>("TimeRequestDescription")
.HasColumnType("ntext");
b.Property<string>("Title")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.HasKey("id");
b.ToTable("TasksManager", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.TaskMediaAgg.TaskMedia", b =>
{
b.Property<long>("MediaId")
.HasColumnType("bigint");
b.Property<long>("TaskId")
.HasColumnType("bigint");
b.HasKey("MediaId", "TaskId");
b.HasIndex("TaskId");
b.ToTable("TasksMedias", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.TaskSubjectAgg.TaskSubject", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Subject")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.HasKey("id");
b.ToTable("TaskSubjects", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.TicketAgg.Ticket", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<string>("ContractingPartyName")
.HasMaxLength(155)
.HasColumnType("nvarchar(155)");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Description")
.HasColumnType("ntext");
b.Property<long>("SenderId")
.HasColumnType("bigint");
b.Property<string>("Status")
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b.Property<long?>("TaskId")
.HasColumnType("bigint");
b.Property<string>("TicketType")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Title")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.HasKey("id");
b.ToTable("Tickets", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.TicketMediasAgg.TicketMedia", b =>
{
b.Property<long>("TicketId")
.HasColumnType("bigint");
b.Property<long>("MediaId")
.HasColumnType("bigint");
b.HasKey("TicketId", "MediaId");
b.HasIndex("MediaId");
b.ToTable("TicketMedias", (string)null);
});
modelBuilder.Entity("TaskManager.Domain.PositionAgg.Position", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("PositionName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("PositionValue")
.HasMaxLength(2)
.HasColumnType("int");
b.HasKey("id");
b.ToTable("Positions", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.AccountAgg.Account", b =>
{
b.HasOne("TaskManager.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.RoleAgg.Role", b =>
{
b.OwnsMany("AccountManagement.Domain.RoleAgg.Permission", "Permissions", b1 =>
{
b1.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property<long>("Id"));
b1.Property<int>("Code")
.HasColumnType("int");
b1.Property<long>("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.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.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.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.RoleAgg.Role", b =>
{
b.Navigation("Accounts");
});
modelBuilder.Entity("AccountManagement.Domain.TaskAgg.Tasks", b =>
{
b.Navigation("Assigns");
b.Navigation("TaskMedias");
});
modelBuilder.Entity("AccountManagement.Domain.TicketAgg.Ticket", b =>
{
b.Navigation("AdminResponses");
b.Navigation("ClientResponses");
b.Navigation("TicketMedias");
});
modelBuilder.Entity("TaskManager.Domain.PositionAgg.Position", b =>
{
b.Navigation("Accounts");
});
#pragma warning restore 612, 618
}
}
}

View File

@@ -0,0 +1,61 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace AccountMangement.Infrastructure.EFCore.Migrations
{
/// <inheritdoc />
public partial class AccountLeftworkTable : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "AccountLeftWork",
columns: table => new
{
id = table.Column<long>(type: "bigint", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
StartWorkGr = table.Column<DateTime>(type: "datetime2", nullable: false),
LeftWorkGr = table.Column<DateTime>(type: "datetime2", nullable: false),
AccountId = table.Column<long>(type: "bigint", nullable: false),
CreationDate = table.Column<DateTime>(type: "datetime2", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_AccountLeftWork", x => x.id);
table.ForeignKey(
name: "FK_AccountLeftWork_Accounts_AccountId",
column: x => x.AccountId,
principalTable: "Accounts",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_AccountLeftWork_AccountId",
table: "AccountLeftWork",
column: "AccountId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "AccountLeftWork");
}
}
}

View File

@@ -68,6 +68,10 @@ namespace AccountMangement.Infrastructure.EFCore.Migrations
.HasMaxLength(1000)
.HasColumnType("nvarchar(1000)");
b.Property<long?>("PositionId")
.HasMaxLength(10)
.HasColumnType("bigint");
b.Property<string>("ProfilePhoto")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
@@ -90,11 +94,116 @@ namespace AccountMangement.Infrastructure.EFCore.Migrations
b.HasKey("id");
b.HasIndex("PositionId");
b.HasIndex("RoleId");
b.ToTable("Accounts", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.AccountLeftWorkAgg.AccountLeftWork", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<long>("AccountId")
.HasColumnType("bigint");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<DateTime>("LeftWorkGr")
.HasColumnType("datetime2");
b.Property<DateTime>("StartWorkGr")
.HasColumnType("datetime2");
b.HasKey("id");
b.HasIndex("AccountId");
b.ToTable("AccountLeftWork", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.AdminResponseAgg.AdminResponse", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Response")
.HasColumnType("ntext");
b.Property<long>("TicketId")
.HasColumnType("bigint");
b.HasKey("id");
b.HasIndex("TicketId");
b.ToTable("AdminResponses", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.AdminResponseMediaAgg.AdminResponseMedia", b =>
{
b.Property<long>("AdminResponseId")
.HasColumnType("bigint");
b.Property<long>("MediaId")
.HasColumnType("bigint");
b.HasKey("AdminResponseId", "MediaId");
b.HasIndex("MediaId");
b.ToTable("AdminResponseMedias", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.AssignAgg.Assign", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<long>("AssignedId")
.HasColumnType("bigint");
b.Property<string>("AssignedName")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property<int>("AssignedPositionValue")
.HasColumnType("int");
b.Property<long>("AssignerId")
.HasColumnType("bigint");
b.Property<int>("AssignerPositionValue")
.HasColumnType("int");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<long>("TaskId")
.HasColumnType("bigint");
b.HasKey("id");
b.HasIndex("TaskId");
b.ToTable("Assigns", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.CameraAccountAgg.CameraAccount", b =>
{
b.Property<long>("id")
@@ -142,6 +251,72 @@ namespace AccountMangement.Infrastructure.EFCore.Migrations
b.ToTable("CameraAccounts", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.ClientResponseAgg.ClientResponse", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Response")
.HasColumnType("ntext");
b.Property<long>("TicketId")
.HasColumnType("bigint");
b.HasKey("id");
b.HasIndex("TicketId");
b.ToTable("ClientResponses", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.ClientResponseMediaAgg.ClientResponseMedia", b =>
{
b.Property<long>("ClientResponseId")
.HasColumnType("bigint");
b.Property<long>("MediaId")
.HasColumnType("bigint");
b.HasKey("ClientResponseId", "MediaId");
b.HasIndex("MediaId");
b.ToTable("ClientResponseMedias", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.MediaAgg.Media", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<string>("Category")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Path")
.HasColumnType("ntext");
b.Property<string>("Type")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.HasKey("id");
b.ToTable("Medias", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.RoleAgg.Role", b =>
{
b.Property<long>("id")
@@ -163,17 +338,264 @@ namespace AccountMangement.Infrastructure.EFCore.Migrations
b.ToTable("Roles", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.TaskAgg.Tasks", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<int>("AcceptedTimeRequest")
.HasColumnType("int");
b.Property<string>("CancelDescription")
.HasColumnType("ntext");
b.Property<string>("ContractingPartyName")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Description")
.HasColumnType("ntext");
b.Property<string>("DoneDescription")
.HasColumnType("ntext");
b.Property<DateTime>("EndTaskDate")
.HasColumnType("datetime2");
b.Property<string>("IsActiveString")
.HasMaxLength(7)
.HasColumnType("nvarchar(7)");
b.Property<bool>("IsCancel")
.HasColumnType("bit");
b.Property<bool>("IsCanceledRequest")
.HasColumnType("bit");
b.Property<bool>("IsDone")
.HasColumnType("bit");
b.Property<bool>("IsDoneRequest")
.HasColumnType("bit");
b.Property<DateTime?>("RequestDate")
.HasColumnType("datetime2");
b.Property<long>("SenderId")
.HasColumnType("bigint");
b.Property<DateTime>("StartTaskDate")
.HasColumnType("datetime2");
b.Property<long?>("TicketId")
.HasColumnType("bigint");
b.Property<bool>("TimeRequest")
.HasColumnType("bit");
b.Property<string>("TimeRequestDescription")
.HasColumnType("ntext");
b.Property<string>("Title")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.HasKey("id");
b.ToTable("TasksManager", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.TaskMediaAgg.TaskMedia", b =>
{
b.Property<long>("MediaId")
.HasColumnType("bigint");
b.Property<long>("TaskId")
.HasColumnType("bigint");
b.HasKey("MediaId", "TaskId");
b.HasIndex("TaskId");
b.ToTable("TasksMedias", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.TaskSubjectAgg.TaskSubject", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Subject")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.HasKey("id");
b.ToTable("TaskSubjects", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.TicketAgg.Ticket", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<string>("ContractingPartyName")
.HasMaxLength(155)
.HasColumnType("nvarchar(155)");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Description")
.HasColumnType("ntext");
b.Property<long>("SenderId")
.HasColumnType("bigint");
b.Property<string>("Status")
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b.Property<long?>("TaskId")
.HasColumnType("bigint");
b.Property<string>("TicketType")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Title")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.HasKey("id");
b.ToTable("Tickets", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.TicketMediasAgg.TicketMedia", b =>
{
b.Property<long>("TicketId")
.HasColumnType("bigint");
b.Property<long>("MediaId")
.HasColumnType("bigint");
b.HasKey("TicketId", "MediaId");
b.HasIndex("MediaId");
b.ToTable("TicketMedias", (string)null);
});
modelBuilder.Entity("TaskManager.Domain.PositionAgg.Position", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("PositionName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("PositionValue")
.HasMaxLength(2)
.HasColumnType("int");
b.HasKey("id");
b.ToTable("Positions", (string)null);
});
modelBuilder.Entity("AccountManagement.Domain.AccountAgg.Account", b =>
{
b.HasOne("TaskManager.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")
@@ -185,9 +607,39 @@ namespace AccountMangement.Infrastructure.EFCore.Migrations
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.RoleAgg.Role", b =>
{
b.OwnsMany("AccountManagement.Domain.RoleAgg.Permission", "Permissions", b1 =>
b.OwnsMany("AccountManagement.Domain.RoleAgg.Role.Permissions#AccountManagement.Domain.RoleAgg.Permission", "Permissions", b1 =>
{
b1.Property<long>("Id")
.ValueGeneratedOnAdd()
@@ -216,15 +668,97 @@ namespace AccountMangement.Infrastructure.EFCore.Migrations
b.Navigation("Permissions");
});
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.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.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.RoleAgg.Role", b =>
{
b.Navigation("Accounts");
});
modelBuilder.Entity("AccountManagement.Domain.TaskAgg.Tasks", b =>
{
b.Navigation("Assigns");
b.Navigation("TaskMedias");
});
modelBuilder.Entity("AccountManagement.Domain.TicketAgg.Ticket", b =>
{
b.Navigation("AdminResponses");
b.Navigation("ClientResponses");
b.Navigation("TicketMedias");
});
modelBuilder.Entity("TaskManager.Domain.PositionAgg.Position", b =>
{
b.Navigation("Accounts");
});
#pragma warning restore 612, 618
}
}

View File

@@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using System.Linq;
using _0_Framework.Application;
using _0_Framework.InfraStructure;
using AccountManagement.Application.Contracts.Account;
using AccountManagement.Domain.AccountLeftWorkAgg;
using Company.Domain.LeftWorkAgg;
using Company.Domain.WorkingHoursItemsAgg;
using Company.Domain.WorkshopAccountAgg;
using Microsoft.EntityFrameworkCore;
namespace AccountMangement.Infrastructure.EFCore.Repository;
public class AccountLeftworkRepository : RepositoryBase<long, AccountLeftWork>, IAccountLeftworkRepository
{
private readonly AccountContext _accountContext;
private readonly IWorkshopAccountRepository _workshopAccountRepository;
public AccountLeftworkRepository(AccountContext accountContext, IWorkshopAccountRepository workshopAccountRepository) : base(accountContext)
{
_accountContext = accountContext;
_workshopAccountRepository = workshopAccountRepository;
}
public (string StartWorkFa, string LeftWorkFa) GetByAccountId(long accountId)
{
var initial = new DateTime(2150, 1, 1);
string start = "";
string end = "";
var res = _accountContext.AccountLeftWorks.FirstOrDefault(x => x.AccountId == accountId);
if (res != null)
{
start = res.StartWorkGr != initial ? res.StartWorkGr.ToFarsi() : "";
end = res.LeftWorkGr != initial ? res.LeftWorkGr.ToFarsi() : "";
}
return (start, end);
}
public List<WorkshopAccountlistViewModel> WorkshopList(long accountId)
{
var res = _workshopAccountRepository.GetList(accountId);
return res.Select(x => new WorkshopAccountlistViewModel
{
WorkshopId = x.WorkshopId,
WorkshopName = x.WorkshopName,
AccountId = x.AccountId,
ContractAndCheckout = x.ContractAndCheckout,
Insurance = x.Insurance,
Tax = x.Tax,
IsActiveSting = x.IsActiveSting,
}).ToList();
}
}

View File

@@ -257,7 +257,24 @@ public class AccountRepository : RepositoryBase<long, Account>, IAccountReposito
}).FirstOrDefault(x => x.Id == id);
}
//public List<AccountViewModel> GetAdminAccounts()
//{
// return _context.Accounts.Where(x=>x.AdminAreaPermission == "true" && x.IsActiveString == "true").Select(x => new AccountViewModel()
// {
// Id = x.id,
// Fullname = x.Fullname,
// RoleName = x.RoleName,
// Username = x.Username,
// RoleId = x.RoleId,
// Mobile = x.Mobile,
// CreationDateGr = x.CreationDate,
// IsActiveString = x.IsActiveString,
#endregion
// }).ToList();
//}
#endregion
}

View File

@@ -0,0 +1,10 @@
using System.Collections.Generic;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.Workshop;
namespace Company.Domain.WorkshopAccountAgg;
public interface IWorkshopAccountRepository: IRepository<long, WorkshopAccount>
{
List<WorkshopAccountViewModel> GetList(long accountId);
}

View File

@@ -8,6 +8,9 @@ public class WorkshopAccount
public long WorkshopId { get; set; }
public Workshop Workshop { get; set; }
public long AccountId { get; set; }
public string ContractAndCheckout { get; set; }
public string Insurance { get; set; }
public string Tax { get; set; }
public string IsActiveSting { get; set; }
}

View File

@@ -0,0 +1,12 @@
namespace CompanyManagment.App.Contracts.Workshop;
public class WorkshopAccountViewModel
{
public long WorkshopId { get; set; }
public string WorkshopName { get; set; }
public long AccountId { get; set; }
public string ContractAndCheckout { get; set; }
public string Insurance { get; set; }
public string Tax { get; set; }
public string IsActiveSting { get; set; }
}

View File

@@ -11,11 +11,15 @@ public class WorkshopAccountMapping : IEntityTypeConfiguration<WorkshopAccount>
builder.ToTable("WorkshopeAccounts");
builder.HasKey(x => new { x.WorkshopId, x.AccountId });
//builder.HasOne(x => x.Workshop)
// .WithMany(x => x.WorkshopAccounts)
// .HasForeignKey(x => x.WorkshopId);
//builder.HasOne(x => x.Account)
// .WithMany(x => x.WorkshopAccounts)
// .HasForeignKey(x => x.AccountId);
}
builder.Property(x => x.ContractAndCheckout).HasMaxLength(5);
builder.Property(x => x.Insurance).HasMaxLength(5);
builder.Property(x => x.Tax).HasMaxLength(5);
builder.Property(x => x.IsActiveSting).HasMaxLength(5);
//builder.HasOne(x => x.Workshop)
// .WithMany(x => x.WorkshopAccounts)
// .HasForeignKey(x => x.WorkshopId);
//builder.HasOne(x => x.Account)
// .WithMany(x => x.WorkshopAccounts)
// .HasForeignKey(x => x.AccountId);
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,62 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace CompanyManagment.EFCore.Migrations
{
/// <inheritdoc />
public partial class accessWorkshopAccount : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "Checkout",
table: "WorkshopeAccounts",
type: "nvarchar(5)",
maxLength: 5,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "Contract",
table: "WorkshopeAccounts",
type: "nvarchar(5)",
maxLength: 5,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "Insurance",
table: "WorkshopeAccounts",
type: "nvarchar(5)",
maxLength: 5,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "Tax",
table: "WorkshopeAccounts",
type: "nvarchar(5)",
maxLength: 5,
nullable: true);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "Checkout",
table: "WorkshopeAccounts");
migrationBuilder.DropColumn(
name: "Contract",
table: "WorkshopeAccounts");
migrationBuilder.DropColumn(
name: "Insurance",
table: "WorkshopeAccounts");
migrationBuilder.DropColumn(
name: "Tax",
table: "WorkshopeAccounts");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace CompanyManagment.EFCore.Migrations
{
/// <inheritdoc />
public partial class WorkshopAccountEdted : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.RenameColumn(
name: "Contract",
table: "WorkshopeAccounts",
newName: "IsActiveSting");
migrationBuilder.RenameColumn(
name: "Checkout",
table: "WorkshopeAccounts",
newName: "ContractAndCheckout");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.RenameColumn(
name: "IsActiveSting",
table: "WorkshopeAccounts",
newName: "Contract");
migrationBuilder.RenameColumn(
name: "ContractAndCheckout",
table: "WorkshopeAccounts",
newName: "Checkout");
}
}
}

View File

@@ -3983,6 +3983,22 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<long>("AccountId")
.HasColumnType("bigint");
b.Property<string>("ContractAndCheckout")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("Insurance")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("IsActiveSting")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("Tax")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.HasKey("WorkshopId", "AccountId");
b.ToTable("WorkshopeAccounts", (string)null);

View File

@@ -0,0 +1,36 @@
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using _0_Framework.InfraStructure;
using Company.Domain.WorkshopAccountAgg;
using CompanyManagment.App.Contracts.Workshop;
using Microsoft.EntityFrameworkCore;
namespace CompanyManagment.EFCore.Repository;
public class WorkshopAccountRepository : RepositoryBase<long, WorkshopAccount>, IWorkshopAccountRepository
{
private readonly CompanyContext _Context;
public WorkshopAccountRepository(CompanyContext context) : base(context)
{
_Context = context;
}
[SuppressMessage("ReSharper.DPA", "DPA0007: Large number of DB records", MessageId = "count: 509")]
public List<WorkshopAccountViewModel> GetList(long accountId)
{
return _Context.WorkshopAccounts.Include(x=>x.Workshop).Where(x => x.AccountId == accountId).Select(x => new WorkshopAccountViewModel()
{
WorkshopId = x.WorkshopId,
AccountId = x.AccountId,
ContractAndCheckout = x.ContractAndCheckout,
Insurance = x.Insurance,
Tax = x.Tax,
IsActiveSting = x.IsActiveSting,
WorkshopName = x.Workshop.WorkshopFullName,
}).ToList();
}
}

View File

@@ -161,6 +161,7 @@ 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;
@@ -344,7 +345,7 @@ public class PersonalBootstrapper
services.AddTransient<IRollCallMandatoryRepository, RollCallMandatoryRepository>();
services.AddTransient<IRollCallMandatoryApplication, RollCallMandatoryApplication>();
services.AddTransient<IWorkshopAccountRepository, WorkshopAccountRepository>();
//=========End Of Main====================================
//---File Project------------------------------------

View File

@@ -0,0 +1,313 @@
@model AccountManagement.Application.Contracts.Account.AccountLeftWorkViewModel
@{
<style>
.modal-dialog {
width: 60% !important;
}
.box{
background-color: #cee8d9;
align-items: center;
padding: 7px;
border-radius: 10px;
}
.box2{
background-color: #d8f1f1;
align-items: center;
padding: 7px;
border-radius: 10px;
}
.mess {
height: 630px;
overflow-y: scroll;
background: aliceblue;
box-shadow: 0px 1px 15px 0 #b4c0b2;
border-radius: 20px;
margin-bottom: 20px;
padding: 15px;
font-size: 12px;
}
.date{
background-color: #fafafa;
color: rgba(0, 0, 0, 0.6);
font-size: 14px;
border: 1px solid #c7c7c7 !important;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 10px;
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
border: 1px solid #eee;
box-shadow: none;
text-align : center;
}
.mess::-webkit-scrollbar {
width: 6px;
}
.mess::-webkit-scrollbar-track {
background-color: #8bd8ed42;
border-radius: 12px;
}
.mess::-webkit-scrollbar-thumb {
background-color: #3159adb8;
border-radius: 12px;
}
.mess::-webkit-scrollbar-thumb:hover {
background-color: #aaa;
}
@@media screen and (max-width: 1920px) {
.modal-dialog {
width: 60% !important;
}
}
@@media screen and (max-width: 1440px) {
.modal-dialog {
width: 60% !important;
}
}
@@media screen and (max-width: 1360px) {
.modal-dialog {
width: 70% !important;
}
}
@@media screen and (max-width: 992px) {
.modal-dialog {
width: 90% !important;
}
}
</style>
<style>
.checkbox-wrapper-26 * {
-webkit-tap-highlight-color: transparent;
outline: none;
}
.checkbox-wrapper-26 input[type="checkbox"] {
display: none;
}
.checkbox-wrapper-26 label {
--size: 21px;
--shadow: calc(var(--size) * .07) calc(var(--size) * .1);
position: relative;
display: block;
width: var(--size);
height: var(--size);
margin: 0 auto;
background-color: #8db5d7;
border-radius: 50%;
cursor: pointer;
transition: 0.2s ease transform, 0.2s ease background-color, 0.2s ease box-shadow;
overflow: hidden;
z-index: 1;
}
.checkbox-wrapper-26 label:before {
content: "";
position: absolute;
top: 50%;
right: 0;
left: 0;
width: calc(var(--size) * .7);
height: calc(var(--size) * .7);
margin: 0 auto;
background-color: #fff;
transform: translateY(-50%);
border-radius: 50%;
transition: 0.2s ease width, 0.2s ease height;
}
.checkbox-wrapper-26 label:hover:before {
width: calc(var(--size) * .55);
height: calc(var(--size) * .55);
}
.checkbox-wrapper-26 label:active {
transform: scale(0.9);
}
.checkbox-wrapper-26 .tick_mark {
position: absolute;
top: -1px;
right: 0;
left: calc(var(--size) * -.05);
width: calc(var(--size) * .6);
height: calc(var(--size) * .6);
margin: 0 auto;
margin-left: calc(var(--size) * .14);
transform: rotateZ(-40deg);
}
.checkbox-wrapper-26 .tick_mark:before,
.checkbox-wrapper-26 .tick_mark:after {
content: "";
position: absolute;
background-color: #fff;
border-radius: 2px;
opacity: 0;
transition: 0.2s ease transform, 0.2s ease opacity;
}
.checkbox-wrapper-26 .tick_mark:before {
left: 0;
bottom: 0;
width: calc(var(--size) * .1);
height: calc(var(--size) * .3);
box-shadow: -2px 0 5px rgba(0, 0, 0, 0.23);
transform: translateY(calc(var(--size) * -.68));
}
.checkbox-wrapper-26 .tick_mark:after {
left: 0;
bottom: 0;
width: 100%;
height: calc(var(--size) * .1);
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.23);
transform: translateX(calc(var(--size) * .78));
}
.checkbox-wrapper-26 input[type="checkbox"]:checked + label {
background-color: #07d410;
box-shadow: 0 var(--shadow) #92ff97;
}
.checkbox-wrapper-26 input[type="checkbox"]:checked + label:before {
width: 0;
height: 0;
}
.checkbox-wrapper-26 input[type="checkbox"]:checked + label .tick_mark:before,
.checkbox-wrapper-26 input[type="checkbox"]:checked + label .tick_mark:after {
transform: translate(0);
opacity: 1;
}
</style>
}
<div class="modal-header" style="border-bottom: unset">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" style="right: 1%;">×</button>
<span style="position: fixed;top: 7px;right:7%;">@Model.AccountFullName</span>
</div>
<div class="row box2" style="margin-top:17px;">
<div class="col-sm-4">
<span>کپی کارگاه ها به</span> <span>&nbsp;</span><span>:</span>
<span dir="ltr"> <input type="text" asp-for="StartDateFa" class="date" /></span>
<a type="button" class="btn btn-success red">
<span>تایید</span>
</a>
</div>
<div class="col-sm-4 ">
<span>ترک کار</span> <span>&nbsp;</span><span>:</span>
<span dir="ltr"> <input type="text" asp-for="LeftDateFa" class="date" /></span>
</div>
<div class="col-sm-4">
<span>شروع بکار</span> <span>&nbsp;</span><span>:</span>
<span dir="ltr"> <input type="text" asp-for="StartDateFa" class="date" /></span>
</div>
</div>
<div class="row box2" style="margin-top: 4px;font-size: 12px;background-color: #b5d6e3; ">
<div class="col-sm-6 " style="text-align: center">
<div class="row">
<div class="col-sm-3">
<span>--</span>
</div>
<div class="col-sm-3">
<span>بیمه</span>
</div>
<div class="col-sm-3">
<span>مالیات</span>
</div>
<div class="col-sm-3">
<span>قرداد و تصفیه</span>
</div>
</div>
</div>
<div class="col-sm-6">
<span>نام کارگاه</span>
</div>
</div>
<div class="row mess" style="margin-top: 5px;">
@foreach (var item in @Model.WorkshopAccountlist)
{
<div class="row box" style="margin-top: 3px; direction: rtl">
<div class="col-sm-6 ">
<div class="row">
<div class="col-sm-3">
</div>
<div class="col-sm-3">
<div class="checkbox-wrapper-26">
<input type="checkbox" id="tax+@item.WorkshopId">
<label for="tax+@item.WorkshopId">
<div class="tick_mark"></div>
</label>
</div>
</div>
<div class="col-sm-3">
<div class="checkbox-wrapper-26">
<input type="checkbox" id="insurance+@item.WorkshopId">
<label for="insurance+@item.WorkshopId">
<div class="tick_mark"></div>
</label>
</div>
</div>
<div class="col-sm-3">
<div class="checkbox-wrapper-26">
<input type="checkbox" id="contractAndChekouts+@item.WorkshopId">
<label for="contractAndChekouts+@item.WorkshopId">
<div class="tick_mark"></div>
</label>
</div>
</div>
</div>
</div>
<div class="col-sm-6">
<span> @item.WorkshopName</span>
</div>
</div>
}
</div>

View File

@@ -243,6 +243,10 @@
href="#showmodal=@Url.Page("./Index", "Edit", new { item.Id })">
<i class="fa fa-edit faSize"></i>
</a>
<a class="btn btn-success pull-right m-rl-5 red"
href="#showmodal=@Url.Page("./Index", "AccountWorkshop", new { item.Id })">
<i class="fa fa-edit faSize"></i>
</a>
@if (item.IsActiveString == "true" && item.Role != "مدیر سیستم")
{
<a onclick="deActive(@item.Id, '@item.Fullname')" class="btn btn-danger pull-right m-rl-5 red">

View File

@@ -208,4 +208,13 @@ public class IndexModel : PageModel
isSuccess = false
});
}
public IActionResult OnGetAccountWorkshop(long id)
{
var res = _accountApplication.WorkshopList(id);
return Partial("AccountLeftWork", res);
}
}

View File

@@ -1,8 +1,9 @@
@page
@using Version = _0_Framework.Application.Version
@model IndexModel
@model ServiceHost.Areas.Client.Pages.IndexModel
@{
<style>
</style>
@@ -11,47 +12,47 @@
<!-- MAIN CONTENT -->
<div class="p-2 content-container">
<div class="container-fluid">
<div class="row">
<div class="col-12 col-lg-12 col-xl-7 mb-3 mb-xl-0 d-none d-md-block">
<div class="card px-2">
<div class="dashboard-image-section">
<div class="overlay">
<div class="p-4 text-white">
<h3>به سامانه گزارشگیر خوش آمدید</h3>
<h5>خوش آمدید به دنیای پرانرژی سامانه هوشمند مدیریت منابع انسانی. ما خوشحالیم که شما را در اینجا می‌بینیم.</h5>
</div>
</div>
<img src="~/AssetsClient/images/dashboard.jpg" alt="" class="img-fluid">
</div>
</div>
</div>
<div class="col-12 col-lg-12 col-xl-5">
<div class="card px-2">
<div class="d-flex align-items-center justify-content-between d-none d-md-flex">
<div>
<h5 class="title">تقویم</h5>
</div>
<div class="container-fluid">
<div class="row">
<div class="col-12 col-lg-12 col-xl-7 mb-3 mb-xl-0 d-none d-md-block">
<div class="card px-2">
<div class="dashboard-image-section">
<div class="overlay">
<div class="p-4 text-white">
<h3>به سامانه گزارشگیر خوش آمدید</h3>
<h5>خوش آمدید به دنیای پرانرژی سامانه هوشمند مدیریت منابع انسانی. ما خوشحالیم که شما را در اینجا می‌بینیم.</h5>
</div>
</div>
<img src="~/AssetsClient/images/dashboard.jpg" alt="" class="img-fluid">
</div>
</div>
</div>
<div class="col-12 col-lg-12 col-xl-5">
<div class="card px-2">
<div class="d-flex align-items-center justify-content-between d-none d-md-flex">
<div>
<h5 class="title">تقویم</h5>
</div>
<div>
<h5 class="title">@Model.TodayDate</h5>
</div>
</div>
<div>
<h5 class="title">@Model.TodayDate</h5>
</div>
</div>
<div class="weekDisplay">
@foreach (var calender in Model.CalenderViewModels)
{
<div class="wDisplayDay @(calender.IsToday ? "active" : "")">
<p class="dayNameX @(calender.Holiday || calender.DayOfWeek == "آدینه" ? "text-danger" : "")">@calender.DayOfWeek</p>
<h3 class="dayNumY @(calender.Holiday || calender.DayOfWeek == "آدینه" ? "text-danger" : "")">@calender.DayNumber</h3>
@* <h3 class="">@calender.Holiday</h3> *@
</div>
}
</div>
</div>
</div>
@* <div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-4 mt-3">
<div class="weekDisplay">
@foreach (var calender in @Model.CalenderViewModels)
{
<div class="wDisplayDay @(calender.IsToday ? "active" : "")">
<p class="dayNameX @(calender.Holiday || @calender.DayOfWeek == "آدینه" ? "text-danger" : "")">@calender.DayOfWeek</p>
<h3 class="dayNumY @(calender.Holiday || @calender.DayOfWeek == "آدینه" ? "text-danger" : "")">@calender.DayNumber</h3>
@* <h3 class="">@calender.Holiday</h3> *@
</div>
}
</div>
</div>
</div>
@* <div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-4 mt-3">
<div class="card p-0">
<div class="card-btn">
<img src="~/AssetsClient/images/btn-image/leave.jpg" class="img-fluid">
@@ -69,47 +70,47 @@
</div>
</div>
</div> *@
<div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 col-xxl-4 mt-3">
<div class="card p-0">
<div class="card-section-btn" id="btnCardLeaveIntro">
<div class="content btn-group">
<button class="btn loadingButton" onclick="location.href = '#showmodal=@Url.Page("./Index", "LeaveCreate")';">
<svg width="50" viewBox="0 0 1000 1000" style="margin: 0 0 0 6px;">
<path fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" d="M547.17,761.89H162.16c-34.33,0-62.16-27.83-62.16-62.16V300.26v-51.2c0-34.33,27.83-62.16,62.16-62.16h560.68 c34.33,0,62.16,27.83,62.16,62.16v287.26"/>
<line fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="785" y1="296.85" x2="100" y2="296.85"/>
<line fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="238" y1="186.89" x2="238" y2="136"/>
<line fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="647" y1="186.89" x2="647" y2="136"/>
<circle fill="none" stroke="#2FBFBF" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" cx="719" cy="703.61" r="181"/>
<line fill="none" stroke="#2FBFBF" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="821.91" y1="703.61" x2="616.09" y2="703.61"/>
<line fill="none" stroke="#2FBFBF" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="719" y1="806.52" x2="719" y2="600.69"/>
</svg>
<p class="btn-title text-nowrap m-0">ثبت مرخصی</p>
<div class="spinner-loading loading rounded-0" style="display: none;">
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
</div>
</button>
<button class="btn loadingButton" onclick="location.href = '/Client/Company/Employees/Leave';">
<svg width="50" viewBox="0 0 1000 1000" style="margin: 0 0 0 6px;">
<path fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" d="M547.17,761.89H162.16c-34.33,0-62.16-27.83-62.16-62.16V300.26v-51.2c0-34.33,27.83-62.16,62.16-62.16h560.68 c34.33,0,62.16,27.83,62.16,62.16v287.26"/>
<line fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="785" y1="296.85" x2="100" y2="296.85"/>
<line fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="238" y1="186.89" x2="238" y2="136"/>
<line fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="647" y1="186.89" x2="647" y2="136"/>
<circle fill="none" stroke="#2FBFBF" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" cx="719" cy="703.61" r="181"/>
<line fill="none" stroke="#2FBFBF" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="813.91" y1="717.6" x2="711" y2="717.6"/>
<line fill="none" stroke="#2FBFBF" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="711" y1="717" x2="711" y2="591.69"/>
</svg>
<p class="btn-title text-nowrap m-0">لیست مرخصی</p>
<div class="spinner-loading loading rounded-0" style="display: none;">
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
</div>
</button>
</div>
</div>
</div>
</div>
@* <div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 col-xxl-4 mt-3">
<div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 col-xxl-4 mt-3">
<div class="card p-0">
<div class="card-section-btn" id="btnCardLeaveIntro">
<div class="content btn-group">
<button class="btn loadingButton" onclick="location.href='#showmodal=@Url.Page("./Index", "LeaveCreate")';">
<svg width="50" viewBox="0 0 1000 1000" style="margin: 0 0 0 6px;">
<path fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" d="M547.17,761.89H162.16c-34.33,0-62.16-27.83-62.16-62.16V300.26v-51.2c0-34.33,27.83-62.16,62.16-62.16h560.68 c34.33,0,62.16,27.83,62.16,62.16v287.26" />
<line fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="785" y1="296.85" x2="100" y2="296.85" />
<line fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="238" y1="186.89" x2="238" y2="136" />
<line fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="647" y1="186.89" x2="647" y2="136" />
<circle fill="none" stroke="#2FBFBF" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" cx="719" cy="703.61" r="181" />
<line fill="none" stroke="#2FBFBF" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="821.91" y1="703.61" x2="616.09" y2="703.61" />
<line fill="none" stroke="#2FBFBF" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="719" y1="806.52" x2="719" y2="600.69" />
</svg>
<p class="btn-title text-nowrap m-0">ثبت مرخصی</p>
<div class="spinner-loading loading rounded-0" style="display: none;">
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
</div>
</button>
<button class="btn loadingButton" onclick="location.href='/Client/Company/Employees/Leave';">
<svg width="50" viewBox="0 0 1000 1000" style="margin: 0 0 0 6px;">
<path fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" d="M547.17,761.89H162.16c-34.33,0-62.16-27.83-62.16-62.16V300.26v-51.2c0-34.33,27.83-62.16,62.16-62.16h560.68 c34.33,0,62.16,27.83,62.16,62.16v287.26" />
<line fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="785" y1="296.85" x2="100" y2="296.85" />
<line fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="238" y1="186.89" x2="238" y2="136" />
<line fill="none" stroke="#158D8D" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="647" y1="186.89" x2="647" y2="136" />
<circle fill="none" stroke="#2FBFBF" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" cx="719" cy="703.61" r="181" />
<line fill="none" stroke="#2FBFBF" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="813.91" y1="717.6" x2="711" y2="717.6" />
<line fill="none" stroke="#2FBFBF" stroke-width="40" stroke-linecap="round" stroke-miterlimit="10" x1="711" y1="717" x2="711" y2="591.69" />
</svg>
<p class="btn-title text-nowrap m-0">لیست مرخصی</p>
<div class="spinner-loading loading rounded-0" style="display: none;">
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
</div>
</button>
</div>
</div>
</div>
</div>
@* <div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 col-xxl-4 mt-3">
<div class="card p-0">
<div class="card-section-btn">
<div class="content btn-group">
@@ -124,73 +125,72 @@
</div>
</div> *@
<!--
<div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 col-xxl-4 mt-3">
<div class="card p-0">
@* <div class="card-section-btn" style="background-image: url('AssetsClient/images/btn-image/leave.jpg');background-position: center;background-repeat: no-repeat;background-size: cover;"> *@
<div class="card-section-btn" style="background: linear-gradient(270deg, #30C2C2 0%, #15a2a2 100%);">
<div class="content">
<button class="btn me-3" onclick="location.href='#showmodal=@Url.Page("./Index", "LeaveCreate")';">
<span class="btn-title text-nowrap">ثبت مرخصی</span>
</button>
<button class="btn" onclick="location.href='#showmodal=@Url.Page("./Index", "LeaveList")';">
<span class="btn-title text-nowrap">لیست مرخصی</span>
</button>
</div>
</div>
</div>
</div>
-->
<!--
<div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 col-xxl-4 mt-3">
<div class="card p-0">
@* <div class="card-section-btn" style="background-image: url('AssetsClient/images/btn-image/leave.jpg');background-position: center;background-repeat: no-repeat;background-size: cover;"> *@
<div class="card-section-btn" style="background: linear-gradient(270deg, #30C2C2 0%, #15a2a2 100%);">
<div class="content">
<button class="btn me-3" onclick="location.href='#showmodal=@Url.Page("./Index", "LeaveCreate")';">
<span class="btn-title text-nowrap">ثبت مرخصی</span>
</button>
<button class="btn" onclick="location.href='#showmodal=@Url.Page("./Index", "LeaveList")';">
<span class="btn-title text-nowrap">لیست مرخصی</span>
</button>
</div>
</div>
</div>
</div>
-->
</div>
</div>
</div>
</div>
</div>
<!-- END MAIN CONTENT -->
<div id="MainModal" class="modal fade personalListModal" aria-labelledby="myModalLabel" data-bs-backdrop="static" aria-hidden="true" tabindex="-1" style="display: none;">
<div class="modal-dialog modal-xxl modal-dialog-centered">
<div class="modal-content" id="ModalContent">
<div class="modal-dialog modal-xxl modal-dialog-centered">
<div class="modal-content" id="ModalContent">
</div>
</div>
</div>
</div>
</div>
@section Script {
<script src="~/assetsclient/js/site.js?ver=@Version.StyleVersion"></script>
<script src="~/assetsclient/js/site.js?ver=@Version.StyleVersion"></script>
<script>
<script>
$(document).ready(function() {
$('.loadingButton').on('click',
function() {
const button = $(this);
const loadingDiv = button.find('.loading');
loadingDiv.show();
});
});
$(document).ready(function () {
$('.loadingButton').on('click', function () {
var button = $(this);
var loadingDiv = button.find('.loading');
loadingDiv.show();
});
});
var hasCompletedDashboardTour = localStorage.getItem('hasCompletedDashboardTour');
if (!hasCompletedDashboardTour) {
introJs().setOptions({
nextLabel: 'بعد',
prevLabel: 'قبل',
doneLabel: 'اتمام',
showBullets: false,
steps: [
{
title: 'خوش آمدید به سامانه گزارشگیر 👋',
intro: 'برای آموزش این صفحه با ما همراه باشید.'
},
{
title: 'عملیات مربوط به مرخصی',
element: document.querySelector('#btnCardLeaveIntro'),
intro: 'برای عملیات دسترسی سریع دکمه‌های مربوط به مرخصی مانند ثبت مرخصی و لیست مرخصی میتوانید از این روش استفاده نمایید.'
}
]
}).start();
localStorage.setItem('hasCompletedDashboardTour', true);
}
</script>
var hasCompletedDashboardTour = localStorage.getItem('hasCompletedDashboardTour');
if (!hasCompletedDashboardTour) {
introJs().setOptions({
nextLabel: 'بعد',
prevLabel: 'قبل',
doneLabel: 'اتمام',
showBullets: false,
steps: [
{
title: 'خوش آمدید به سامانه گزارشگیر 👋',
intro: 'برای آموزش این صفحه با ما همراه باشید.'
},
{
title: 'عملیات مربوط به مرخصی',
element: document.querySelector('#btnCardLeaveIntro'),
intro: 'برای عملیات دسترسی سریع دکمه‌های مربوط به مرخصی مانند ثبت مرخصی و لیست مرخصی میتوانید از این روش استفاده نمایید.'
}
]
}).start();
localStorage.setItem('hasCompletedDashboardTour', true);
}
</script>
}

View File

@@ -2565,4 +2565,12 @@
</Content>-->
</ItemGroup>
<ItemGroup>
<UpToDateCheckInput Remove="Areas\Admin\Pages\Accounts\Account\AccountLeftWork.cshtml" />
</ItemGroup>
<ItemGroup>
<_ContentIncludedByDefault Remove="Areas\Admin\Pages\Accounts\Account\AccountLeftWork.cshtml" />
</ItemGroup>
</Project>

View File

@@ -12,10 +12,10 @@
//"MesbahDb": "Data Source=DESKTOP-NUE119G\\MSNEW;Initial Catalog=Mesbah_db;Integrated Security=True"
//server
"MesbahDb": "Data Source=171.22.24.15;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170][3019]#@ATt;TrustServerCertificate=true;"
//"MesbahDb": "Data Source=171.22.24.15;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170][3019]#@ATt;TrustServerCertificate=true;"
//local
//"MesbahDb": "Data Source=.;Initial Catalog=Mesbah_db;Integrated Security=True;TrustServerCertificate=true;"
"MesbahDb": "Data Source=.;Initial Catalog=Mesbah_db;Integrated Security=True;TrustServerCertificate=true;"
},
"GoogleRecaptchaV3": {
"SiteKey": "6Lfhp_AnAAAAAB79WkrMoHd1k8ir4m8VvfjE7FTH",