public IHttpActionResult GetFollowedUsers(string username, [FromUri] FollowedUsersBindingModel model) { var loggedUserId = this.User.Identity.GetUserId(); var loggedUser = this.TwitterData.Users.Find(loggedUserId); if (loggedUser == null) { return(this.BadRequest("Invalid session token.")); } if (model == null) { return(this.BadRequest()); } if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var targetUser = this.TwitterData.Users.All() .FirstOrDefault(u => u.UserName == username); if (targetUser == null) { return(this.NotFound()); } var candidateUsers = targetUser.Followers .OrderBy(u => u.Fullname) .AsQueryable(); if (model.StartUserId != null) { candidateUsers = candidateUsers .AsQueryable() .SkipWhile(p => p.Id != model.StartUserId) .Skip(1) .AsQueryable(); } var users = candidateUsers .Take(model.PageSize) .Select(u => ProfileDataPreviewViewModel.Create(u, loggedUser)); return(this.Ok(new { totalUsers = targetUser.Followers.Count, users })); }
public IHttpActionResult GetUserPreviewInfo(string username) { var loggedUserId = this.User.Identity.GetUserId(); var loggedUser = this.TwitterData.Users.Find(loggedUserId); if (loggedUser == null) { return(this.BadRequest("Invalid session token.")); } var targetUser = this.TwitterData.Users.All() .FirstOrDefault(u => u.UserName == username); if (targetUser == null) { return(this.NotFound()); } var targetUserInfo = ProfileDataPreviewViewModel.Create(targetUser, loggedUser); return(this.Ok(targetUserInfo)); }