예제 #1
0
 public async Task DownloadImageAsync(AnnouceViewModel model, string photoUrl)
 {
     try
     {
         string filename = model.ImageTempId + "_" + Guid.NewGuid() + Path.GetExtension(photoUrl);
         using WebClient client = new WebClient();
         await client.DownloadFileTaskAsync(new Uri(photoUrl), Path.Combine(tempImagesFolder, filename));
     }
     catch (Exception ex)
     {
         _logger.LogError(ex, "DownloadImageAsync");
     }
 }
        public async Task <IActionResult> AddNew(AnnouceViewModel model)
        {
            string[] files = _watermarkService.GetFiles(model);

            foreach (var fileDirectory in files)
            {
                await _watermarkService.WatermarkImageAndUploadToAzure(fileDirectory);
            }

            _watermarkService.ClearTempFolder(files);

            return(Redirect("/"));
        }
        public async Task <List <ArtPhoto> > ImportImagesToAzure(HtmlDocument productHtml, Guid artId)
        {
            try
            {
                AnnouceViewModel model = new AnnouceViewModel {
                    ImageTempId = Guid.NewGuid()
                };
                var photosUrl    = GetProductPhotosUrl(productHtml);
                var artPhotoList = new List <ArtPhoto>();

                foreach (var photoUrl in photosUrl)
                {
                    await _watermarkService.DownloadImageAsync(model, photoUrl);
                }

                string[] files = _watermarkService.GetFiles(model);

                foreach (var fileDirectory in files)
                {
                    var url = await _watermarkService.WatermarkImageAndUploadToAzure(fileDirectory);

                    var artPhoto = new ArtPhoto {
                        Url = url, ArtId = artId
                    };
                    artPhotoList.Add(artPhoto);
                }

                _watermarkService.ClearTempFolder(files);

                return(artPhotoList);
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "ImportImagesToAzure error");

                return(new List <ArtPhoto>());
            }
        }
예제 #4
0
 public string[] GetFiles(AnnouceViewModel model)
 {
     return(Directory.GetFiles(tempImagesFolder, model.ImageTempId + "*"));
 }