Closed amirhossein-tohidi closed 4 years ago
What's wrong? What's not working for you? What's the original query? How can I reproduce this?
Yes , Its not working for me,My query should change with enum and return a first cache value
if (filter.OrderStep.IsNotNull() && filter.OrderStatus.Any())
query = query.Where(o => filter.OrderStatus.Contains(o.Status));
if (filter.IsCompleted.IsNotNull() && filter.IsCompleted.Value)
query = query.Where(o => o.Status == OrderStatus.Completed || o.Status == OrderStatus.SituationStatusesCompletedBySystem || o.Status == OrderStatus.SituationStatusesCompletedByPetroSadaf);
if (filter.AssignmentSerialNo.IsNotNull())
query = query.Where(o => o.Assignments.Any(a => a.SerialNo == filter.AssignmentSerialNo));
if (filter.FuelTypeList.IsNotNull() && filter.FuelTypeList.Any())
query = query.Where(o => filter.FuelTypeList.Any(ft => ft == o.FuelPackage.Fuel.Type));
if (filter.FromDateTimeOffset.IsNotNull() || filter.ToDateTimeOffset.IsNotNull())
{
switch (filter.FilteredDateEnum)
{
case FilteredDate.ForDate:
if (filter.FromDateTimeOffset.IsNotNull()) query = query.Where(o => o.ForDate >= filter.FromDateTimeOffset);
if (filter.ToDateTimeOffset.IsNotNull()) query = query.Where(o => o.ForDate <= filter.ToDateTimeOffset);
break;
case FilteredDate.AssignmentDate:
if (filter.FromDateTimeOffset.IsNotNull()) query = query.Where(o => o.Assignments.Any(a => a.Date >= filter.FromDateTimeOffset));
if (filter.ToDateTimeOffset.IsNotNull()) query = query.Where(o => o.Assignments.Any(a => a.Date <= filter.ToDateTimeOffset));
break;
case FilteredDate.DeliveryDate:
if (filter.FromDateTimeOffset.IsNotNull()) query = query.Where(o => o.Assignments.Any(a => a.DeliveryDate >= filter.FromDateTimeOffset));
if (filter.ToDateTimeOffset.IsNotNull()) query = query.Where(o => o.Assignments.Any(a => a.DeliveryDate <= filter.ToDateTimeOffset));
break;
case FilteredDate.ReceivedByStationDate:
if (filter.FromDateTimeOffset.IsNotNull()) query = query.Where(o => o.CMRs.Any(a => a.ReceivedDate >= filter.FromDateTimeOffset));
if (filter.ToDateTimeOffset.IsNotNull()) query = query.Where(o => o.CMRs.Any(a => a.ReceivedDate <= filter.ToDateTimeOffset));
break;
}
}
if (!UserResolver.HasAdminRole())
query = query.Where(o => o.Station.StationPersonRoles.Any(owner => owner.Person.UserId == userId &&
(owner.Role == StationRoles.Manager || owner.Role == StationRoles.Owner)));
query = query.OrderByDescending(o => o.ForDate);
var orderLists = query.Select(o => new OrderListDTO
{
Id = o.Id,
Code = o.Code,
Status = o.Status,
StationCode = o.Station.Code,
StationName = o.Station.Name,
IsStatusChanged = o.IsStatusChanged,
Date = o.Date.ToUnixTime(),
ForDate = o.ForDate.ToUnixTime(),
Description = o.Description,
FuelPackage = new FuelPackageDTO
{
Title = o.FuelPackage.Title,
Quantity = o.FuelPackage.Quantity,
Fuel = new FuelDTO
{
Type = o.FuelPackage.Fuel.Type,
Name = o.FuelPackage.Fuel.Name
}
},
Assignment = o.Assignments.Select(a => new AssignmentDTO
{
Id = a.Id,
SerialNo = a.SerialNo,
DeliveryDate = a.DeliveryDate.ToUnixTime(),
Date = a.Date.ToUnixTime(),
Quantity = a.Quantity,
PaymentType = a.PaymentType,
BillAmount = a.BillAmount,
IsConfirmed = a.IsConfirmed,
AssignmentBankBillTotalAmount = a.AssignmentBankBills.Sum(c => c.Amount),
IsMultiPrice = a.IsMultiPrice,
AssignmentAdditionalInformations = Mapper.Map<List<AssignmentAdditionalInformationDTO>>(a.AssignmentAdditionalInformations),
Fuel = new FuelDTO
{
Type = o.FuelPackage.Fuel.Type,
Name = o.FuelPackage.Fuel.Name
}
}).SingleOrDefault(),
CMR = o.CMRs.Select(cmr => new CMRDTO
{
Id = cmr.Id,
SentDate = cmr.SentDate.ToUnixTime(),
ReceivedDate = cmr.ReceivedDate.ToUnixTime(),
IsMultiPrice = cmr.IsMultiPrice,
CMRAdditionalInformations = Mapper.Map<List<CMRAdditionalInformationDTO>>(cmr.CMRAdditionalInformations)
}).SingleOrDefault(),
});
orderLists = pageOptions.ApplyPaging(orderLists);
orderLists = sortOptions.ApplyOrdering(orderLists);
var efcdi = new EFCacheDebugInfo();
var orders = await orderLists.Cacheable(efcdi).ToListAsync();
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related problems.
.NET Core SDK version: 2.2.7 Microsoft.EntityFrameworkCore version: 2.2.6 EFSecondLevelCache.Core version: 2.8.1