using System.ComponentModel.DataAnnotations; using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; namespace AyaNova.DataList { public sealed class DataListOptions { public const int MaxPageSize = 1000; public const int DefaultOffset = 0; public const int DefaultLimit = 25; [FromBody] public int? Offset { get; set; } [FromBody] public int? Limit { get; set; } [FromBody, Required] public string DataListKey { get; set; } /* OLD EXAMPLE: {"offset":0,"limit":10,"dataListKey":"CustomerDataList", "listView":"[ {\"fld\":\"customername\",\"sort\":\"+\",\"filter\":{\"items\":[{\"op\":\"=\",\"value\":\"dfdfdf\"},{\"op\":\"=\",\"value\":\"3333\"}],\"any\":true}}, {\"fld\":\"customerphone1\",\"filter\":{\"items\":[{\"op\":\">\",\"value\":\"44444\"}, {\"op\":\"<\",\"value\":\"7777\"}]}}, {\"fld\":\"customeremail\"} {\"fld\":\"customerheadoffice\"}, {\"fld\":\"customertags\",\"sort\":\"+\"}]"} NEW: columns:["PartInventoryTransactionEntryDate","PartPartNumber","PartWarehouseName","PartInventoryTransactionQuantity","PartInventoryTransactionDescription","PartInventoryTransactionSource","PartInventoryBalance"] sortBy:[{"PartInventoryTransactionEntryDate":"-"}],//All sorted columns here as keyvalue pairs value is a string of "+" for ascending "-" for descending filter:[{column:"PartPartNumber",any:true/false,items:[{op: "=",value: "400735"}]}], clientCriteria:"2" //could be anything here that makes sense to the list, in this case an example customer id for customernotedatalist */ [FromBody] public List Columns { get; set; } [FromBody] public Dictionary SortBy { get; set; } [FromBody] public List Filter { get; set; } [FromBody] public string ClientCriteria { get; set; } } public class DataListFilterOption { public string Column { get; set; } public List items { get; set; } public bool Any {get;set;}//means "or" the filter conditions DataListFilterOption() { items = new List(); } } public class DataListColumnFilter { public string op { get; set; } public string value { get; set; } } }