public async Task <IActionResult> OnGet() { string searchString = Request.Query["searchText"]; if (String.IsNullOrEmpty(searchString)) { Searched = false; return(Page()); } CurrentUser = await _userManager.GetUserAsync(User); Users = await _userManager.Users .Where(u => u.UserName != null && ( (u.UserName.Contains(searchString)) || (u.Email == searchString) ) ) .OrderBy(u => u.UserName) .Take(25) .ToArrayAsync(); var userSubscriptions = await _userSubscriptionManager.FindAllByAuthorAsync(CurrentUser); SubscribedUsers = userSubscriptions .Select(s => s.User) .ToArray(); SearchString = searchString; Searched = true; return(Page()); }
public async Task <IActionResult> HandShake() { var user = await _userManager.GetUserAsync(User); var asset = await _assetManager.FindByIdAsync(user.NextAssetId); var aggregators = await _aggregatorManager.FindByAuthorAsync(user); var userSubscriptions = await _userSubscriptionManager.FindAllByAuthorAsync(user); var aggregatorSubscriptions = await _aggregatorSubscriptionManager.FindAllByAuthorAsync(user); var aggregatorSubscriptionCounts = new List <Int32>(); // retrieve subscription count for each aggregator foreach (var aggregator in aggregators) { var aggregatorSubscriptionCount = await _aggregatorSubscriptionManager.GetSubscriberCountAsync(aggregator); aggregatorSubscriptionCounts.Add(aggregatorSubscriptionCount); } // reserve new asset when // * user has no reserved asset // * user has a used asset if (user.NextAssetId == 0 || (asset != null && asset.Used)) { // when reserving a new asset fails, error out if (!await _assetManager.ReserveAsync(user)) { return(StatusCode(500)); } } return(AtomFeedBuilder.CreateFromTemplate( new HandshakeTemplate(user, aggregators, aggregatorSubscriptionCounts.ToArray(), userSubscriptions, aggregatorSubscriptions) ).ToContentResult()); }