public async Task <IActionResult> Index(string userName, CollectionSort sortOrder = CollectionSort.IdAsc) { //View(await db.Collections.ToListAsync()); User user = null; if (userName != null) { user = await _userManager.FindByNameAsync(userName); } string role = null; if (User.Identity.Name != null) { User user_2 = await _userManager.FindByNameAsync(User.Identity.Name); role = user_2.Role; } if (user != null) { IQueryable <Collection> collections = db.Collections.Include(x => x); ViewData["IdSort"] = sortOrder == CollectionSort.IdAsc ? CollectionSort.IdDesc : CollectionSort.IdAsc; ViewData["NameSort"] = sortOrder == CollectionSort.NameAsc ? CollectionSort.NameDesc : CollectionSort.NameAsc; ViewData["ItemSort"] = sortOrder == CollectionSort.ItemCountAsc ? CollectionSort.ItemCountDesc : CollectionSort.ItemCountAsc; ViewData["TextSort"] = sortOrder == CollectionSort.TextAsc ? CollectionSort.TextDesc : CollectionSort.TextAsc; collections = sortOrder switch { CollectionSort.IdDesc => collections.OrderByDescending(s => s.Id), CollectionSort.NameAsc => collections.OrderBy(s => s.CollectionName), CollectionSort.NameDesc => collections.OrderByDescending(s => s.CollectionName), CollectionSort.ItemCountAsc => collections.OrderBy(s => s.ItemCount), CollectionSort.ItemCountDesc => collections.OrderByDescending(s => s.ItemCount), CollectionSort.TextAsc => collections.OrderBy(s => s.Text), CollectionSort.TextDesc => collections.OrderByDescending(s => s.Text), _ => collections.OrderBy(s => s.Id), }; CollectionsControllerViewModel model = new CollectionsControllerViewModel { UserName = user.UserName, Role_2 = role, Collections = await collections.AsNoTracking().ToListAsync(), }; return(View(model)); } return(NotFound()); }
private async Task GetCollectionAsync(CollectionSort collectionSort) { UIApplication.SharedApplication.NetworkActivityIndicatorVisible = true; try { var result = await client.GetProductsPageAsync(1, collection.CollectionId, collectionSort); this.products = result.Products; TableView.ReloadData(); } catch (NSErrorException ex) { Console.WriteLine("Error fetching products: {0}", ex.Error); } UIApplication.SharedApplication.NetworkActivityIndicatorVisible = false; }
private void GetCollection(CollectionSort collectionSort) { if (collectionTask != null) { collectionTask.Cancel(); } UIApplication.SharedApplication.NetworkActivityIndicatorVisible = true; collectionTask = client.GetProductsPage(1, collection.CollectionId, collectionSort, (products, page, reachedEnd, error) => { UIApplication.SharedApplication.NetworkActivityIndicatorVisible = false; if (error == null && products != null) { this.products = products; TableView.ReloadData(); } else { Console.WriteLine("Error fetching products: {0}", error); } }); }
public async Task SortAsync(string name, CollectionSort sort, CancellationToken cancellationToken = default) { name = FixCollectionName(name); Collection collection; do { collection = await _database.GetCollectionAsync(_context.User.Id, name, cancellationToken); if (collection == null) { await _context.ReplyAsync("collectionNotFound", new { name }); return; } collection.Sort = sort; }while (!await _database.SaveAsync(cancellationToken)); await _context.ReplyAsync("collectionSorted", new { collection, attribute = sort }); }
public Task <ProductsPageResult> GetProductsPageAsync(nuint page, NSNumber collectionId, CollectionSort sortOrder, CancellationToken cancellationToken = default(CancellationToken)) { var tcs = new TaskCompletionSource <ProductsPageResult>(); var urlTask = GetProductsPage(page, collectionId, sortOrder, (data, pageArg, reachedEndArg, error) => HandleCallback(tcs, cancellationToken, new ProductsPageResult { Products = data, Page = pageArg, ReachedEnd = reachedEndArg }, error)); cancellationToken.Register(urlTask.Cancel); return(tcs.Task); }
public static IQueryable <Doujin> OrderBy(this IQueryable <Doujin> queryable, CollectionSort sort, bool descend) { switch (sort) { case CollectionSort.UploadTime: queryable = queryable.OrderBy(d => d.UploadTime); break; case CollectionSort.ProcessTime: queryable = queryable.OrderBy(d => d.ProcessTime); break; case CollectionSort.Identifier: queryable = queryable.OrderBy(d => d.Source).ThenBy(d => d.SourceId); break; case CollectionSort.Name: queryable = queryable.OrderBy(d => d.PrettyName).ThenBy(d => d.OriginalName); break; case CollectionSort.Artist: queryable = queryable .OrderBy(d => d.Tags.Select(t => t.Tag).First(t => t.Type == TagType.Artist)); break; case CollectionSort.Group: queryable = queryable .OrderBy(d => d.Tags.Select(t => t.Tag).First(t => t.Type == TagType.Group)); break; case CollectionSort.Scanlator: queryable = queryable .OrderBy(d => d.Tags.Select(t => t.Tag).First(t => t.Type == TagType.Scanlator)); break; case CollectionSort.Language: queryable = queryable .OrderBy(d => d.Tags.Select(t => t.Tag).First(t => t.Type == TagType.Language)); break; case CollectionSort.Parody: queryable = queryable .OrderBy(d => d.Tags.Select(t => t.Tag).First(t => t.Type == TagType.Parody)); break; } if (descend) { queryable = queryable.Reverse(); } return(queryable); }