Я создаю запрос, который будет иметь различные результаты в зависимости от полученных параметров, и, если возникнет ситуация, создаст фильтр и определенное количество результатов для этой ситуации.Фильтр готов, но не знаю, как установить сумму в этих ситуациях.Ниже приведен запрос:
public IEnumerable<ConeSlab> ConsultarPlacasAcompanhamento(String codigoLaminador, Int16 placasAEnfornar, Boolean placasEnfornadas, Int16 placasDesenfornadas, Boolean placasRejeitadas)
{
try
{
var criteria = DetachedCriteria.For<ConeSlab>()
.CreateAlias("Cone", "C")
.CreateAlias("Slab.SlabPDO", "SP")
.Add(Restrictions.Eq("C.Mill", codigoLaminador))
.Add(Restrictions.IsNotNull("C.IdentBeginDtm"))
.Add(Restrictions.IsNotNull("SP.IdentBeginDtm"));
var ordem = "SP.IdentBeginDtm";
Junction disjunction = Restrictions.Disjunction();
//Identificadas
if (placasAEnfornar > 0)
{
ICriterion criterion = Restrictions.Conjunction()
.Add(Restrictions.IsNotNull("SP.IdentEndDtm"))
.Add(Restrictions.IsNull("SP.ChargeDtm"))
.Add(Restrictions.IsNull("SP.RejectDtm"));
**//How to set here?**
disjunction.Add(criterion);
}
//Enfornadas
if (placasEnfornadas)
{
ICriterion criterion = Restrictions.Conjunction()
.Add(Restrictions.IsNotNull("SP.ChargeDtm"))
.Add(Restrictions.IsNull("SP.DischDtm"))
.Add(Restrictions.IsNull("SP.RejectDtm"));
disjunction.Add(criterion);
}
//Desenfornadas
if (placasDesenfornadas > 0)
{
ICriterion criterion = Restrictions.Conjunction()
.Add(Restrictions.IsNotNull("SP.DischDtm"))
.Add(Restrictions.IsNull("SP.MillDtm"))
.Add(Restrictions.IsNull("SP.RejectDtm"));
**//How to set here?**
disjunction.Add(criterion);
}
//Rejeitadas
if (placasRejeitadas)
criteria.Add(Restrictions.IsNull("SP.RejectDtm"));
criteria.Add(disjunction);
return coneSlabRepository.GetListCriteria(criteria, 300, Order.Desc(ordem));
}
catch (Exception ex)
{
Log.Error(AppStrings.EventNatureProgramacaoSequenciamento, LibStrings.MessageExceptionQuery, ex);
throw new LoggedException(ex.Message);
}
}
Как настроить индивидуальные возвраты?