Linq通过一系列过滤器返回一个列表

时间:2014-02-01 19:32:44

标签: c# linq

我想写一个linq查询,它返回一个打开订单列表,然后:

List<Order> GetOpenOrder(string shopId, string codeCustomer)

返回处于打开状态的订单列表:由同一客户的商店打开。 我通过属性OrderCustomer找到了字段CodeCustomer,shopIdOrder的字段。 要检索订单的最新状态,请参阅代理类PxOrder中的属性LastStatus。 要检索状态打开的ID,请参阅PxStatus.OpenStatusId

代理类LastStatus中的属性PXOrder如下:

[Display(ResourceType = typeof(Annotation), Name = "Order_Status")]
public string LastStatus
{
    get
    {
        if (string.IsNullOrEmpty(_lastStatus))
        {
            OrderStatus status = OrderStatus.OrderByDescending(x => x.StatusDate).FirstOrDefault();

            if (status != null)
            {
                string iso639 = CultureInfo.CurrentCulture.TwoLetterISOLanguageName;
                TextLanguage statusLanguage = status.Status.Text.TextLanguage.FirstOrDefault(x => x.Language.Iso639.ToLower() == iso639.ToLower());

                _lastStatus = statusLanguage != null ? statusLanguage.TextLanguageValue : string.Empty;
            }
            else
                _lastStatus = string.Empty;
        }

        return CultureInfo.CurrentCulture.TextInfo.ToTitleCase(_lastStatus.ToLower());
     }
}

在方法GetOpenOrder中,我编写了以下查询:

long openStatusId = new Status().OpenStatusId;

var list = Filter(x => x.ShopId == shopId  && x.OrderCustomer.Any(y => x.OrderCustomer.Any== codeCustomer) && x.LastStatus == ......;
return list.ToList(); 

我的问题是LastStatus的最后一个条件,即如何过滤打开状态。 谢谢你的任何提示。

0 个答案:

没有答案