/// <summary> /// Return a list of users to complete table /// </summary> /// <param name="draw">Draw order. Client send a draw id in request to keep track of asyncron response</param> /// <param name="start">Start from this item</param> /// <param name="length">Take a list with "lenght" (if exists) objects inside.</param> /// <returns>Returns json for datatable with users</returns> #warning "sortColumn and sortDirection will not work"; public JsonResult JsonTableCustomerFill(int draw, int start, int length, [FromQuery] string sortColumn = "-1", [FromQuery] string sortDirection = "asc") { const int TOTAL_ROWS = 999; if (length == -1) { length = TOTAL_ROWS; } string curentUser = User.Identity.Name; List <OrderInfo> orders = Orders(Search, curentUser); //order list switch (int.Parse(sortColumn)) { case -1: //sort by first column goto OrderID; case 0: //OrderID column OrderID: if (sortDirection == "asc") { orders = orders.OrderBy(x => x.OrderID).ToList(); } else { orders = orders.OrderByDescending(x => x.OrderID).ToList(); } break; case 1: //OrderDate column if (sortDirection == "asc") { orders = orders.OrderBy(x => x.OrderDate).ToList(); } else { orders = orders.OrderByDescending(x => x.OrderDate).ToList(); } break; case 2: // CompanyName column if (sortDirection == "asc") { orders = orders.OrderBy(x => x.CompanyName).ToList(); } else { orders = orders.OrderByDescending(x => x.CompanyName).ToList(); } break; case 3: // ShipperName column if (sortDirection == "asc") { orders = orders.OrderBy(x => x.ShipperName).ToList(); } else { orders = orders.OrderByDescending(x => x.ShipperName).ToList(); } break; } //objet that whill be sent to client JsonDataTableOrderList dataTableData = new JsonDataTableOrderList() { draw = draw, recordsTotal = db.Customers.Where(c => c.ContactName == curentUser).Count(), data = new List <OrderInfo>(), recordsFiltered = orders.Count(), //need to be below data(ref recordsFiltered) //aLengthMenu = length, }; foreach (var itemOderInfo in orders.Skip(start).Take(length)) { OrderInfo orderInfo = new OrderInfo { OrderID = itemOderInfo.OrderID, OrderDate = itemOderInfo.OrderDate, CompanyName = itemOderInfo.CompanyName, ShipperName = itemOderInfo.ShipperName }; dataTableData.data.Add(orderInfo); } //return Json(dataTableData, JsonRequestBehavior.AllowGet); return(Json(dataTableData)); }
/// <summary> /// Return a list of users to complete table /// </summary> /// <param name="draw">Draw order. Client send a draw id in request to keep track of asyncron response</param> /// <param name="start">Start from this item</param> /// <param name="length">Take a list with "lenght" (if exists) objects inside.</param> /// <returns>Returns json for datatable with users</returns> public JsonResult JsonTableAdminFill(int draw, int start, int length) { const int TOTAL_ROWS = 999; int sortColumn = -1; string sortDirection = "asc"; if (length == -1) { length = TOTAL_ROWS; } string search = Request.QueryString["search[value]"] ?? ""; // note: we only sort one column at a time if (Request.QueryString["order[0][column]"] != null) { sortColumn = int.Parse(Request.QueryString["order[0][column]"]); } if (Request.QueryString["order[0][dir]"] != null) { sortDirection = Request.QueryString["order[0][dir]"]; } List <OrderInfo> orders = Orders(Search); //order list switch (sortColumn) { case -1: //sort by first column goto OrderID; case 0: //OrderID column OrderID: if (sortDirection == "asc") { orders = orders.OrderBy(x => x.OrderID).ToList(); } else { orders = orders.OrderByDescending(x => x.OrderID).ToList(); } break; case 1: //OrderDate column if (sortDirection == "asc") { orders = orders.OrderBy(x => x.OrderDate).ToList(); } else { orders = orders.OrderByDescending(x => x.OrderDate).ToList(); } break; case 2: // CompanyName column if (sortDirection == "asc") { orders = orders.OrderBy(x => x.CompanyName).ToList(); } else { orders = orders.OrderByDescending(x => x.CompanyName).ToList(); } break; case 3: // ShipperName column if (sortDirection == "asc") { orders = orders.OrderBy(x => x.ShipperName).ToList(); } else { orders = orders.OrderByDescending(x => x.ShipperName).ToList(); } break; } //objet that whill be sent to client JsonDataTableOrderList dataTableData = new JsonDataTableOrderList() { draw = draw, recordsTotal = db.Orders.Count(), data = new List <OrderInfo>(), recordsFiltered = orders.Count(), //need to be below data(ref recordsFiltered) //aLengthMenu = length, }; foreach (var itemOderInfo in orders.Skip(start).Take(length)) { OrderInfo orderInfo = new OrderInfo(); orderInfo.OrderID = itemOderInfo.OrderID; orderInfo.OrderDate = itemOderInfo.OrderDate; orderInfo.CompanyName = itemOderInfo.CompanyName; orderInfo.ShipperName = itemOderInfo.ShipperName; dataTableData.data.Add(orderInfo); } return(Json(dataTableData, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Return a list of users to complete table /// </summary> /// <param name="draw">Draw order. Client send a draw id in request to keep track of asyncron response</param> /// <param name="start">Start from this item</param> /// <param name="length">Take a list with "lenght" (if exists) objects inside.</param> /// <returns>Returns json for datatable with users</returns> #warning "sortColumn and sortDirection will not work"; public JsonResult JsonTableFill(int draw, int start, int length, [FromQuery] string sortColumn = "-1", [FromQuery] string sortDirection = "asc") { const int TOTAL_ROWS = 999; //int sortColumn = -1; //string sortDirection = "asc"; if (length == -1) { length = TOTAL_ROWS; } string curentUser = User.Identity.Name; int employeerId = db.Employees.Where(e => e.FirstName + e.LastName == curentUser).Select(e => e.EmployeeID).FirstOrDefault(); List <OrderInfo> orders = Orders(Search, employeerId); //order list switch (int.Parse(sortColumn)) { case -1: //sort by first column goto OrderID; case 0: //OrderID column OrderID: if (sortDirection == "asc") { orders = orders.OrderBy(x => x.OrderID).ToList(); } else { orders = orders.OrderByDescending(x => x.OrderID).ToList(); } break; case 1: //OrderDate column if (sortDirection == "asc") { orders = orders.OrderBy(x => x.OrderDate).ToList(); } else { orders = orders.OrderByDescending(x => x.OrderDate).ToList(); } break; case 2: // CompanyName column if (sortDirection == "asc") { orders = orders.OrderBy(x => x.CompanyName).ToList(); } else { orders = orders.OrderByDescending(x => x.CompanyName).ToList(); } break; case 3: // ShipperName column if (sortDirection == "asc") { orders = orders.OrderBy(x => x.ShipperName).ToList(); } else { orders = orders.OrderByDescending(x => x.ShipperName).ToList(); } break; } //object that will be sent to client JsonDataTableOrderList dataTableData = new JsonDataTableOrderList() { draw = draw, recordsTotal = db.Orders.Where(o => o.EmployeeID == employeerId).Count(), data = new List <OrderInfo>(), recordsFiltered = orders.Count(), //need to be below data(ref recordsFiltered) //aLengthMenu = length, }; foreach (var itemOderInfo in orders.Skip(start).Take(length)) { OrderInfo orderInfo = new OrderInfo { OrderID = itemOderInfo.OrderID, OrderDate = itemOderInfo.OrderDate, CompanyName = itemOderInfo.CompanyName, ShipperName = itemOderInfo.ShipperName }; dataTableData.data.Add(orderInfo); } return(Json(dataTableData)); }