//แสดงรายการสมาชิก public GetmemberModel getmamber(MemberFilterOption filterOption) { try { var item = this.MembersItem.Select(m => new getmamber { Id = m.Id, email = m.email, firstname = m.firstname, lastname = m.lastname, position = m.position, role = m.role, updated = m.updated } ).ToArray(); var totalItem = item.Length; var memberitems = new GetmemberModel { items = item.Skip((filterOption.startPage - 1) * filterOption.limitPage) .Take(filterOption.limitPage) .ToArray(), TotalItems = item.Count() }; return(memberitems); } catch (Exception ex) { throw ex.GetError(); } }
public GetMemberModel GetMembers([FromUri] MemberFilterOption filters) { if (ModelState.IsValid) { return(this.memberService.GetMembers(filters)); } throw new HttpResponseException(Request.CreateResponse( HttpStatusCode.BadRequest, new { Message = ModelState.GetErrorModelState() } )); }
public GetMemberModel GetMembers(MemberFilterOption filters) { if (!string.IsNullOrEmpty(filters.searchType) && filters.searchText.Equals("updated")) { var paramItem = HttpContext.Current.Request.Params; var fromDate = paramItem.Get("searchText[from]").Replace(" GMT+0700 (Indochina Time)", ""); var toDate = paramItem.Get("searchText[to]").Replace(" GMT+0700 (Indochina Time)", ""); filters.searchText = $"{fromDate},{toDate}"; } var items = this.db.Members.Select(m => new GetMember { id = m.id, email = m.email, firstname = m.firstname, lastname = m.lastname, position = m.position, role = m.role, updated = m.updated }) .OrderByDescending(m => m.updated); var memberItems = new GetMemberModel { items = items .Skip((filters.startPage - 1) * filters.limitPage) .Take(filters.limitPage) .ToArray(), totalItems = items.Count() }; if (!string.IsNullOrEmpty(filters.searchType) && !string.IsNullOrEmpty(filters.searchText)) { string searchText = filters.searchText; string searchType = filters.searchType; IEnumerable <GetMember> searchItem = new GetMember[] { }; switch (searchType) { case "updated": var searchTexts = searchText.Split(','); DateTime FromDate = DateTime.Parse(searchTexts[0]); DateTime ToDate = DateTime.Parse(searchTexts[1]); searchItem = from m in items where m.updated >= FromDate && m.updated <= ToDate select m; break; case "role": searchItem = from m in items where Convert.ToInt16(m.GetType() .GetProperty(filters.searchType) .GetValue(m)) == Convert.ToInt16(searchText) select m; break; default: searchItem = from m in items where m.GetType() .GetProperty(filters.searchType) .GetValue(m) .ToString() .ToLower() .Contains(searchText) select m; break; } memberItems.items = searchItem .Skip((filters.startPage - 1) * filters.limitPage) .Take(filters.limitPage) .ToArray(); } return(memberItems); }