using MediaBrowser.Common.Net; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Session; using MediaBrowser.Model.Logging; using System.Linq; using System.Threading.Tasks; namespace MediaBrowser.Dlna.PlayTo { public class PlayToServerEntryPoint : IServerEntryPoint { const string DefaultUser = "Play To"; private bool _disposed; private readonly IUserManager _userManager; private readonly PlayToManager _manager; public PlayToServerEntryPoint(ILogManager logManager, ISessionManager sessionManager, IUserManager userManager, IHttpClient httpClient, INetworkManager networkManager, IItemRepository itemRepository, ILibraryManager libraryManager) { _userManager = userManager; _manager = new PlayToManager(logManager.GetLogger("PlayTo"), sessionManager, httpClient, itemRepository, libraryManager, networkManager); } /// /// Creates the defaultuser if needed. /// private async Task CreateUserIfNeeded() { var user = _userManager.Users.FirstOrDefault(u => u.Name == DefaultUser); if (user == null) { user = await _userManager.CreateUser(DefaultUser); user.Configuration.IsHidden = true; user.Configuration.IsAdministrator = false; user.SaveConfiguration(); } return user; } public async void Run() { //var defaultUser = await CreateUserIfNeeded().ConfigureAwait(false); //_manager.Start(defaultUser); } #region Dispose public void Dispose() { if (!_disposed) { _disposed = true; _manager.Stop(); _manager.Dispose(); } } #endregion } }