コード例 #1
0
ファイル: FilmController.cs プロジェクト: remirboy/Lumiere
        private async Task <List <FilmPoster> > SavePostersImages(Guid filmId, IFormFileCollection posters)
        {
            List <FilmPoster> filmPosters = new List <FilmPoster>();
            Guid posterId = Guid.NewGuid();

            foreach (var image in posters)
            {
                using (var fileStream = new FileStream($"{_appEnvironment.WebRootPath}/img/posters/poster_{posterId}.png", FileMode.Create, FileAccess.Write))
                {
                    image.CopyTo(fileStream);

                    FilmPoster filmPoster = new FilmPoster
                    {
                        Url    = $"/img/posters/poster_{posterId}.png",
                        FilmId = filmId
                    };
                    await _posterRepository.CreateAsync(filmPoster);

                    filmPosters.Add(filmPoster);
                }
                posterId = Guid.NewGuid();
            }

            return(filmPosters);
        }
コード例 #2
0
        public async Task Create(Film film, IFormFile formFile)
        {
            _dbContext.Films.Add(film);
            await _dbContext.SaveChangesAsync();

            using (var stream = formFile.OpenReadStream())
            {
                var poster = new FilmPoster()
                {
                    FilmId      = film.Id,
                    ContentType = formFile.ContentType,
                    Data        = new byte[stream.Length]
                };

                WriteStreamToArray(stream, poster.Data);

                _dbContext.FilmPosters.Add(poster);
                await _dbContext.SaveChangesAsync();
            }
        }
コード例 #3
0
 private async Task SaveStateAsync(FilmPoster poster, EntityState state)
 {
     _context.Entry(poster).State = state;
     await _context.SaveChangesAsync();
 }
コード例 #4
0
 public async Task UpdateAsync(FilmPoster poster)
 {
     await SaveStateAsync(poster, EntityState.Modified);
 }
コード例 #5
0
 public async Task DeleteAsync(FilmPoster poster)
 {
     _context.Remove(poster);
     await _context.SaveChangesAsync();
 }
コード例 #6
0
 public async Task CreateAsync(FilmPoster poster)
 {
     await SaveStateAsync(poster, EntityState.Added);
 }