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)); }
public Task <ListResultDto <ClientSideBasketItemModel> > GenerateClientSideDataAsync(GenerateClientSideDataInput input) { return(_service.GenerateClientSideDataAsync(input)); }