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