public async Task <IActionResult> OnGet() { var author = await _userManager.GetUserAsync(User); UnlockedAchievementIds = await _achievementManager.FindAllByAuthorAsync(author); return(Page()); }
public async Task <IActionResult> OnGet(Int64 id) { Console.WriteLine($"/community/assetBrowser/profile/{id}{Request.QueryString}"); ProfileUser = await _userManager.FindByIdAsync($"{id}"); CurrentUser = await _userManager.GetUserAsync(User); // make sure ProfileUser exists if (ProfileUser == null) { return(NotFound()); } Subscribed = await _userSubscriptionManager.FindAsync(CurrentUser, ProfileUser) != null; AchievementIndex = 0; NextAchievementIndex = 3; PreviousAchievementIndex = -1; AssetIndex = 0; NextAssetIndex = 10; PreviousAssetIndex = -1; AggregatorIndex = 0; NextAggregatorIndex = 5; PreviousAggregatorIndex = -1; var requestQuery = Request.Query; if (requestQuery.ContainsKey("achievementIndex") && Int32.TryParse(requestQuery["achievementIndex"], out Int32 achievementIndex)) { AchievementIndex = achievementIndex; NextAchievementIndex = achievementIndex + 3; PreviousAchievementIndex = achievementIndex - 3; } if (requestQuery.ContainsKey("assetIndex") && Int32.TryParse(requestQuery["assetIndex"], out Int32 creationIndex)) { AssetIndex = creationIndex; NextAssetIndex = creationIndex + 10; PreviousAssetIndex = creationIndex - 10; } if (requestQuery.ContainsKey("aggregatorIndex") && Int32.TryParse(requestQuery["aggregatorIndex"], out Int32 sporecastIndex)) { AggregatorIndex = sporecastIndex; NextAggregatorIndex = sporecastIndex + 5; PreviousAggregatorIndex = sporecastIndex - 5; } var unlockedAchievementIds = await _achievementManager.FindAllByAuthorAsync(ProfileUser); UnlockedAchievementCount = unlockedAchievementIds == null ? 0 : unlockedAchievementIds.Length; UnlockedAchievementIds = unlockedAchievementIds? .Reverse() .Skip(AchievementIndex) .Take(3) .ToArray(); var assets = await _assetManager.FindAllByUserIdAsync(ProfileUser.Id); AssetCount = assets == null ? 0 : assets.Length; Assets = assets? .OrderByDescending(a => a.Timestamp) .Skip(AssetIndex) .Take(10) .ToArray(); var aggregators = await _aggregatorManager.FindByAuthorAsync(ProfileUser); AggregatorCount = aggregators == null ? 0 : aggregators.Length; Aggregators = aggregators? .OrderByDescending(a => a.Timestamp) .Skip(AggregatorIndex) .Take(5) .ToArray(); var aggregatorSubscriptions = await _aggregatorSubscriptionManager.FindAllByAuthorAsync(CurrentUser); AggregatorSubscriptions = aggregatorSubscriptions .Select(s => s.AggregatorId) .ToArray(); return(Page()); }