public async Task InitializeUserAsync()
        {
            IUserProfileDataManagement userManager = ServiceRegistration.Get <IUserProfileDataManagement>();

            if (UserId.HasValue)
            {
                await userManager.LoginProfileAsync(UserId.Value);

                var audioList = await userManager.GetUserAdditionalDataListAsync(UserId.Value, UserDataKeysKnown.KEY_PREFERRED_AUDIO_LANGUAGE);

                PreferredAudioLanguages = audioList.Result?.Select(l => l.Item2);
                if (!(PreferredAudioLanguages?.Any() ?? false))
                {
                    PreferredAudioLanguages = new List <string>()
                    {
                        "EN"
                    }
                }
                ;
                var subtitleList = await userManager.GetUserAdditionalDataListAsync(UserId.Value, UserDataKeysKnown.KEY_PREFERRED_SUBTITLE_LANGUAGE);

                PreferredSubtitleLanguages = subtitleList.Result?.Select(l => l.Item2);
                if (!(PreferredSubtitleLanguages?.Any() ?? false))
                {
                    PreferredSubtitleLanguages = new List <string>()
                    {
                        "EN"
                    }
                }
                ;
            }
        }
    }
        public async Task InitializeAsync(string id)
        {
            if (RootContainer == null)
            {
                IUserProfileDataManagement userManager = ServiceRegistration.Get <IUserProfileDataManagement>();
                ClientName = $"DLNA ({id})";
                var profile = await userManager.GetProfileByNameAsync(ClientName);

                if (profile.Success)
                {
                    ClientId = profile.Result.ProfileId;
                }
                else
                {
                    ClientId = await userManager.CreateProfileAsync(ClientName, UserProfileType.ClientProfile, "");
                }
                await userManager.LoginProfileAsync(ClientId);

                if (UserId.HasValue)
                {
                    await InitializeUserAsync();
                }

                InitialiseContainerTree();
            }
        }
Beispiel #3
0
        public static async Task <bool> AddPreferredLanguagesAsync(Guid?userId, IList <string> preferredAudioLanguuages, IList <string> preferredSubtitleLanguuages)
        {
            IUserProfileDataManagement userProfileDataManagement = ServiceRegistration.Get <IUserProfileDataManagement>();

            if (userId.HasValue)
            {
                var res = userProfileDataManagement.GetProfileAsync(userId.Value).Result;
                if (res.Success)
                {
                    await userProfileDataManagement.LoginProfileAsync(userId.Value);

                    foreach (var lang in res.Result.GetPreferredAudioLanguages())
                    {
                        preferredAudioLanguuages.Add(lang);
                    }
                    foreach (var lang in res.Result.GetPreferredSubtitleLanguages())
                    {
                        preferredSubtitleLanguuages.Add(lang);
                    }
                }
            }
            if (preferredAudioLanguuages.Count == 0)
            {
                preferredAudioLanguuages = new List <string>()
                {
                    "EN"
                }
            }
            ;
            if (preferredSubtitleLanguuages.Count == 0)
            {
                preferredSubtitleLanguuages = new List <string>()
                {
                    "EN"
                }
            }
            ;

            return(true);
        }