public List<VehicleOnTaskDetailDto> GetVehicleOnTaskDetailFinished(VotFilterRequest filterRequest)
{
using VehicleDeliveryContext context = new VehicleDeliveryContext();
var result = (from v in context.VehiclesOnTask
join d in context.Departments on v.DepartmentId equals d.Id
join dr in context.Drivers on v.DriverId equals dr.Id
join vehicle in context.Vehicles on v.VehicleId equals vehicle.Id
where v.IsDeleted != true
where v.IsFinished == true
orderby v.GivenDate descending
select new VehicleOnTaskDetailDto{
VehicleOnTaskId = v.Id,
VehiclePlate = vehicle.Plate,
VehicleId = v.VehicleId,
DriverName = $"{dr.Name} {dr.Surname} - {dr.Mission}",
DepartmentName = d.Name,
TaskDefinition = v.TaskDefinition,
AuthorizedPerson = v.AuthorizedPerson,
Address = v.Address,
GivenDate = v.GivenDate,
ReturnDate = v.ReturnDate
}).ToList();
return result;
}
我想根据VotFilterRequest附带的DateType筛选器添加2行代码,如下所示:
if (filterRequest.DateType == "GivenDate")
{
where filterRequest.FirstDate <= v.GivenDate
where filterRequest.LastDate >= v.GivenDate
}
else
{
where filterRequest.FirstDate <= v.ReturnDate
where filterRequest.LastDate >= v.ReturnDate
}
我知道您不能这样做,但我也不想重复我的代码.有没有办法在短时间内做到这一点?谢谢你的问候.
注意:为了清楚起见,我想使用LINQ查询语法,而不是方法语法.