using System; using System.Collections.Generic; using System.Linq; using _0_Framework.Application; using _0_Framework.InfraStructure; using Company.Domain.FileEmployerAgg; using CompanyManagment.App.Contracts.FileEmployer; namespace CompanyManagment.EFCore.Repository; public class FileEmployerRepository : RepositoryBase, IFileEmployerRepository { private readonly CompanyContext _context; public DateTime initial = new DateTime(1922, 01, 01, 00, 00, 00, 0000000); public FileEmployerRepository(CompanyContext context) : base(context) { _context = context; } public List GetFileEmployee() { return _context.FileEmployerSet.Where(x => x.IsActive == "true").Select(x => new FileEmployerViewModel() { Id = x.id, FName = x.FName, IsActive = x.IsActive, LName = x.LName, FullName = x.FullName, NationalCode = x.NationalCode, IdNumber = x.IdNumber, NationalId = x.NationalId, RegisterId = x.RegisterId, DateOfBirth = x.DateOfBirth == initial ? "" : x.DateOfBirth.ToFarsi(), }).ToList(); } public EditFileEmployer GetDetails(long id) { return _context.FileEmployerSet.Select(x => new EditFileEmployer() { Id = x.id, FName = x.FName, LName = x.LName, Gender = x.Gender, NationalCode = x.NationalCode, IdNumber = x.IdNumber, RegisterId = x.RegisterId, NationalId = x.NationalId, DateOfBirth = x.DateOfBirth == initial ? "" : x.DateOfBirth.ToFarsi(), Phone = x.Phone, MaritalStatus = x.MaritalStatus, LevelOfEducation = x.LevelOfEducation, FieldOfStudy = x.FieldOfStudy, InsuranceWorkshopCode = x.InsuranceWorkshopCode, RepresentativeFullName = x.RepresentativeFullName, OfficePhone = x.OfficePhone, FullName = x.FName + " " + x.LName, MclsUserName = x.MclsUserName, MclsPassword = x.MclsPassword, EserviceUserName = x.EserviceUserName, EservicePassword = x.EservicePassword, TaxOfficeUserName = x.TaxOfficeUserName, TaxOfficepassword = x.TaxOfficepassword, SanaUserName = x.SanaUserName, SanaPassword = x.SanaPassword, IsLegal = x.IsLegal, IsActive = x.IsActive, RepresentativeId = x.RepresentativeId, }) .FirstOrDefault(x => x.Id == id); } public List Search(FileEmployerSearchModel searchModel) { var query = _context.FileEmployerSet.Select(x => new FileEmployerViewModel() { Id = x.id, FName = x.FName, LName = x.LName, LegalName = x.LegalName, Gender = x.Gender, NationalCode = x.NationalCode, IdNumber = x.IdNumber, RegisterId = x.RegisterId, NationalId = x.NationalId, DateOfBirth = x.DateOfBirth == initial ? "" : x.DateOfBirth.ToFarsi(), Phone = x.Phone, MaritalStatus = x.MaritalStatus, LevelOfEducation = x.LevelOfEducation, FieldOfStudy = x.FieldOfStudy, InsuranceWorkshopCode = x.InsuranceWorkshopCode, RepresentativeFullName = x.RepresentativeFullName, OfficePhone = x.OfficePhone, FullName = x.FullName, MclsUserName = x.MclsUserName, MclsPassword = x.MclsPassword, EserviceUserName = x.EserviceUserName, EservicePassword = x.EservicePassword, TaxOfficeUserName = x.TaxOfficeUserName, TaxOfficepassword = x.TaxOfficepassword, SanaUserName = x.SanaUserName, SanaPassword = x.SanaPassword, IsLegal = x.IsLegal, IsActive = x.IsActive, }); if (!string.IsNullOrWhiteSpace(searchModel.FName)) query = query.Where(x => x.FName.Contains(searchModel.FName)); if (!string.IsNullOrWhiteSpace(searchModel.LName)) query = query.Where(x => x.LName.Contains(searchModel.LName)); if (!string.IsNullOrWhiteSpace(searchModel.NationalCode)) query = query.Where(x => x.NationalCode.Contains(searchModel.NationalCode)); if (!string.IsNullOrWhiteSpace(searchModel.IdNumber)) query = query.Where(x => x.IdNumber.Contains(searchModel.IdNumber)); if (!string.IsNullOrWhiteSpace(searchModel.RegisterId)) query = query.Where(x => x.RegisterId.Contains(searchModel.RegisterId)); if (!string.IsNullOrWhiteSpace(searchModel.NationalId)) query = query.Where(x => x.NationalId.Contains(searchModel.NationalId)); if (searchModel.IsActive == "true") { query = query.Where(x => x.IsActive == "true"); } else if (searchModel.IsActive == "both") { query = query.Where(x => x.IsActive == "false" || x.IsActive == "true"); } else if (searchModel.IsActive == "false") { query = query.Where(x => x.IsActive == "false"); } if (searchModel.IsLegal=="true") { query = query.Where(x => x.IsLegal == "true"); } else if (searchModel.IsLegal == "both") { query = query.Where(x => x.IsLegal == "false" || x.IsLegal == "true"); } else if (searchModel.IsActive == "false") { query = query.Where(x => x.IsLegal == "false"); } return query.OrderByDescending(x => x.Id).ToList(); } }