Example #1
0
        public static async Task FillProductLocalizedImages(this Product product, IApiContext apiContext)
        {
            var productImages = new List <ProductLocalizedImage>();
            var images        = product.Content.ProductImages;

            if (images == null)
            {
                return;
            }
            var documentResource = new DocumentResource(apiContext);

            foreach (var image in images)
            {
                var imageUrl = image.ImageUrl ??
                               String.Format("//cdn-sb.mozu.com/{0}-m1/cms/files/{1}", apiContext.TenantId,
                                             image.CmsId);

                var document = await documentResource.GetDocumentAsync("files@mozu", image.CmsId);

                productImages.Add(new ProductLocalizedImage
                {
                    CmsId      = image.CmsId,
                    ImageLabel = document.Name,
                    ImageUrl   = imageUrl.Replace(image.CmsId, document.Name)
                });
            }
            product.Content.ProductImages = productImages;
        }
        protected async Task ExportProductAsync(IApiContext apiContext, Event eventPayLoad)
        {
            var productHandler = new ProductExportHandler(_appSetting);
            var product        = await productHandler.GetProduct(apiContext, eventPayLoad.EntityId);



            var productStoreResource = new ProductResource(apiContext);
            var sfProd = await productStoreResource.GetProductAsync(product.ProductCode, responseFields : "Content(ProductImages)");

            if (sfProd != null)
            {
                //Get images form storefront product
                var images        = sfProd.Content.ProductImages;
                var productImages = new List <ProductLocalizedImage>();
                if (images != null)
                {
                    var documentResource = new DocumentResource(apiContext);
                    foreach (var image in images)
                    {
                        var imageUrl = image.ImageUrl ??
                                       String.Format("//cdn-sb.mozu.com/{0}-m1/cms/files/{1}", apiContext.TenantId,
                                                     image.CmsId);

                        var document = await documentResource.GetDocumentAsync("files@mozu", image.CmsId);

                        productImages.Add(new ProductLocalizedImage
                        {
                            CmsId      = image.CmsId,
                            ImageLabel = document.Name,
                            //ImageUrl = image.ImageUrl.Replace(image.CmsId, document.Name)
                            ImageUrl = imageUrl.Replace(image.CmsId, document.Name)
                        });
                    }
                    product.Content.ProductImages = productImages;
                }

                await productHandler.ExportFileuploadAsync(productImages);
            }

            //Get Locations for Product
            var locations = await GetProductLocations(apiContext, product.ProductCode);


            await productHandler.ExportInventoryAsync(apiContext, product, locations);

            await productHandler.ExportProductAsync(apiContext, product);
        }