You can get value from Entity framework which can allow null able and you can also perform filtering in your query.
private static IQueryable<EmployeeInformation> ReportFilteringEmployeeInformations(Guid factoryId, Guid departmentId, Guid designationId, string empId,
string empName, Guid sectionId, Guid categoryEmpId, int? CategoryTypeID, Guid categorySalaryID, Guid blockID,string cardNo, PayrollEntities context)
{
var query =
from emp in context.vw_PIS_TblEmployeeGenInfo
join des in context.vw_PIS_TblEmployeeDesignation on emp.GDesignationInfoID equals des.GDesignationInfoID into
des_J
join dept in context.vw_PIS_tblDepartment on emp.GDepartmentID equals dept.GDepartmentID into dept_J
join sec in context.vw_PIS_TblSection on emp.SectionID equals sec.SectionID into sec_J
from des1 in des_J.DefaultIfEmpty()
from dept1 in dept_J.DefaultIfEmpty()
from sec1 in sec_J.DefaultIfEmpty()
select new EmployeeInformation
{
GEmployeeGenInfoID = emp.GEmployeeGenInfoID,
GFactoryID = emp.GFactoryID ?? Guid.Empty,
GDepartmentID = emp.GDepartmentID ?? Guid.Empty,
GDesignationInfoID = emp.GDesignationInfoID ?? Guid.Empty,
GSectionID = emp.SectionID ?? Guid.Empty,
GEmployeeCatID = emp.GEmployeeCatID ?? Guid.Empty,
CategoryEmpID = emp.CategoryEmpID,
GCategorySalaryID = emp.CategorySalaryID ?? Guid.Empty,
BlockID = emp.BlockID ?? Guid.Empty,
StrEmpID = emp.StrEmpID,
StrEmpCardNo = emp.StrEmpCardNo,
StrEmpName = emp.StrEmpName,
dtJoiningDate = emp.dtJoiningDate,
DtConfirmationDate = emp.DtConfirmationDate ?? DateTime.MaxValue,
strDesignationName = des1.StrDesignationName,
strDepartmentName = dept1.StrDepartmentName,
SectionName = sec1.SectionName,
CategoryTypeID = emp.CategoryTypeID,
GSalaryIncrementID = Guid.Empty,
dtIncrementDate = null,
dtEffectiveDate = null
};
/*********************************************************************/
// FILTER / where clause
if (factoryId != Guid.Empty)
query = query.Where(x => x.GFactoryID == factoryId);
if (departmentId != Guid.Empty)
query = query.Where(x => x.GDepartmentID == departmentId);
if (designationId != Guid.Empty)
query = query.Where(x => x.GDesignationInfoID == designationId);
if (!String.IsNullOrEmpty(empId))
query = query.Where(x => x.StrEmpID == empId);
if (!String.IsNullOrEmpty(empName))
query = query.Where(x => x.StrEmpName == empName);
if (sectionId != Guid.Empty)
query = query.Where(x => x.GSectionID == sectionId);
if (categoryEmpId != Guid.Empty)
query = query.Where(x => x.CategoryEmpID == categoryEmpId);
if (categorySalaryID != Guid.Empty)
query = query.Where(x => x.GCategorySalaryID == categorySalaryID);
if (blockID != Guid.Empty)
query = query.Where(x => x.BlockID == blockID);
if (!String.IsNullOrEmpty(cardNo))
query = query.Where(x => x.StrEmpCardNo == cardNo);
if (CategoryTypeID != null && CategoryTypeID != 0)
query = query.Where(x => x.CategoryTypeID == CategoryTypeID);
return query;
}
Comments
Post a Comment