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