From 596e21b712f71cbf58e77e05490b497989669485 Mon Sep 17 00:00:00 2001 From: SamSys Date: Tue, 14 Oct 2025 04:21:50 +0330 Subject: [PATCH] craetejobs modal front --- .../IClassificationGroupRepository.cs | 8 + Company.Domain/JobAgg/IJobRepository.cs | 7 + .../IClassificationSchemeApplication.cs | 7 + .../Job/IJobApplication.cs | 7 + .../ClassificationSchemeApplication.cs | 5 + .../JobApplication.cs | 6 + .../ClassificationGroupRepository.cs | 23 ++ .../Repository/JobRepository.cs | 27 ++ .../Workshops/ClassificationScheme.cshtml.cs | 38 +- .../ClassificationGroupJobsTab.cshtml | 4 +- .../CreateOrEditGroupJobs.cshtml | 338 +++++++++++++++--- 11 files changed, 423 insertions(+), 47 deletions(-) diff --git a/Company.Domain/ClassificationSchemeAgg/IClassificationGroupRepository.cs b/Company.Domain/ClassificationSchemeAgg/IClassificationGroupRepository.cs index ffbe0e32..045459a0 100644 --- a/Company.Domain/ClassificationSchemeAgg/IClassificationGroupRepository.cs +++ b/Company.Domain/ClassificationSchemeAgg/IClassificationGroupRepository.cs @@ -14,6 +14,14 @@ public interface IClassificationGroupRepository : IRepository Task> GetGroupAndJobs(long schemeId); + + /// + /// دریافت مشاغل گروه توسط آی دی گروه + /// + /// + /// + Task> GetGroupJobs(long groupId); + /// /// ایجاد گروه های بیست گانه /// diff --git a/Company.Domain/JobAgg/IJobRepository.cs b/Company.Domain/JobAgg/IJobRepository.cs index 75e9dfc7..69514cdb 100644 --- a/Company.Domain/JobAgg/IJobRepository.cs +++ b/Company.Domain/JobAgg/IJobRepository.cs @@ -11,6 +11,13 @@ public interface IJobRepository : IRepository EditJob GetDetails(long id); List Search(JobSearchModel searchModel); List SearchJobForMain(JobSearchModel searchModel); + + /// + /// جستجوس مشاغل + /// + /// + /// + Task> JobSearchSelect(string searchtText); // Task> GetJobListByText(string searchtText); List GetJobListByText(string searchtText); List GetJobListByWorkshopId(long workshopId); diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/IClassificationSchemeApplication.cs b/CompanyManagment.App.Contracts/ClassificationScheme/IClassificationSchemeApplication.cs index e0415eba..99240e56 100644 --- a/CompanyManagment.App.Contracts/ClassificationScheme/IClassificationSchemeApplication.cs +++ b/CompanyManagment.App.Contracts/ClassificationScheme/IClassificationSchemeApplication.cs @@ -48,6 +48,13 @@ public interface IClassificationSchemeApplication Task> GetGroupAndJobs(long schemeId); + /// + /// دریافت مشاغل گروه توسط آی دی گروه + /// + /// + /// + Task> GetGroupJobs(long groupId); + /// /// ایجاد مشاغل گروه /// diff --git a/CompanyManagment.App.Contracts/Job/IJobApplication.cs b/CompanyManagment.App.Contracts/Job/IJobApplication.cs index 23c98fff..4d4379cf 100644 --- a/CompanyManagment.App.Contracts/Job/IJobApplication.cs +++ b/CompanyManagment.App.Contracts/Job/IJobApplication.cs @@ -13,6 +13,13 @@ public interface IJobApplication List Search(JobSearchModel searchModel); List SearchJobForMain(JobSearchModel searchModel); //Task> GetJobListByText(string searchtText); + + /// + /// جستجوی مشاغل برای سلکت تو + /// + /// + /// + Task> JobSearchSelect(string searchtText); List GetJobListByText(string searchtText); List GetJobListByWorkshopId(long workshopId); List GetJobListByTextAndWorkshopId(string textSearch, long workshopId); diff --git a/CompanyManagment.Application/ClassificationSchemeApplication.cs b/CompanyManagment.Application/ClassificationSchemeApplication.cs index 64f5f27e..e6aa8e73 100644 --- a/CompanyManagment.Application/ClassificationSchemeApplication.cs +++ b/CompanyManagment.Application/ClassificationSchemeApplication.cs @@ -115,6 +115,11 @@ public class ClassificationSchemeApplication : IClassificationSchemeApplication return await _classificationGroupRepository.GetGroupAndJobs(schemeId); } + public async Task> GetGroupJobs(long groupId) + { + return await _classificationGroupRepository.GetGroupJobs(groupId); + } + public Task CreateGroupJobs(ClassificationGroupAndJobModel command) { throw new System.NotImplementedException(); diff --git a/CompanyManagment.Application/JobApplication.cs b/CompanyManagment.Application/JobApplication.cs index c48292ad..c10c76fa 100644 --- a/CompanyManagment.Application/JobApplication.cs +++ b/CompanyManagment.Application/JobApplication.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Threading.Tasks; using _0_Framework.Application; using Company.Domain.JobAgg; using CompanyManagment.App.Contracts.Job; @@ -66,6 +67,11 @@ public class JobApplication : IJobApplication return _jobRepository.SearchJobForMain(searchModel); } + public async Task> JobSearchSelect(string searchtText) + { + return await _jobRepository.JobSearchSelect(searchtText); + } + //public Task> GetJobListByText(string searchtText) //{ // return _jobRepository.GetJobListByText(searchtText); diff --git a/CompanyManagment.EFCore/Repository/ClassificationGroupRepository.cs b/CompanyManagment.EFCore/Repository/ClassificationGroupRepository.cs index 3dadaa41..596d045c 100644 --- a/CompanyManagment.EFCore/Repository/ClassificationGroupRepository.cs +++ b/CompanyManagment.EFCore/Repository/ClassificationGroupRepository.cs @@ -46,6 +46,29 @@ public class ClassificationGroupRepository : RepositoryBasex.GroupNoInt).ToListAsync(); } + /// + /// دریافت مشاغل گروه توسط آی دی گروه + /// + /// + /// + public async Task> GetGroupJobs(long groupId) + { + + return await _context.ClassificationGroupJobs + .Where(x => x.id == groupId).Select(jobs => new EditClassificationGroupJob() + { + Id = jobs.id, + JobId = jobs.JobId, + JobName = jobs.JobName, + JobCode = jobs.JobCode, + ClassificationGroupId = jobs.ClassificationGroupId, + GroupNo = jobs.GroupNo, + + }).ToListAsync(); + + + } + /// /// ایجاد گروه های بیست گانه /// diff --git a/CompanyManagment.EFCore/Repository/JobRepository.cs b/CompanyManagment.EFCore/Repository/JobRepository.cs index db38dd80..e11906f3 100644 --- a/CompanyManagment.EFCore/Repository/JobRepository.cs +++ b/CompanyManagment.EFCore/Repository/JobRepository.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using _0_Framework.InfraStructure; using Company.Domain.JobAgg; using CompanyManagment.App.Contracts.Job; @@ -83,6 +84,32 @@ public class JobRepository: RepositoryBase, IJobRepository } + public async Task> JobSearchSelect(string searchtText) + { + + if (!string.IsNullOrWhiteSpace(searchtText)) + { + var query =_context.Jobs.Select(x => new JobViewModel + { + Id = x.id, + JobName = x.JobName, + JobCode = x.JobCode + }); + query = query.Where(x => x.JobName.Contains(searchtText)); + var jobViewModelList =await query.Take(100).Select(x => new JobViewModel + { + Id = x.Id, + JobName = x.JobName, + JobCode = x.JobCode + }).ToListAsync(); + return jobViewModelList; + } + else + { + return new List(); + } + } + // public async Task> GetJobListByText(string searchtText) public List GetJobListByText(string searchtText) { diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml.cs index 0b518c45..b67733f9 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml.cs @@ -1,4 +1,5 @@ using CompanyManagment.App.Contracts.ClassificationScheme; +using CompanyManagment.App.Contracts.Job; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; @@ -10,11 +11,12 @@ namespace ServiceHost.Areas.Admin.Pages.Company.Workshops; public class ClassificationSchemeModel : PageModel { private readonly IClassificationSchemeApplication _classificationSchemeApplication; + private readonly IJobApplication _jobApplication; - - public ClassificationSchemeModel(IClassificationSchemeApplication classificationSchemeApplication) + public ClassificationSchemeModel(IClassificationSchemeApplication classificationSchemeApplication, IJobApplication jobApplication) { _classificationSchemeApplication = classificationSchemeApplication; + _jobApplication = jobApplication; } /// @@ -116,14 +118,42 @@ public class ClassificationSchemeModel : PageModel /// لود مدال ایجاد یا ویرایش مشاغل گروه /// /// + /// /// - public IActionResult OnGetCreateOrEditJobs(long groupId) + public IActionResult OnGetCreateOrEditJobs(long groupId, string groupNo) { + var model = new ClassificationGroupAndJobModel(); + model.GroupId = groupId; + model.GroupNo = groupNo; + model.EditClassificationGroupJob = + _classificationSchemeApplication.GetGroupJobs(groupId).GetAwaiter().GetResult(); - return Partial("_ClassificationPartials/ClassificationGroupJobsTab"); + return Partial("_ClassificationPartials/CreateOrEditGroupJobs", model); } + /// + /// جستجو شغل + /// + /// + /// + public IActionResult OnPostJobByTextSearch(string textSearch) + { + var jobs = _jobApplication.JobSearchSelect(textSearch).GetAwaiter().GetResult(); + jobs = jobs.OrderBy(x => x.JobName.Length).ToList().Select(x => new JobViewModel + { + Id = x.Id, + JobName = x.JobName, + JobCode = x.JobCode, + SearchResultTitle = x.JobName, + SearchResultCode = x.JobCode + }).ToList(); + return new JsonResult(new + { + IsSuccedded = true, + List = jobs + }); + } #endregion diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/ClassificationGroupJobsTab.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/ClassificationGroupJobsTab.cshtml index 27623bc7..956719d2 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/ClassificationGroupJobsTab.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/ClassificationGroupJobsTab.cshtml @@ -77,7 +77,7 @@
- + @if (itemRight.EditClassificationGroupJob.Count < 1) { @@ -128,7 +128,7 @@
- + @if (itemLeft.EditClassificationGroupJob.Count < 1) { diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateOrEditGroupJobs.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateOrEditGroupJobs.cshtml index a591759f..b44665ec 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateOrEditGroupJobs.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/_ClassificationPartials/CreateOrEditGroupJobs.cshtml @@ -1,9 +1,63 @@ @model CompanyManagment.App.Contracts.ClassificationScheme.ClassificationGroupAndJobModel +@Html.AntiForgeryToken() + @{ - int index = 1; + + + + + }