예제 #1
0
        public async Task <PagedList <FollowerDto> > GetUserFollowers(FollowerParams followerParams)
        {
            var users     = _context.Users.OrderBy(u => u.UserName).AsQueryable();
            var followers = _context.UserFollowings.AsQueryable();

            if (followerParams.Predicate == "followed")
            {
                followers = followers.Where(follow => follow.ObserverId == followerParams.UserId);
                users     = followers.Select(follow => follow.Observer);
            }

            if (followerParams.Predicate == "followedBy")
            {
                followers = followers.Where(follow => follow.TargetId == followerParams.UserId);
                users     = followers.Select(follow => follow.Target);
            }

            var followedUsers = users.Select(user => new FollowerDto {
                Username = user.UserName,
                Age      = user.DateOfBirth.CalculateAge(),
                PhotoUrl = user.Photos.FirstOrDefault(p => p.isMain).Url,
                City     = user.City,
                Id       = user.Id
            });

            return(await PagedList <FollowerDto> .CreateAsync(followedUsers, followerParams.PageNumber, followerParams.PageSize));
        }
예제 #2
0
    public override void _Ready()
    {
        base._Ready();

        _params = ID2Params[ObjectID.ToString()];

        _sprite        = GetNode <AnimatedSprite>("FollowCreature/AnimatedSprite");
        _right_checker = GetNode <Area2D>("FollowCreature/RightChecker");
        _left_checker  = GetNode <Area2D>("FollowCreature/LeftChecker");

        GetNode <Area2D>("FollowCreature/Area2D").Connect("body_entered", this, "_on_Area2D_body_entered");
        GetNode <Area2D>("FollowCreature/Area2D").Connect("body_exited", this, "_on_Area2D_body_exited");

        _sprite.Animation = _params.name;
        OrganicEnemy      = _params.organic_enemy;
    }
예제 #3
0
 static FollowerCreature()
 {
     ID2Params           = new Dictionary <string, FollowerParams>();
     ID2Params["(3, 5)"] = new FollowerParams(name: "YellowDog", speed: 45f, horizontal: true, organic_enemy: false, deadly: false);
     ID2Params["(4, 1)"] = new FollowerParams(name: "RedFollowBall", speed: 60f, horizontal: false, organic_enemy: true, deadly: true);
 }
예제 #4
0
        public async Task <ActionResult <IEnumerable <FollowerDto> > > GetUserFollows([FromQuery] FollowerParams followerParams)
        {
            followerParams.UserId = User.GetUserId();
            var users = await _unitOfWork.FollowRepository.GetUserFollowers(followerParams);

            Response.AddPaginationHeader(users.CurrentPage, users.PageSize, users.TotalCount, users.TotalPages);

            return(Ok(users));
        }