# How to use OrderViewFilteringInfo?

**URL:** <https://forum.litium.com/t/how-to-use-orderviewfilteringinfo/1383>\
**Category:** Questions\
**Tags:** litium-6\
**Created:** [March 17, 2020, 2:54pm UTC](https://forum.litium.com/t/how-to-use-orderviewfilteringinfo/1383 "2020-03-17T14:54:28Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gonzalo](https://avatars.discourse-cdn.com/v4/letter/g/4bbf92/32.png) [@Gonzalo](https://forum.litium.com/u/Gonzalo)\
**Post date:** [March 17, 2020, 2:54pm UTC](https://forum.litium.com/t/how-to-use-orderviewfilteringinfo/1383/1 "2020-03-17T14:54:28Z")

</div>

Hi

I would like to fetch orders from database but want to Litium’s own OrderViewFilteringInfo, is there a way to filter orders from one customerid, additionalInfo and websiteId?  
maybe using CustomFilter or CustomFilterColumns?

Litium version: 6.2

---

<div class="post-metadata">

**Author:** ![steve.redstorm](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.litium.com/steve.redstorm/32/14_2.png) [@steve.redstorm](https://forum.litium.com/u/steve.redstorm)\
**Post date:** [April 6, 2020, 8:31am UTC](https://forum.litium.com/t/how-to-use-orderviewfilteringinfo/1383/2 "2020-04-06T08:31:21Z")

</div>

If you still need help with this topic you can escalate this to Litium [support](https://support.litium.se/) for help.

---

<div class="post-metadata">

**Author:** ![marten](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.litium.com/marten/32/11_2.png) [@marten](https://forum.litium.com/u/marten)\
**Post date:** [April 8, 2020, 10:51am UTC](https://forum.litium.com/t/how-to-use-orderviewfilteringinfo/1383/3 "2020-04-08T10:51:25Z")

</div>

This sample method is not exactly what you ask for but shows how `OrderViewFilteringInfo` can be used so perhaps you can use it as a starting point to create your query:

```auto
public IHttpActionResult Search([FromBody]OrderSearchModel model)
{
    if (model is null)
    {
        ModelState.AddModelError(string.Empty, "Missing body.");
    }
    
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    if (!_authorizationService.HasOperation(Operations.Function.Sales.Content))
    {
        return Unauthorized();
    }

    var filterInfo = new OrderViewFilteringInfo(
        model.Filter.OrderDateUtc?.From?.ToLocalTime().DateTime ?? DateTime.MinValue,
        model.Filter.OrderDateUtc?.To?.ToLocalTime().DateTime ?? DateTime.MaxValue,
        model.Filter.OrderState ?? -1,
        model.Filter.Text?.Replace('*', '%').Replace('?', '_'),
        (model.Filter.FilterColumns ?? Enum.GetValues(typeof(OrderFilterColumn)).OfType<OrderFilterColumn>()).Select(x => x.ToString()).ToList(),
        null, // orderids
        string.Join(",", model.Filter.PaymentStates ?? new List<short>()), // payment statues
        string.Join(",", model.Filter.DeliveryStates ?? new List<short>()), // deliverystatuses
        model.Filter.WebsiteSystemId ?? Guid.Empty,
        model.Filter.OrderType ?? OrderType.None);

    var pageInfo = new PagingInfo(1, model.Take ?? int.MaxValue, model.Skip.GetValueOrDefault());

    var sortInfo = new OrderViewSortingInfo(
        model.Sort.Direction,
        model.Sort.FieldId);

    QueryInfo queryInfo = new QueryInfo(
        new AdditionalInfo(model.Filter.AdditionalFilterKeys ?? new List<string>()),
        filterInfo,
        pageInfo,
        sortInfo
        );

    var orderViewRows = _module.Orders.GetOrderViewRows(queryInfo, SecurityToken.CurrentSecurityToken);
    var orders = _module.Orders.GetOrders(orderViewRows.Select(x => x.OrderID), SecurityToken.CurrentSecurityToken).ToList();
    var orderCarriers = orders.Select(x => x.GetAsCarrier(true, true, true, true, true, true)).Select(RemoveOrderCarrierProperties).ToList();

    return Ok(new SearchResult<OrderCarrier>
    {
        Total = pageInfo.TotalRecordCount,
        Items = orderCarriers
    });
}

```

Values for the enum `Litium.Web.WebApi.AdminApi.Sales.OrderFilterColumn`:

```auto
public enum OrderFilterColumn
{
    Address1,
    Address2,
    City,
    Country,
    CustomerNumber,
    Email,
    ExternalOrderID,
    FirstName,
    LastName,
    MobilePhone,
    Phone,
    State,
    OrganizationName,
    Zip,
    Title,
    CareOf,
    HouseNumber,
    HouseExtension,
}

```

---

<div class="post-metadata">

**Author:** ![Gonzalo](https://avatars.discourse-cdn.com/v4/letter/g/4bbf92/32.png) [@Gonzalo](https://forum.litium.com/u/Gonzalo)\
**Post date:** [April 8, 2020, 12:41pm UTC](https://forum.litium.com/t/how-to-use-orderviewfilteringinfo/1383/4 "2020-04-08T12:41:02Z")

</div>

```
var orderViewFilteringInfo = new OrderViewFilteringInfo()
		{
			CustomFilter = string.Empty, <-----what kind of customFilter can i use and how
			CustomFilterColumns = new List<string>(),<-----what kind of customFilter can i use and how
			DeliveryStatuses = string.Empty,
			EndDate = dateTime.Now,
			OrderIDs = string.Empty,
			OrderStatus = (short)OrderState.Confirmed,
			PaymentStatuses = string.Empty,
			StartDate = dateTime.AddYears(-5),
			WebSiteID = websiteIds.FirstOrDefault()
		};
	var queryInfo = new QueryInfo(new AdditionalInfo(new List<string>()), orderViewFilteringInfo, new PagingInfo(pageNumber, pageSize), new OrderViewSortingInfo(SortOrder.DESC, OrderViewSortingInfo.OrderBy.OrderDate));

```

For new AdditionalInfo is that the same as an order’s AdditionalInfo. So that i can filter out orders with addtionalInfo?

---

<div class="post-metadata">

**Author:** ![marten](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.litium.com/marten/32/11_2.png) [@marten](https://forum.litium.com/u/marten)\
**Post date:** [April 21, 2020, 2:16pm UTC](https://forum.litium.com/t/how-to-use-orderviewfilteringinfo/1383/6 "2020-04-21T14:16:56Z")

</div>

> CustomFilter = string.Empty, \<-----what kind of customFilter can i use and how

`Customfilter` will search in the fields defined in `CustomFilterColumns` AND in _AdditionalOrderInfo_.

Note from previous code that you should use `Replace('*', '%').Replace('?', '_')` to define correct wildcard values in `Customfilter`.

> CustomFilterColumns = new List(),\<-----what kind of customFilter can i use and how

`CustomFilterColumns` define which order fields to search in, in the previous code sample this was defined with `OrderFilterColumn`

> For new AdditionalInfo is that the same as an order’s AdditionalInfo. So that i can filter out orders with addtionalInfo?

Should work, does it not when you try?

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/litium/original/1X/12eddac3b8b661de1db86af10ac8151b571e6fb9.png) [@system](https://forum.litium.com/u/system)\
**Post date:** [May 19, 2020, 2:16pm UTC](https://forum.litium.com/t/how-to-use-orderviewfilteringinfo/1383/7 "2020-05-19T14:16:56Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
