public async Task <GetCatalogItemsPaginatedResponse> Handle
        (
            GetCatalogItemsPaginatedRequest aGetCatalogItemsPaginatedRequest,
            CancellationToken aCancellationToken
        )
        {
            var catalogFilterPaginatedSpecification =
                new CatalogFilterPaginatedSpecification
                (
                    skip: aGetCatalogItemsPaginatedRequest.PageSize * aGetCatalogItemsPaginatedRequest.PageIndex,
                    take: aGetCatalogItemsPaginatedRequest.PageSize,
                    brandId: aGetCatalogItemsPaginatedRequest.CatalogBrandId,
                    typeId: aGetCatalogItemsPaginatedRequest.CatalogTypeId
                );
            IReadOnlyList <CatalogItem> catalogItems = await CatalogItemRepository.ListAsync(catalogFilterPaginatedSpecification);

            var filterSpecification = new CatalogFilterSpecification(
                aGetCatalogItemsPaginatedRequest.CatalogBrandId,
                aGetCatalogItemsPaginatedRequest.CatalogTypeId);
            int totalItems = await CatalogItemRepository.CountAsync(filterSpecification);

            var response = new GetCatalogItemsPaginatedResponse(aGetCatalogItemsPaginatedRequest.CorrelationId)
            {
                CorrelationId = aGetCatalogItemsPaginatedRequest.CorrelationId,
                PageCount     = int.Parse(Math.Ceiling((decimal)totalItems / aGetCatalogItemsPaginatedRequest.PageSize).ToString())
            };

            response.CatalogItems.AddRange(catalogItems.Select(Mapper.Map <CatalogItemDto>));
            foreach (CatalogItemDto item in response.CatalogItems)
            {
                item.PictureUri = UriComposer.ComposePicUri(item.PictureUri);
            }

            return(response);
        }
        public async Task <DeleteCatalogItemResponse> Handle
        (
            DeleteCatalogItemRequest aDeleteCatalogItemRequest,
            CancellationToken aCancellationToken
        )
        {
            CatalogItem catalogItem = await CatalogItemRepository.GetByIdAsync(aDeleteCatalogItemRequest.CatalogItemId);

            await CatalogItemRepository.DeleteAsync(catalogItem);

            var response = new DeleteCatalogItemResponse(aDeleteCatalogItemRequest.CorrelationId);

            return(await Task.Run(() => response));
        }
        public async Task <CreateCatalogItemResponse> Handle
        (
            CreateCatalogItemRequest aCreateCatalogItemRequest,
            CancellationToken aCancellationToken
        )
        {
            var         response    = new CreateCatalogItemResponse(aCreateCatalogItemRequest.CorrelationId);
            CatalogItem catalogItem = Mapper.Map <CreateCatalogItemRequest, CatalogItem>(aCreateCatalogItemRequest);

            catalogItem = await CatalogItemRepository.AddAsync(catalogItem);

            response.CatalogItem = Mapper.Map <CatalogItem, CatalogItemDto>(catalogItem);

            return(response);
        }
Пример #4
0
        public async Task <GetCatalogItemResponse> Handle
        (
            GetCatalogItemRequest aGetCatalogItemRequest,
            CancellationToken aCancellationToken
        )
        {
            CatalogItem catalogItem = await CatalogItemRepository.GetByIdAsync(aGetCatalogItemRequest.CatalogItemId);

            var response = new GetCatalogItemResponse(aGetCatalogItemRequest.CorrelationId)
            {
                CatalogItem = Mapper.Map <CatalogItem, CatalogItemDto>(catalogItem)
            };

            return(response);
        }
        public async Task <UpdateCatalogItemResponse> Handle
        (
            UpdateCatalogItemRequest aUpdateCatalogItemRequest,
            CancellationToken aCancellationToken
        )
        {
            CatalogItem catalogItem = await CatalogItemRepository.GetByIdAsync(aUpdateCatalogItemRequest.CatalogItemId);

            // TODO: Return NotFound if null

            Mapper.Map <UpdateCatalogItemRequest, CatalogItem>(aUpdateCatalogItemRequest, catalogItem);

            await CatalogItemRepository.UpdateAsync(catalogItem);

            var response = new UpdateCatalogItemResponse(aUpdateCatalogItemRequest.CorrelationId)
            {
                CatalogItem = Mapper.Map <CatalogItem, CatalogItemDto>(catalogItem)
            };

            return(response);
        }