public List <FreightManagement> GetFilteredFreights(DateTime fromDate, DateTime toDate, int deptId, List <int> locationIds, int vehId) { List <FreightManagement> queriedFreights = null; string queryStr = string.Empty; try { queryStr = $@"<And> <Geq> <FieldRef Name='TransportTime' /> <Value IncludeTimeValue='FALSE' Type='DateTime'>{fromDate.ToString(StringConstant.DateFormatForCAML)}</Value> </Geq> <Leq> <FieldRef Name='TransportTime' /> <Value IncludeTimeValue='FALSE' Type='DateTime'>{toDate.ToString(StringConstant.DateFormatForCAML)}</Value> </Leq> </And>"; if (vehId > 0) { queryStr = $@"<And>{queryStr} <And> <Eq> <FieldRef Name='{StringConstant.FreightManagementList.VehicleLookupField}' LookupId='TRUE' /> <Value Type='Lookup'>{vehId}</Value> </Eq> <Eq> <FieldRef Name='{StringConstant.CommonSPListField.ApprovalStatusField}'/> <Value Type='Text'>{StringConstant.ApprovalStatus.Approved}</Value> </Eq> </And> </And>"; } else { queryStr = $@"<And>{queryStr} <And> <Eq> <FieldRef Name='CompanyVehicle' /> <Value Type='Boolean'>1</Value> </Eq> <Eq> <FieldRef Name='{StringConstant.CommonSPListField.ApprovalStatusField}' /> <Value Type='Text'>{ StringConstant.ApprovalStatus.Approved}</Value> </Eq> </And> </And>"; } if (deptId > 0) { queryStr = $@"<And> {queryStr} <Eq> <FieldRef Name='{StringConstant.CommonSPListField.CommonDepartmentField}' LookupId='TRUE' /> <Value Type='Lookup'>{deptId}</Value> </Eq> </And>"; } string locationFilter = CommonHelper.BuildFilterCommonLocation(locationIds); if (!string.IsNullOrEmpty(locationFilter)) { queryStr = $@"<And>{locationFilter}{queryStr}</And>"; } queryStr = string.Format(" <Where>{0}</Where>", queryStr); queriedFreights = GetByQuery(queryStr); } catch { } return(queriedFreights); }