Esempio n. 1
0
        public async Task <CatalogoIndexViewModel> GetCatalogoItems(int pageIndex, int itemsPage, int?marcaId, int?tipoId)
        {
            _logger.LogInformation("GetCatalogItems called.");

            var filterSpecification          = new CatalogoSpecification(marcaId, tipoId);
            var filterPaginatedSpecification =
                new CatalogoFilterPaginatedSpecification(itemsPage * pageIndex, itemsPage, marcaId, tipoId);

            // the implementation below using ForEach and Count. We need a List.
            var itemsOnPage = _itemRepository.List(filterPaginatedSpecification).ToList();
            var totalItems  = _itemRepository.Count(filterSpecification);

            itemsOnPage.ForEach(x =>
            {
                x.FotoUri = _uriComposer.ComposeFotUri(x.FotoUri);
            });

            var vm = new CatalogoIndexViewModel()
            {
                CatalogoItems = itemsOnPage.Select(i => new CatalogoItemViewModel()
                {
                    Id      = i.Id,
                    Nome    = i.Nome,
                    FotoUri = i.FotoUri,
                    Preco   = i.Preco
                }),
                Marcas = await GetMarcas(),
                Tipos  = await GetTipos(),
                FiltroAplicadoMarcas = marcaId ?? 0,
                FiltoroAplicadoTipos = tipoId ?? 0,
                PaginacaoInfo        = new PaginacaoInfoViewModel()
                {
                    PaginaAtual     = pageIndex,
                    ItemsPorPaginas = itemsOnPage.Count,
                    TotalItems      = totalItems,
                    TotalPaginas    = int.Parse(Math.Ceiling(((decimal)totalItems / itemsPage)).ToString())
                }
            };

            vm.PaginacaoInfo.Proxima  = (vm.PaginacaoInfo.PaginaAtual == vm.PaginacaoInfo.TotalPaginas - 1) ? "is-disabled" : "";
            vm.PaginacaoInfo.Anterior = (vm.PaginacaoInfo.PaginaAtual == 0) ? "is-disabled" : "";

            return(vm);
        }
Esempio n. 2
0
        private CarrinhoViewModel CreateViewModelFromCarrinho(Carrinho carrinho)
        {
            var viewModel = new CarrinhoViewModel();

            viewModel.Id       = carrinho.Id;
            viewModel.CompraId = carrinho.CompraId;
            viewModel.Items    = carrinho.Items.Select(i =>
            {
                var itemModel = new CarrinhoItemViewModel()
                {
                    Id             = i.Id,
                    PrecoUnitario  = i.PrecoUnitario,
                    Quantidade     = i.Quantidade,
                    CatalogoItemId = i.CatalogoItemId
                };
                var item              = _itemRepository.GetById(i.CatalogoItemId);
                itemModel.FotoUrl     = _uriComposer.ComposeFotUri(item.FotoUri);
                itemModel.ProdutoNome = item.Nome;
                return(itemModel);
            })
                                 .ToList();
            return(viewModel);
        }