using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using PagedList; using Newtonsoft.Json; using System.Collections; // api/adminUser //[ezAuthorize(Roles = "admin")]//群組:* [ezAuthorize] public class adminUserController : ApiController { private Model.ezEntities _db = new Model.ezEntities(); // GET api/ public IEnumerable Get() { var list = _db.admins.ToList(); if (list == null) throw new HttpResponseException(HttpStatusCode.NotFound); return list; } public IEnumerable Get(int page, int pageSize = 10, string sortBy="", bool sortDesc=false) { var list = _db.admins.OrderBy(o=>o.num).ToPagedList(page, pageSize); if (list == null) throw new HttpResponseException(HttpStatusCode.NotFound); return list; } // GET api//5 public Model.admin Get(int id) { var item = _db.admins.Where(q => q.num == id).FirstOrDefault(); //if (item == null) throw new HttpResponseException(HttpStatusCode.NotFound); return item; } // POST api/ public void Post([FromBody] Model.admin item) { } // PUT api//5 public void Put(int id, [FromBody] Model.admin item) { } // DELETE api//5 public void Delete(int id) { var prod = _db.admins.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料 if (prod != null) { _db.admins.Remove(prod); _db.SaveChanges();//執行 } } [HttpGet] [Route("api/adminUser/count")] public int Count() { var count = _db.admins.Count(); return count; } [HttpPost] [Route("api/adminUser/GetList")] public IHttpActionResult GetList([FromBody] Model.ViewModel.admin q, int page, int pageSize = 10, string sortBy = "", bool sortDesc = false) { var qry = _db.admins.AsEnumerable(); if (!string.IsNullOrEmpty(q.u_id)) qry = qry.Where(o => o.u_id.Contains(q.u_id)); if (!string.IsNullOrEmpty(q.u_name)) qry = qry.Where(o => o.u_name.Contains(q.u_name)); if (!string.IsNullOrEmpty(q.power)) qry = qry.Where(o => o.power == q.power); if(q.removeExist.HasValue && q.removeExist.Value) { if (q.num.HasValue && q.num.Value > 0) { qry = qry.Where(o => (!(from b in _db.members.AsEnumerable() select b.admin_num) .Contains(o.num)) || o.num == Convert.ToInt32(q.num.Value)); } else { qry = qry.Where(o => (!(from b in _db.members.AsEnumerable() select b.admin_num) .Contains(o.num))); } } if (sortBy.Equals("u_id")) { if (sortDesc) qry = qry.OrderByDescending(o => o.u_id); else qry = qry.OrderBy(o => o.u_id); } else qry = qry.OrderByDescending(o => o.num); var ret = new { list = qry.ToPagedList(page, pageSize).Select(x => new { num = x.num, u_id = x.u_id, u_name = x.u_name, power = x.power, }), count = qry.Count() }; if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound); return Ok(ret); } }