Exemplo n.º 1
0
 //جنس ورودی با مپ بالا باید یکسان باشد
 private static List <MoviesGenres> MapMovieGenres(MovieCreationDtos movieCreationDtos, Movie movie)
 {
     return(movieCreationDtos.GenresIds
            .Select(id => new MoviesGenres
     {
         GenreId = id
     }).ToList());
 }
Exemplo n.º 2
0
 private static List <MoviesActors> MapMovieActors(MovieCreationDtos movieCreationDtos, Movie movie)
 {
     return(movieCreationDtos.Actors
            .Select(x => new MoviesActors
     {
         Character = x.Character,
         PersonId = x.PersonId
     }).ToList());
 }
Exemplo n.º 3
0
        public async Task <IActionResult> PutMovie([FromRoute] int id, [FromForm] MovieCreationDtos movieCreationDtos)
        {
            var movieDb = await _context.Movies.FindAsync(id);

            if (movieDb == null)
            {
                return(NotFound());
            }
            //از چپی میخواهم بریزم توی راستی
            //نمیخواهم مدل جدید درست کنم
            movieDb = _mapper.Map(source: movieCreationDtos, destination: movieDb);

            #region EditFile

            //این کار بعد از mapper  انجام شد   چون   در  mapper  بهش گفتم که ignore  کن من خودم داخلش میریزم.
            if (movieCreationDtos.Poster != null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await movieCreationDtos.Poster.CopyToAsync(memoryStream);

                    //content
                    var content = memoryStream.ToArray();
                    //extension
                    var extension = Path.GetExtension(movieCreationDtos.Poster.FileName);
                    /*var extension = personCreationDtOs.Picture.FileName.Split(".")[1];*/
                    movieDb.Poster = await _fileStorageService
                                     .EditFile(content : content, extension : extension, containerName : ContainerName, fileRoute : movieDb.Poster, contentType : movieCreationDtos.Poster.ContentType);
                }
            }

            #endregion

            //Delete Actors and Genres From Movie By Query Sql
            await _context.Database.ExecuteSqlInterpolatedAsync(
                $"delete from MoviesActors where MovieId={movieDb.Id}; delete from MoviesGenres where MovieId={movieDb.Id}");

            //Order
            AnnotateActorsOrder(movieDb);

            _context.Entry(movieDb).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            var movieDto = _mapper.Map <MovieDto>(movieDb);

            return(CreatedAtAction("GetMovie", new { id = movieDto.Id }, movieDto));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> PostMovie([FromForm] MovieCreationDtos movieCreationDtos)
        {
            //New Movie
            //نباید آیدی در این بخش دست کاربر باشه
            var movie = _mapper.Map <Movie>(source: movieCreationDtos);

            #region SaveFile

            //این کار بعد از mapper  انجام شد   چون   در  mapper  بهش گفتم که ignore  کن من خودم داخلش میریزم.
            if (movieCreationDtos.Poster != null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await movieCreationDtos.Poster.CopyToAsync(memoryStream);

                    //content
                    var content = memoryStream.ToArray();
                    //extension
                    var extension = Path.GetExtension(movieCreationDtos.Poster.FileName);
                    /*var extension = personCreationDtOs.Picture.FileName.Split(".")[1];*/
                    movie.Poster = await _fileStorageService
                                   .SaveFile(content : content, extension : extension, containerName : ContainerName, contentType : movieCreationDtos.Poster.ContentType);
                }
            }

            #endregion

            //For Order
            AnnotateActorsOrder(movie);

            await _context.Movies.AddAsync(movie);

            await _context.SaveChangesAsync();


            //چون get  جنسش فرض نیکند باید عوض کنم
            var movieDto = _mapper.Map <MovieDto>(movie);

            return(CreatedAtAction("GetMovie", new { id = movieDto.Id }, movieDto));
        }