示例#1
0
 public IHttpActionResult GetAll(UserSortType sort = UserSortType.Id)
 {
     switch (sort)
     {
         case UserSortType.Id:
             return this.Ok(Context.Clients.ToList().Select(i => ClientConverter.ToDto(i)));
         case UserSortType.Name:
             return this.Ok(Context.Clients.ToList().Select(i => ClientConverter.ToDto(i)).OrderBy(i => i.Name));
         default:
             return this.Ok(Context.Clients);
     }
 }
示例#2
0
 /// <summary>
 /// いろいろなソートをする
 /// </summary>
 /// <param name="type">ソートの種類</param>
 /// <returns></returns>
 public IEnumerable <User> SortWith(UserSortType type)
 {
     if (type == UserSortType.Alphabet)
     {
         return(SortWithAlphabet());
     }
     else if (type == UserSortType.Count)
     {
         return(SortWithCount());
     }
     else
     {
         return(CreateUserList());
     }
 }
示例#3
0
 public IHttpActionResult GetAll(UserSortType sort = UserSortType.Id)
 {
     switch (sort)
     {
         case UserSortType.Id:
             return this.Ok(Context.Users.OrderBy(i => i.Id));
         case UserSortType.Name:
             return this.Ok(Context.Users.OrderBy(i => i.Name));
         case UserSortType.Priority:
             return this.Ok(Context.Users.OrderBy(i => i.MemberPriority));
         case UserSortType.Memberage:
             return this.Ok(Context.Users.OrderByDescending(i => i.MemberAge));
         default:
             return this.Ok(Context.Users);
     }
 }
示例#4
0
        public ActionResult <List <ProfileUser> > GetUsers(int pageNumber, int pageSize, UserSortType sortType)
        {
            try
            {
                var result = _db.Users
                             .Include(f => f.FollowedUsers)
                             .Include(f => f.FollowsUsers)
                             .Select(u => new ProfileUser
                {
                    Id          = u.Id,
                    FirstName   = u.FirstName,
                    LastName    = u.LastName,
                    Email       = u.Email,
                    ImgUrl      = u.ImgUrl,
                    City        = u.City,
                    Country     = u.Country,
                    DateOfBirth = u.DateOfBirth,
                    Gender      = u.Gender,
                    Followed    = u.FollowedUsers.Count(),
                    Follows     = u.FollowsUsers.Count()
                }).AsNoTracking();

                switch (sortType)
                {
                case UserSortType.POPULAR_ASCENDING:
                    result = result.OrderBy(p => p.Follows);
                    break;

                case UserSortType.POPULAR_DESCENDING:
                    result = result.OrderByDescending(p => p.Follows);
                    break;
                }

                result = result
                         .Skip(pageNumber * pageSize)
                         .Take(pageSize);
                return(result.ToList());
            }catch (Exception ex)
            {
                return(StatusCode(500, $"Internal server error {ex}"));
            }
        }