コード例 #1
0
 public async Task<IList<MediaItem>> SimpleTextSearch(string searchText, IEnumerable<Guid> necessaryMIATypes, IEnumerable<Guid> optionalMIATypes,
   IFilter filter, bool excludeCLOBs, bool onlyOnline, bool caseSensitive,
   Guid? userProfile, bool includeVirtual, uint? offset = null, uint? limit = null)
 {
   CpAction action = GetAction("X_MediaPortal_SimpleTextSearch");
   String searchModeStr = SerializeExcludeClobs(excludeCLOBs);
   String onlineStateStr = SerializeOnlineState(onlyOnline);
   String capitalizationMode = SerializeCapitalizationMode(caseSensitive);
   IList<object> inParameters = new List<object>
   {
     searchText,
     MarshallingHelper.SerializeGuidEnumerationToCsv(necessaryMIATypes),
     MarshallingHelper.SerializeGuidEnumerationToCsv(optionalMIATypes),
     filter,
     searchModeStr,
     onlineStateStr,
     capitalizationMode,
     userProfile.HasValue ? MarshallingHelper.SerializeGuid(userProfile.Value) : null,
     includeVirtual,
     offset,
     limit,
   };
   IList<object> outParameters = await action.InvokeAsync(inParameters);
   return (IList<MediaItem>)outParameters[0];
 }
コード例 #2
0
        public IList <MLQueryResultGroup> GroupValueGroups(MediaItemAspectMetadata.AttributeSpecification attributeType,
                                                           IFilter selectAttributeFilter, ProjectionFunction projectionFunction, IEnumerable <Guid> necessaryMIATypes,
                                                           IFilter filter, bool onlyOnline, GroupingFunction groupingFunction)
        {
            CpAction action = GetAction("GroupValueGroups");
            string   projectionFunctionStr = SerializeProjectionFunction(projectionFunction);
            string   onlineStateStr        = SerializeOnlineState(onlyOnline);
            string   groupingFunctionStr;

            switch (groupingFunction)
            {
            case GroupingFunction.FirstCharacter:
                groupingFunctionStr = "FirstCharacter";
                break;

            default:
                throw new NotImplementedException(string.Format("GroupingFunction '{0}' is not implemented", groupingFunction));
            }
            IList <object> inParameters = new List <object> {
                MarshallingHelper.SerializeGuid(attributeType.ParentMIAM.AspectId),
                attributeType.AttributeName, selectAttributeFilter, projectionFunctionStr,
                MarshallingHelper.SerializeGuidEnumerationToCsv(necessaryMIATypes), filter, onlineStateStr, groupingFunctionStr
            };
            IList <object> outParameters = action.InvokeAction(inParameters);

            return((IList <MLQueryResultGroup>)outParameters[0]);
        }
コード例 #3
0
        public void ScheduleImports(IEnumerable <Guid> shareIds, ImportJobType importJobType)
        {
            CpAction       action   = GetAction("ScheduleImports");
            IList <object> inParams = new List <object> {
                MarshallingHelper.SerializeGuidEnumerationToCsv(shareIds), importJobType == ImportJobType.Refresh ? "Refresh" : "Import"
            };

            action.InvokeAction(inParams);
        }
コード例 #4
0
        public int CountMediaItems(IEnumerable <Guid> necessaryMIATypes, IFilter filter, bool onlyOnline)
        {
            CpAction       action         = GetAction("CountMediaItems");
            string         onlineStateStr = SerializeOnlineState(onlyOnline);
            IList <object> inParameters   = new List <object> {
                MarshallingHelper.SerializeGuidEnumerationToCsv(necessaryMIATypes), filter, onlineStateStr
            };
            IList <object> outParameters = action.InvokeAction(inParameters);

            return((int)outParameters[0]);
        }
コード例 #5
0
 public async Task<MediaItem> LoadItemAsync(string systemId, Guid mediaItemId,
     IEnumerable<Guid> necessaryMIATypes, IEnumerable<Guid> optionalMIATypes, Guid? userProfile)
 {
   CpAction action = GetAction("X_MediaPortal_LoadItemId");
   IList<object> inParameters = new List<object> {systemId, MarshallingHelper.SerializeGuid(mediaItemId),
       MarshallingHelper.SerializeGuidEnumerationToCsv(necessaryMIATypes),
       MarshallingHelper.SerializeGuidEnumerationToCsv(optionalMIATypes),
       userProfile.HasValue ? MarshallingHelper.SerializeGuid(userProfile.Value) : null };
   IList<object> outParameters = await action.InvokeAsync(inParameters);
   return (MediaItem)outParameters[0];
 }
コード例 #6
0
        public IList <MediaItem> LoadCustomPlaylist(IList <Guid> mediaItemIds,
                                                    ICollection <Guid> necessaryMIATypes, ICollection <Guid> optionalMIATypes)
        {
            CpAction       action       = GetAction("LoadCustomPlaylist");
            IList <object> inParameters = new List <object> {
                MarshallingHelper.SerializeGuidEnumerationToCsv(mediaItemIds),
                MarshallingHelper.SerializeGuidEnumerationToCsv(necessaryMIATypes),
                MarshallingHelper.SerializeGuidEnumerationToCsv(optionalMIATypes)
            };
            IList <object> outParameters = action.InvokeAction(inParameters);

            return((IList <MediaItem>)outParameters[0]);
        }
コード例 #7
0
        public ICollection <MediaItem> Browse(Guid parentDirectory,
                                              IEnumerable <Guid> necessaryMIATypes, IEnumerable <Guid> optionalMIATypes)
        {
            CpAction       action       = GetAction("Browse");
            IList <object> inParameters = new List <object> {
                MarshallingHelper.SerializeGuid(parentDirectory),
                MarshallingHelper.SerializeGuidEnumerationToCsv(necessaryMIATypes),
                MarshallingHelper.SerializeGuidEnumerationToCsv(optionalMIATypes)
            };
            IList <object> outParameters = action.InvokeAction(inParameters);

            return((ICollection <MediaItem>)outParameters[0]);
        }
コード例 #8
0
        public MediaItem LoadItem(string systemId, ResourcePath path,
                                  IEnumerable <Guid> necessaryMIATypes, IEnumerable <Guid> optionalMIATypes)
        {
            CpAction       action       = GetAction("LoadItem");
            IList <object> inParameters = new List <object> {
                systemId, path.Serialize(),
                MarshallingHelper.SerializeGuidEnumerationToCsv(necessaryMIATypes),
                MarshallingHelper.SerializeGuidEnumerationToCsv(optionalMIATypes)
            };
            IList <object> outParameters = action.InvokeAction(inParameters);

            return((MediaItem)outParameters[0]);
        }
コード例 #9
0
 /// <summary>
 /// Load a playlist from a list of mediaItemIds.
 /// *** WARNING ***
 /// Big playlists cannot be loaded in one single step. We have several problems if we try to do so:
 /// 1) Loading the playlist at once at the server results in one huge SQL IN statement which might break the SQL engine
 /// 2) The time to load the playlist might lead the UPnP call to break because of the timeout when calling methods
 /// 3) The resulting UPnP XML document might be too big to fit into memory
 /// </summary>
 /// <param name="mediaItemIds"></param>
 /// <param name="necessaryMIATypes"></param>
 /// <param name="optionalMIATypes"></param>
 /// <param name="offset"></param>
 /// <param name="limit"></param>
 /// <returns></returns>
 public async Task<IList<MediaItem>> LoadCustomPlaylistAsync(IList<Guid> mediaItemIds,
   ICollection<Guid> necessaryMIATypes, ICollection<Guid> optionalMIATypes,
   uint? offset = null, uint? limit = null)
 {
   CpAction action = GetAction("X_MediaPortal_LoadCustomPlaylist");
   IList<object> inParameters = new List<object> {
         MarshallingHelper.SerializeGuidEnumerationToCsv(mediaItemIds),
         MarshallingHelper.SerializeGuidEnumerationToCsv(necessaryMIATypes),
         MarshallingHelper.SerializeGuidEnumerationToCsv(optionalMIATypes),
         offset, limit};
   IList<object> outParameters = await action.InvokeAsync(inParameters);
   return (IList<MediaItem>) outParameters[0];
 }
コード例 #10
0
 public async Task<int> CountMediaItemsAsync(IEnumerable<Guid> necessaryMIATypes, IFilter filter, bool onlyOnline, bool includeVirtual)
 {
   CpAction action = GetAction("X_MediaPortal_CountMediaItems");
   string onlineStateStr = SerializeOnlineState(onlyOnline);
   IList<object> inParameters = new List<object>
   {
     MarshallingHelper.SerializeGuidEnumerationToCsv(necessaryMIATypes),
     filter,
     onlineStateStr,
     includeVirtual,
   };
   IList<object> outParameters = await action.InvokeAsync(inParameters);
   return (int)(uint) outParameters[0];
 }
コード例 #11
0
        public MediaItem LoadItem(string systemId, ResourcePath path,
                                  IEnumerable <Guid> necessaryMIATypes, IEnumerable <Guid> optionalMIATypes, Guid?userProfile)
        {
            CpAction       action       = GetAction("X_MediaPortal_LoadItem");
            IList <object> inParameters = new List <object> {
                systemId, path.Serialize(),
                MarshallingHelper.SerializeGuidEnumerationToCsv(necessaryMIATypes),
                MarshallingHelper.SerializeGuidEnumerationToCsv(optionalMIATypes),
                userProfile.HasValue ? MarshallingHelper.SerializeGuid(userProfile.Value) : null
            };
            IList <object> outParameters = action.InvokeAction(inParameters);

            return((MediaItem)outParameters[0]);
        }
コード例 #12
0
        public HomogenousMap GetValueGroups(MediaItemAspectMetadata.AttributeSpecification attributeType, IFilter selectAttributeFilter,
                                            ProjectionFunction projectionFunction, IEnumerable <Guid> necessaryMIATypes, IFilter filter, bool onlyOnline)
        {
            CpAction       action = GetAction("GetValueGroups");
            string         projectionFunctionStr = SerializeProjectionFunction(projectionFunction);
            string         onlineStateStr        = SerializeOnlineState(onlyOnline);
            IList <object> inParameters          = new List <object> {
                MarshallingHelper.SerializeGuid(attributeType.ParentMIAM.AspectId),
                attributeType.AttributeName, selectAttributeFilter, projectionFunctionStr,
                MarshallingHelper.SerializeGuidEnumerationToCsv(necessaryMIATypes), filter, onlineStateStr
            };
            IList <object> outParameters = action.InvokeAction(inParameters);

            return((HomogenousMap)outParameters[0]);
        }
コード例 #13
0
        public IList <MediaItem> SimpleTextSearch(string searchText, IEnumerable <Guid> necessaryMIATypes,
                                                  IEnumerable <Guid> optionalMIATypes, IFilter filter, bool excludeCLOBs, bool onlyOnline, bool caseSensitive)
        {
            CpAction       action             = GetAction("SimpleTextSearch");
            String         searchModeStr      = SerializeExcludeClobs(excludeCLOBs);
            String         onlineStateStr     = SerializeOnlineState(onlyOnline);
            String         capitalizationMode = SerializeCapitalizationMode(caseSensitive);
            IList <object> inParameters       = new List <object> {
                searchText,
                MarshallingHelper.SerializeGuidEnumerationToCsv(necessaryMIATypes),
                MarshallingHelper.SerializeGuidEnumerationToCsv(optionalMIATypes),
                filter, searchModeStr, onlineStateStr, capitalizationMode
            };
            IList <object> outParameters = action.InvokeAction(inParameters);

            return((IList <MediaItem>)outParameters[0]);
        }
コード例 #14
0
        public IList <MediaItem> Browse(Guid parentDirectory,
                                        IEnumerable <Guid> necessaryMIATypes, IEnumerable <Guid> optionalMIATypes,
                                        uint?offset = null, uint?limit = null)
        {
            CpAction       action       = GetAction("X_MediaPortal_Browse");
            IList <object> inParameters = new List <object>
            {
                MarshallingHelper.SerializeGuid(parentDirectory),
                MarshallingHelper.SerializeGuidEnumerationToCsv(necessaryMIATypes),
                MarshallingHelper.SerializeGuidEnumerationToCsv(optionalMIATypes),
                offset,
                limit
            };
            IList <object> outParameters = action.InvokeAction(inParameters);

            return((IList <MediaItem>)outParameters[0]);
        }
コード例 #15
0
 public async Task<IList<MediaItem>> BrowseAsync(Guid parentDirectoryId,
     IEnumerable<Guid> necessaryMIATypes, IEnumerable<Guid> optionalMIATypes,
     Guid? userProfile, bool includeVirtual, uint? offset = null, uint? limit = null)
 {
   CpAction action = GetAction("X_MediaPortal_Browse");
   IList<object> inParameters = new List<object>
   {
     MarshallingHelper.SerializeGuid(parentDirectoryId),
     MarshallingHelper.SerializeGuidEnumerationToCsv(necessaryMIATypes),
     MarshallingHelper.SerializeGuidEnumerationToCsv(optionalMIATypes),
     userProfile.HasValue ? MarshallingHelper.SerializeGuid(userProfile.Value) : null,
     includeVirtual,
     offset,
     limit,
   };
   IList<object> outParameters = await action.InvokeAsync(inParameters);
   return (IList<MediaItem>)outParameters[0];
 }
コード例 #16
0
 public async Task<Tuple<HomogenousMap, HomogenousMap>> GetKeyValueGroupsAsync(MediaItemAspectMetadata.AttributeSpecification keyAttributeType, MediaItemAspectMetadata.AttributeSpecification valueAttributeType,
   IFilter selectAttributeFilter, ProjectionFunction projectionFunction, IEnumerable<Guid> necessaryMIATypes, IFilter filter, bool onlyOnline, bool includeVirtual)
 {
   CpAction action = GetAction("X_MediaPortal_GetKeyValueGroups");
   string projectionFunctionStr = SerializeProjectionFunction(projectionFunction);
   string onlineStateStr = SerializeOnlineState(onlyOnline);
   IList<object> inParameters = new List<object>
   {
     MarshallingHelper.SerializeGuid(keyAttributeType.ParentMIAM.AspectId),
     keyAttributeType.AttributeName,
     MarshallingHelper.SerializeGuid(valueAttributeType.ParentMIAM.AspectId),
     valueAttributeType.AttributeName,
     selectAttributeFilter,
     projectionFunctionStr,
     MarshallingHelper.SerializeGuidEnumerationToCsv(necessaryMIATypes),
     filter,
     onlineStateStr,
     includeVirtual,
   };
   IList<object> outParameters = await action.InvokeAsync(inParameters);
   return new Tuple<HomogenousMap, HomogenousMap>((HomogenousMap)outParameters[0], (HomogenousMap)outParameters[1]);
 }