예제 #1
0
        public async Task <ProductDto> UpdateSkuAsync(Guid productId, Guid productSkuId, Guid storeId,
                                                      UpdateProductSkuDto input)
        {
            await AuthorizationService.CheckMultiStorePolicyAsync(storeId, UpdatePolicyName,
                                                                  ProductsPermissions.Products.CrossStore);

            await CheckStoreIsProductOwnerAsync(productId, storeId);

            var product = await GetEntityByIdAsync(productId);

            CheckProductIsNotStatic(product);

            var sku = product.ProductSkus.Single(x => x.Id == productSkuId);

            ObjectMapper.Map(input, sku);

            await _productManager.UpdateSkuAsync(product, sku);

            var dto = await MapToGetOutputDtoAsync(product);

            await LoadDtoExtraDataAsync(product, dto, storeId);
            await LoadDtosProductGroupDisplayNameAsync(new[] { dto });

            return(dto);
        }
예제 #2
0
        public virtual async Task <ProductDto> UpdateSkuAsync(Guid productId, Guid productSkuId,
                                                              UpdateProductSkuDto input)
        {
            var product = await GetEntityByIdAsync(productId);

            await CheckMultiStorePolicyAsync(product.StoreId, UpdatePolicyName);

            CheckProductIsNotStatic(product);

            var sku = product.ProductSkus.Single(x => x.Id == productSkuId);

            await MapToProductSkuAsync(input, sku);

            await _productManager.UpdateSkuAsync(product, sku);

            var dto = await MapToGetOutputDtoAsync(product);

            await LoadDtoExtraDataAsync(product, dto);
            await LoadDtosProductGroupDisplayNameAsync(new[] { dto });

            UnitOfWorkManager.Current.OnCompleted(async() => { await ClearProductViewCacheAsync(product.StoreId); });

            return(dto);
        }
예제 #3
0
 public Task <ProductDto> UpdateSkuAsync(Guid productId, Guid productSkuId, Guid storeId, UpdateProductSkuDto input)
 {
     return(_service.UpdateSkuAsync(productId, productSkuId, storeId, input));
 }
예제 #4
0
        public async Task <ProductDto> UpdateSkuAsync(Guid productId, Guid productSkuId, Guid storeId, UpdateProductSkuDto input)
        {
            await CheckUpdatePolicyAsync();

            await CheckStoreIsProductOwnerAsync(productId, storeId);

            var product = await GetEntityByIdAsync(productId);

            CheckProductIsNotStatic(product);

            var sku = product.ProductSkus.Single(x => x.Id == productSkuId);

            ObjectMapper.Map(input, sku);

            await _productManager.UpdateSkuAsync(product, sku);

            return(ObjectMapper.Map <Product, ProductDto>(product));
        }