using PagedList; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Web; using System.Web.Http; // api/pre_order //[ezAuthorize(Roles = "admin")]//群組:* //[ezAuthorize] public class preOrderController: ApiController { private Model.ezEntities _db = new Model.ezEntities(); public preOrderController() { // // TODO: 在這裡新增建構函式邏輯 // } [HttpPost] [Route("api/preOrder/GetPreOrder")] public IHttpActionResult GetPreOrder([FromBody] Model.ViewModel.preOrder pre, int page, int pageSize = 10, string sortBy = "", bool sortDesc = false) { var qry=_db.pre_order.AsQueryable(); if (!string.IsNullOrEmpty(pre.f_name)) { qry = qry.Where(x => _db.followers.Where(y => y.u_name == pre.f_name).Select(y => y.num).ToList().Contains((int)x.f_num)); } sortBy = sortBy ?? string.Empty; var count = qry.Count(); //pageSize = count;//一次取回?? if (pageSize == -1) { pageSize = count; } if (pageSize == 0) pageSize = 10; var ret = new { list = qry.ToPagedList(page, pageSize).Select(x => new { x.num,x.f_num,x.admin_num,x.order_no,x.item_count,x.total_amt,x.reg_time,x.receipt_num,x.act_num, f_name=_db.followers.Where(z=>z.num==x.f_num).Select(z=>z.u_name).FirstOrDefault(), act_name=_db.activities.Where(w=>w.num==x.act_num).Select(w=>w.subject).FirstOrDefault(), }).ToList(), count = count }; if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound); return Ok(ret); } }