Example #1
0
        public async Task <IActionResult> GetItemsList(string itemIds,
                                                       int?layerId,
                                                       string search,
                                                       bool unlockable,
                                                       int page = 1)
        {
            var filter = new AvatarFilter(page, 10)
            {
                Search     = search,
                LayerId    = layerId,
                Unlockable = unlockable
            };

            if (!string.IsNullOrWhiteSpace(itemIds))
            {
                filter.ItemIds = itemIds.Split(',')
                                 .Where(_ => !string.IsNullOrWhiteSpace(_))
                                 .Select(int.Parse)
                                 .ToList();
            }

            var items = await _avatarService.PageItemsAsync(filter);

            var paginateModel = new PaginateViewModel
            {
                ItemCount    = items.Count,
                CurrentPage  = page,
                ItemsPerPage = filter.Take.Value
            };

            foreach (var item in items.Data)
            {
                if (!string.IsNullOrWhiteSpace(item.Thumbnail))
                {
                    item.Thumbnail = _pathResolver.ResolveContentPath(item.Thumbnail);
                }
            }

            var viewModel = new ItemsListViewModel
            {
                Items         = items.Data,
                PaginateModel = paginateModel
            };

            return(PartialView("_ItemsPartial", viewModel));
        }