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); }); }
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); }); }
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); }); }