static UPnPError OnDoesResourceProviderSupportTreeListing(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid resourceProviderId = MarshallingHelper.DeserializeGuid((string)inParams[0]); IMediaAccessor mediaAccessor = ServiceRegistration.Get <IMediaAccessor>(); IResourceProvider rp; bool result = false; if (mediaAccessor.LocalResourceProviders.TryGetValue(resourceProviderId, out rp) && rp is IBaseResourceProvider) { IResourceAccessor rootAccessor; if (((IBaseResourceProvider)rp).TryCreateResourceAccessor("/", out rootAccessor)) { if (rootAccessor is IFileSystemResourceAccessor) { result = true; } rootAccessor.Dispose(); } } outParams = new List <object> { result }; return(null); }
public Guid CreateProfile(string profileName) { CpAction action = GetAction("CreateProfile"); IList <object> inParameters = new List <object> { profileName }; IList <object> outParameters = action.InvokeAction(inParameters); return(MarshallingHelper.DeserializeGuid((string)outParameters[0])); }
public async Task <Guid> CreateProfileAsync(string profileName, UserProfileType profileType, string profilePassword) { CpAction action = GetAction("CreateUserProfile"); IList <object> inParameters = new List <object> { profileName, (int)profileType, profilePassword }; IList <object> outParameters = await action.InvokeAsync(inParameters); return(MarshallingHelper.DeserializeGuid((string)outParameters[0])); }
public async Task <Guid> CreateClientProfileAsync(Guid profileId, string profileName) { CpAction action = GetAction("CreateClientProfile"); IList <object> inParameters = new List <object> { MarshallingHelper.SerializeGuid(profileId), profileName }; IList <object> outParameters = await action.InvokeAsync(inParameters); return(MarshallingHelper.DeserializeGuid((string)outParameters[0])); }
// Cleanup user data static UPnPError OnClearAllUserData(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid profileId = MarshallingHelper.DeserializeGuid((string)inParams[0]); bool success = ServiceRegistration.Get <IUserProfileDataManagement>().ClearAllUserData(profileId); outParams = new List <object> { success }; return(null); }
static UPnPError OnChangeProfileId(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid profileId = MarshallingHelper.DeserializeGuid((string)inParams[0]); Guid newProfileId = MarshallingHelper.DeserializeGuid((string)inParams[1]); bool success = ServiceRegistration.Get <IUserProfileDataManagement>().ChangeProfileIdAsync(profileId, newProfileId).Result; outParams = new List <object> { success }; return(null); }
static UPnPError OnCreateClientProfile(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid profileGuid = MarshallingHelper.DeserializeGuid((string)inParams[0]); string profileName = (string)inParams[1]; Guid profileId = ServiceRegistration.Get <IUserProfileDataManagement>().CreateClientProfileAsync(profileGuid, profileName).Result; outParams = new List <object> { profileId }; return(null); }
static UPnPError OnGetProfile(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid profileId = MarshallingHelper.DeserializeGuid((string)inParams[0]); var result = ServiceRegistration.Get <IUserProfileDataManagement>().GetProfileAsync(profileId).Result; UserProfile profile = result.Success ? result.Result : null; outParams = new List <object> { profile }; return(null); }
static UPnPError OnClearUserAdditionalDataKey(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid profileId = MarshallingHelper.DeserializeGuid((string)inParams[0]); string key = (string)inParams[1]; bool success = ServiceRegistration.Get <IUserProfileDataManagement>().ClearUserAdditionalDataKeyAsync(profileId, key).Result; outParams = new List <object> { success }; return(null); }
static UPnPError OnGetFeatureUsageStatistics(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid profileId = MarshallingHelper.DeserializeGuid((string)inParams[0]); string scope = (string)inParams[1]; var result = ServiceRegistration.Get <IUserProfileDataManagement>().GetFeatureUsageStatisticsAsync(profileId, scope).Result; outParams = new List <object> { result }; return(null); }
public async Task<Guid> AddOrUpdateMediaItemAsync(Guid parentDirectoryId, string systemId, ResourcePath path, IEnumerable<MediaItemAspect> mediaItemAspects) { CpAction action = GetAction("X_MediaPortal_AddOrUpdateMediaItem"); IList<object> inParameters = new List<object> { MarshallingHelper.SerializeGuid(parentDirectoryId), systemId, path.Serialize(), mediaItemAspects }; IList<object> outParameters = await action.InvokeAsync(inParameters); return MarshallingHelper.DeserializeGuid((string) outParameters[0]); }
static UPnPError OnUpdateUserProfile(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid profileId = MarshallingHelper.DeserializeGuid((string)inParams[0]); string profileName = (string)inParams[1]; UserProfileType profileType = (UserProfileType)inParams[2]; string profilePassword = (string)inParams[3]; bool success = ServiceRegistration.Get <IUserProfileDataManagement>().UpdateProfileAsync(profileId, profileName, profileType, profilePassword).Result; outParams = new List <object> { success }; return(null); }
// User additional data static UPnPError OnGetUserAdditionalData(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid profileId = MarshallingHelper.DeserializeGuid((string)inParams[0]); string key = (string)inParams[1]; int dataNo = (int)inParams[2]; var result = ServiceRegistration.Get <IUserProfileDataManagement>().GetUserAdditionalDataAsync(profileId, key, dataNo).Result; string data = result.Success ? result.Result : null; outParams = new List <object> { data, result.Success }; return(null); }
static UPnPError OnSetUserMediaItemData(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid profileId = MarshallingHelper.DeserializeGuid((string)inParams[0]); Guid mediaItemId = MarshallingHelper.DeserializeGuid((string)inParams[1]); string key = (string)inParams[2]; string data = (string)inParams[3]; bool success = ServiceRegistration.Get <IUserProfileDataManagement>().SetUserMediaItemData(profileId, mediaItemId, key, data); outParams = new List <object> { success }; return(null); }
static UPnPError OnGetProfile(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid profileId = MarshallingHelper.DeserializeGuid((string)inParams[0]); UserProfile profile; if (!ServiceRegistration.Get <IUserProfileDataManagement>().GetProfile(profileId, out profile)) { profile = null; } outParams = new List <object> { profile }; return(null); }
static UPnPError OnSearch(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { // In parameters var containerId = (string)inParams[0]; var searchCriteria = inParams[1].ToString(); var filter = inParams[2].ToString(); var startingIndex = Convert.ToInt32(inParams[3]); var requestedCount = Convert.ToInt32(inParams[4]); var sortCriteria = (string)inParams[5]; // Out parameters int numberReturned = 0; int totalMatches = 0; int containterUpdateId = 0; UPnPContentDirectorySearch query = new UPnPContentDirectorySearch(); StringWriter sw = new StringWriter(); query.Construct(searchCriteria, sw); query.searchCrit(); PegNode pn = query.GetRoot(); string xml = ParserHelper.PegNodeToXml(pn, searchCriteria); Logger.Debug("MediaServer - Parsed: \"{0}\" to make \"{1}\"", searchCriteria, xml); var parentDirectoryId = containerId == "0" ? Guid.Empty : MarshallingHelper.DeserializeGuid(containerId); var necessaryMIATypes = new List <Guid> { DirectoryAspect.ASPECT_ID }; var searchQuery = new MediaItemQuery(necessaryMIATypes, null); //searchQuery.Filter var searchItems = ServiceRegistration.Get <IMediaLibrary>().Search(searchQuery, true); /* * foreach (var item in browseItems) * { * * } */ outParams = new List <object>(3) { numberReturned, totalMatches, containterUpdateId }; return(null); }
static UPnPError OnGetResourceProviderMetadata(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid resourceProviderId = MarshallingHelper.DeserializeGuid((string)inParams[0]); IMediaAccessor mediaAccessor = ServiceRegistration.Get <IMediaAccessor>(); IResourceProvider rp; outParams = null; if (!mediaAccessor.LocalResourceProviders.TryGetValue(resourceProviderId, out rp)) { return(new UPnPError(600, string.Format("No resource provider of id '{0}' present in system", resourceProviderId))); } outParams = new List <object> { rp.Metadata }; return(null); }
// User additional data static UPnPError OnGetUserAdditionalData(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid profileId = MarshallingHelper.DeserializeGuid((string)inParams[0]); string key = (string)inParams[1]; string data; bool success; if (!(success = ServiceRegistration.Get <IUserProfileDataManagement>().GetUserAdditionalData(profileId, key, out data))) { data = null; } outParams = new List <object> { data, success }; return(null); }
static UPnPError OnExpandResourcePathFromString(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid resourceProviderId = MarshallingHelper.DeserializeGuid((string)inParams[0]); string pathStr = (string)inParams[1]; IMediaAccessor mediaAccessor = ServiceRegistration.Get <IMediaAccessor>(); ResourcePath result = null; IResourceProvider rp; if (mediaAccessor.LocalResourceProviders.TryGetValue(resourceProviderId, out rp) && rp is IBaseResourceProvider) { result = ((IBaseResourceProvider)rp).ExpandResourcePathFromString(pathStr); } outParams = new List <object> { result == null ? null : result.Serialize() }; return(null); }
static UPnPError OnUpdateUserProfileImage(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid profileId = MarshallingHelper.DeserializeGuid((string)inParams[0]); string profileImage = (string)inParams[1]; byte[] image = null; if (!string.IsNullOrEmpty(profileImage)) { image = Convert.FromBase64String(profileImage); } bool success = ServiceRegistration.Get <IUserProfileDataManagement>().SetProfileImageAsync(profileId, image).Result; outParams = new List <object> { success }; return(null); }
static UPnPError OnGetUserSelectedAdditionalDataList(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { Guid profileId = MarshallingHelper.DeserializeGuid((string)inParams[0]); string[] keys = MarshallingHelper.ParseCsvStringCollection((string)inParams[1]).ToArray(); bool sortByKey = (bool)inParams[2]; SortDirection sortOrder = (SortDirection)(int)inParams[3]; uint? offset = (uint?)inParams[4]; uint? limit = (uint?)inParams[5]; var result = ServiceRegistration.Get <IUserProfileDataManagement>().GetUserSelectedAdditionalDataListAsync(profileId, keys, sortByKey, sortOrder, offset, limit).Result; var data = result.Success ? MarshallingHelper.SerializeTuple3EnumerationToCsv(result.Result.Select(t => new Tuple <string, string, string>(t.Item1, t.Item2.ToString(), t.Item3))) : null; outParams = new List <object> { data, result.Success }; return(null); }