public async Task AddImagesAsync_ShouldWorkCorrectly()
        {
            var context = WilderExperienceContextInMemoryFactory.InitializeContext();

            await this.SeedData(context);

            var repository = new EfDeletableEntityRepository <ExperienceImage>(context);
            var service    = new ImagesService(repository);

            List <IFormFile> images = new List <IFormFile>();

            images.Add(new FormFile(new MemoryStream(Encoding.UTF8.GetBytes("This is a dummy file")), 0, 0, "Data", "dummy.jpg"));
            ImagesAddViewModel m = new ImagesAddViewModel
            {
                ExperienceId = context.Experiences.First().Id,
                Images       = images,
                UserId       = context.Users.First().Id,
            };

            System.IO.Directory.CreateDirectory(Path.Combine(Path.GetTempPath(), "uploads"));
            System.IO.Directory.CreateDirectory(Path.Combine(Path.GetTempPath(), "uploads", "experiences"));

            var experienceId = await service.AddImagesAsync(m, Path.GetTempPath());

            var filesCount = service.GetAllByExperienceId <ImagesViewModel>(experienceId).Count();

            Assert.True(filesCount == 2, "Add Image method does not work correctly");
        }
        public async Task <int> AddImagesAsync(ImagesAddViewModel input, string path)
        {
            var fileNames = this.UploadImages(input.Images, path);

            foreach (var file in fileNames)
            {
                await this.imageRepository.AddAsync(new ExperienceImage
                {
                    Name         = file,
                    ExperienceId = input.ExperienceId,
                    UserId       = input.UserId,
                });
            }

            await this.imageRepository.SaveChangesAsync();

            return(input.ExperienceId);
        }