public IActionResult Add(ArtViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            Art art = new Art();

            art.Name        = model.Name;
            art.Price       = model.Price;
            art.TypeOfArt   = model.TypeOfArt;
            art.dateTime    = DateTime.Now;
            art.Description = model.Description;
            art.UserID      = manager.GetUserId(HttpContext.User);
            try
            {
                service.Add(art);
                string uniqueFileName = null;
                if (model.Photos != null && model.Photos.Count > 0)
                {
                    foreach (IFormFile photo in model.Photos)
                    {
                        string uploadsFolder = Path.Combine(hostingEnvironment.WebRootPath, "images");
                        uniqueFileName = Guid.NewGuid().ToString() + "_" + photo.FileName;
                        string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                        photo.CopyTo(new FileStream(filePath, FileMode.Create));
                        ArtPhoto artPhoto = new ArtPhoto();
                        artPhoto.Path  = uniqueFileName;
                        artPhoto.ArtID = art.ID;
                        photoService.Add(artPhoto);
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(model));
            }
            return(RedirectToAction("ShowDetails", new { id = art.ID }));
        }
        public IActionResult Edit(int id, ArtViewModel model)
        {
            ViewBag.id = id;
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            Art art = new Art();

            art.Name        = model.Name;
            art.Price       = model.Price;
            art.Description = model.Description;
            art.TypeOfArt   = model.TypeOfArt;
            try
            {
                service.Update(id, art);
                string uniqueFileName = null;
                if (model.Photos != null && model.Photos.Count > 0)
                {
                    photoService.Delete(id);
                    foreach (IFormFile photo in model.Photos)
                    {
                        string uploadsFolder = Path.Combine(hostingEnvironment.WebRootPath, "images");
                        uniqueFileName = Guid.NewGuid().ToString() + "_" + photo.FileName;
                        string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                        photo.CopyTo(new FileStream(filePath, FileMode.Create));
                        ArtPhoto artPhoto = new ArtPhoto();
                        artPhoto.Path  = uniqueFileName;
                        artPhoto.ArtID = id;
                        photoService.Add(artPhoto);
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(model));
            }
            return(RedirectToAction("ShowDetails", new { id = id }));
        }
        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>());
            }
        }