Files
Backend-Api/CompanyManagment.EFCore/Repository/FileEmployerRepository.cs
2024-07-05 21:36:15 +03:30

160 lines
5.8 KiB
C#

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<long, FileEmployer>, 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<FileEmployerViewModel> 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<FileEmployerViewModel> 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();
}
}