namespace WebApplication61.Controllers
{
public class OrderController : ApiController
{
// GET: api/Order
public object Get()
{
var queryString = System.Web.HttpContext.Current.Request.QueryString;
int skip = Convert.ToInt32(queryString["$skip"]); //paging
int take = Convert.ToInt32(queryString["$top"]);
string filter = queryString["$filter"]; // filtering
string sort = queryString["$orderby"]; // sorting // grouping
var data = OrdersDetails.GetAllRecords();
List<OrdersDetails> Datae = new List<OrdersDetails>();
List<OrdersDetails> Datase = new List<OrdersDetails>();
if (sort != null) //Sorting
{
switch (sort) // grouping and sorting is handled same here
{
case "OrderID":
if (sort.Substring(sort.IndexOf(' ') + 1) != null)
data = data.OrderByDescending(x => x.OrderID).ToList();
else
data = data.OrderBy(x => x.OrderID).ToList();
break;
case "CustomerID":
if (sort.Substring(sort.IndexOf(' ') + 1) != null)
data = data.OrderByDescending(x => x.CustomerID).ToList();
else
data = data.OrderBy(x => x.CustomerID).ToList();
break;
case "ShipCity":
if (sort.Substring(sort.IndexOf(' ') + 1) != null)
data = data.OrderByDescending(x => x.ShipCity).ToList();
else
data = data.OrderBy(x => x.ShipCity).ToList();
break;
case "ShipCountry":
if (sort.Substring(sort.IndexOf(' ') + 1) != null)
data = data.OrderByDescending(x => x.ShipCountry).ToList();
else
data = data.OrderBy(x => x.ShipCountry).ToList();
break;
}
}
return new
{
Items = data.Skip(skip).Take(take),
Count = data.Count()
// return order;
};
}
}
} |