Пример #1
0
        private async Task SaveProductImages(Product product, ProductEditModel model)
        {
            var fileClient     = HttpContext.RequestServices.GetRequiredService <IFileClient>();
            var imageProcessor = HttpContext.RequestServices.GetRequiredService <IImageProcessor>();

            await _appService.PrepareMediaAsync(product.Images, model.Images,
                                                createMedia : async(image) =>
            {
                image.DirectoryName = product.SellerId.ToString();


                var source = await fileClient.GetAsync(image.DirectoryName, image.FileName);

                if (source != null)
                {
                    var(imageWidth, imageHeight) = await imageProcessor.GetImageSizeAsync(source);

                    image.ProductId = product.Id;
                    image.Width     = imageWidth;
                    image.Height    = imageHeight;
                    image.FileSize  = source.Length;

                    await _mediaService.CreateAsync(image);
                }
            },
                                                updateMedia : async(image) =>
            {
                await _mediaService.UpdateAsync(image);
            },
                                                deleteMedia : async(image) =>
            {
                await _mediaService.DeleteAsync(image);
            });
        }
Пример #2
0
        private async Task SaveStoreLogoAsync(User user, StoreEditModel model)
        {
            var fileClient     = HttpContext.RequestServices.GetRequiredService <IFileClient>();
            var imageProcessor = HttpContext.RequestServices.GetRequiredService <IImageProcessor>();

            await _appService.PrepareMediaAsync(new[] { user.StoreLogo }, new[] { model.StoreLogo },
                                                createMedia : async(image) =>
            {
                image.DirectoryName = user.Id.ToString();

                var source = await fileClient.GetAsync(image.DirectoryName, image.FileName);

                if (source != null)
                {
                    var(imageWidth, imageHeight) = await imageProcessor.GetImageSizeAsync(source);

                    image.Width    = imageWidth;
                    image.Height   = imageHeight;
                    image.FileSize = source.Length;

                    await _mediaService.CreateAsync(image);

                    user.StoreLogoId = image.Id;
                    await _userService.UpdateAsync(user);
                }
            },
                                                updateMedia : async(media) =>
            {
                await _mediaService.UpdateAsync(media);
            },
                                                deleteMedia : async(media) =>
            {
                user.StoreLogoId = null;
                user.StoreLogo   = null;

                await _userService.UpdateAsync(user);
                await _mediaService.DeleteAsync(media);
            });
        }
Пример #3
0
        private async Task SaveBannerImage(Banner banner, BannerEditModel model)
        {
            var fileClient     = HttpContext.RequestServices.GetRequiredService <IFileClient>();
            var imageProcessor = HttpContext.RequestServices.GetRequiredService <IImageProcessor>();

            await _appService.PrepareMediaAsync(new[] { banner.Image }, new[] { model.Image },
                                                createMedia : async(image) =>
            {
                image.DirectoryName = banner.SellerId.ToString();

                var source = await fileClient.GetAsync(image.DirectoryName, image.FileName);

                if (source != null)
                {
                    var(imageWidth, imageHeight) = await imageProcessor.GetImageSizeAsync(source);

                    image.Width    = imageWidth;
                    image.Height   = imageHeight;
                    image.FileSize = source.Length;

                    await _mediaService.CreateAsync(image);

                    banner.ImageId = image.Id;
                    await _bannerService.UpdateAsync(banner);
                }
            },
                                                updateMedia : async(image) =>
            {
                await _mediaService.UpdateAsync(image);
            },
                                                deleteMedia : async(image) =>
            {
                banner.ImageId = null;
                banner.Image   = null;

                await _bannerService.UpdateAsync(banner);
                await _mediaService.DeleteAsync(image);
            });
        }