public IEnumerable <DirectorDto> GetDirectorDirectorsByDirectorId(int id)
        {
            // First, get all movies director has directed.
            var directorMovies =
                (
                    from director in filmFulDbContext.Director
                    join direction in filmFulDbContext.Direction on director.Id equals direction.DirectorId
                    join movie in filmFulDbContext.Movie on direction.MovieId equals movie.Id
                    where director.Id == id
                    select movie
                );

            // If director has not directed any movie, he must not have ever co-directed any film with anyone at all.
            if (directorMovies == null || !directorMovies.Any())
            {
                return(null);
            }

            // Second, get all directors that co-directed these movies - Excluding the director in question and avoiding duplicates.
            var directorDirectors =
                (
                    from director in filmFulDbContext.Director
                    join direction in filmFulDbContext.Direction on director.Id equals direction.DirectorId
                    join movie in directorMovies on direction.MovieId equals movie.Id
                    where director.Id != id
                    select director
                ).Distinct();

            // If director has never worked with other directors return null, else return directors.
            return((directorDirectors == null || !directorDirectors.Any()) ? null : DataTypeConversionUtils.DirectorToDirectorDto(directorDirectors));
        }
        public DirectorDto GetDirectorById(int id)
        {
            var directorById = filmFulDbContext.Director
                               .Where(d => d.Id == id)
                               .SingleOrDefault();

            return(directorById == null ? null : DataTypeConversionUtils.DirectorToDirectorDto(directorById));
        }
Exemple #3
0
        public IEnumerable <DirectorDto> GetMovieDirectorsByMovieId(int id)
        {
            var movieDirectors = (from director in filmFulDbContext.Director
                                  join direction in filmFulDbContext.Direction on director.Id equals direction.DirectorId
                                  join movie in filmFulDbContext.Movie on direction.MovieId equals movie.Id
                                  where movie.Id == id
                                  select director)
                                 .OrderBy(di => di.Name);

            return((movieDirectors == null || !movieDirectors.Any()) ? null : DataTypeConversionUtils.DirectorToDirectorDto(movieDirectors));
        }
        public (IEnumerable <DirectorDto>, int) GetAllDirectors(int pageSize, int pageIndex)
        {
            int rangeOkay = Utilities.checkRange(pageSize, pageIndex, filmFulDbContext.Director.Count());

            if (rangeOkay == Utilities.ok)
            {
                return(
                    DataTypeConversionUtils.DirectorToDirectorDto
                    (
                        ((from d in filmFulDbContext.Director
                          select d)
                         .Skip(pageIndex * pageSize)
                         .Take(pageSize)
                        )
                    ), rangeOkay
                    );
            }
            else
            {
                return(null, rangeOkay);
            }
        }