Exemplo n.º 1
0
        public virtual async Task <ListResultDto <ClientSideBasketItemModel> > GenerateClientSideDataAsync(
            GenerateClientSideDataInput input)
        {
            var itemList = new List <ClientSideBasketItemModel>();

            var products = new Dictionary <Guid, ProductDto>();

            foreach (var dto in input.Items)
            {
                if (!products.ContainsKey(dto.ProductId))
                {
                    products[dto.ProductId] = await _productAppService.GetAsync(dto.ProductId);
                }

                var productDto = products[dto.ProductId];

                var productSkuDto = productDto.FindSkuById(dto.ProductSkuId);

                if (productSkuDto == null)
                {
                    throw new ProductSkuNotFoundException(dto.ProductId, dto.ProductSkuId);
                }

                var id = dto.Id ?? GuidGenerator.Create();

                var item = new ClientSideBasketItemModel(id, dto.BasketName, productDto.StoreId,
                                                         dto.ProductId, dto.ProductSkuId);

                await UpdateProductDataAsync(dto.Quantity, item, productDto);

                itemList.Add(item);
            }

            return(new ListResultDto <ClientSideBasketItemModel>(itemList));
        }
Exemplo n.º 2
0
 public Task <ListResultDto <ClientSideBasketItemModel> > GenerateClientSideDataAsync(GenerateClientSideDataInput input)
 {
     return(_service.GenerateClientSideDataAsync(input));
 }