public object Get(GetSimilarItems request) { var user = !request.UserId.Equals(Guid.Empty) ? _userManager.GetUserById(request.UserId) : null; var item = string.IsNullOrEmpty(request.Id) ? (!request.UserId.Equals(Guid.Empty) ? _libraryManager.GetUserRootFolder() : _libraryManager.RootFolder) : _libraryManager.GetItemById(request.Id); var program = item as IHasProgramAttributes; if (item is Movie || (program != null && program.IsMovie) || item is Trailer) { return(new MoviesService(_userManager, _libraryManager, _dtoService, _config, _authContext) { Request = Request, }.GetSimilarItemsResult(request)); } if (program != null && program.IsSeries) { return(GetSimilarItemsResult(request, new[] { typeof(Series).Name })); } if (item is Episode || (item is IItemByName && !(item is MusicArtist))) { return(new QueryResult <BaseItemDto>()); } return(GetSimilarItemsResult(request, new[] { item.GetType().Name })); }
public object Get(GetSimilarItems request) { var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null; var item = string.IsNullOrEmpty(request.Id) ? (!string.IsNullOrWhiteSpace(request.UserId) ? user.RootFolder : _libraryManager.RootFolder) : _libraryManager.GetItemById(request.Id); if (item is Game) { return(new GamesService(_userManager, _userDataManager, _libraryManager, _itemRepo, _dtoService, _authContext) { Request = Request, }.Get(new GetSimilarGames { Fields = request.Fields, Id = request.Id, Limit = request.Limit, UserId = request.UserId })); } if (item is MusicAlbum) { return(new AlbumsService(_userManager, _userDataManager, _libraryManager, _itemRepo, _dtoService, _authContext) { Request = Request, }.Get(new GetSimilarAlbums { Fields = request.Fields, Id = request.Id, Limit = request.Limit, UserId = request.UserId, ExcludeArtistIds = request.ExcludeArtistIds })); } if (item is MusicArtist) { return(new AlbumsService(_userManager, _userDataManager, _libraryManager, _itemRepo, _dtoService, _authContext) { Request = Request, }.Get(new GetSimilarArtists { Fields = request.Fields, Id = request.Id, Limit = request.Limit, UserId = request.UserId })); } var program = item as IHasProgramAttributes; if (item is Movie || (program != null && program.IsMovie) || item is Trailer) { return(new MoviesService(_userManager, _libraryManager, _dtoService, _config, _authContext) { Request = Request, }.Get(new GetSimilarMovies { Fields = request.Fields, Id = request.Id, Limit = request.Limit, UserId = request.UserId })); } if (item is Series || (program != null && program.IsSeries)) { return(new TvShowsService(_userManager, _userDataManager, _libraryManager, _itemRepo, _dtoService, _tvManager, _authContext) { Request = Request, }.Get(new GetSimilarShows { Fields = request.Fields, Id = request.Id, Limit = request.Limit, UserId = request.UserId })); } return(new QueryResult <BaseItemDto>()); }
public object Get(GetSimilarItems request) { var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null; var item = string.IsNullOrEmpty(request.Id) ? (!string.IsNullOrWhiteSpace(request.UserId) ? user.RootFolder : _libraryManager.RootFolder) : _libraryManager.GetItemById(request.Id); if (item is Game) { return(new GamesService(_userManager, _userDataManager, _libraryManager, _itemRepo, _dtoService) { AuthorizationContext = AuthorizationContext, Logger = Logger, Request = Request, SessionContext = SessionContext, ResultFactory = ResultFactory }.Get(new GetSimilarGames { Fields = request.Fields, Id = request.Id, Limit = request.Limit, UserId = request.UserId })); } if (item is MusicAlbum) { return(new AlbumsService(_userManager, _userDataManager, _libraryManager, _itemRepo, _dtoService) { AuthorizationContext = AuthorizationContext, Logger = Logger, Request = Request, SessionContext = SessionContext, ResultFactory = ResultFactory }.Get(new GetSimilarAlbums { Fields = request.Fields, Id = request.Id, Limit = request.Limit, UserId = request.UserId })); } if (item is MusicArtist) { return(new AlbumsService(_userManager, _userDataManager, _libraryManager, _itemRepo, _dtoService) { AuthorizationContext = AuthorizationContext, Logger = Logger, Request = Request, SessionContext = SessionContext, ResultFactory = ResultFactory }.Get(new GetSimilarArtists { Fields = request.Fields, Id = request.Id, Limit = request.Limit, UserId = request.UserId })); } var program = item as IHasProgramAttributes; if (item is Movie || (program != null && program.IsMovie) || item is Trailer) { return(new MoviesService(_userManager, _userDataManager, _libraryManager, _itemRepo, _dtoService) { AuthorizationContext = AuthorizationContext, Logger = Logger, Request = Request, SessionContext = SessionContext, ResultFactory = ResultFactory }.Get(new GetSimilarMovies { Fields = request.Fields, Id = request.Id, Limit = request.Limit, UserId = request.UserId })); } if (item is Series || (program != null && program.IsSeries)) { return(new TvShowsService(_userManager, _userDataManager, _libraryManager, _itemRepo, _dtoService, _tvManager) { AuthorizationContext = AuthorizationContext, Logger = Logger, Request = Request, SessionContext = SessionContext, ResultFactory = ResultFactory }.Get(new GetSimilarShows { Fields = request.Fields, Id = request.Id, Limit = request.Limit, UserId = request.UserId })); } return(new ItemsResult()); }