//แสดงรายการสมาชิก
 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() }
                                         ));
 }
Ejemplo n.º 3
0
        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);
        }