public void Execute() { IServerConnectionManager serverConnectionManager = ServiceRegistration.Get <IServerConnectionManager>(); IContentDirectory contentDirectory = serverConnectionManager.ContentDirectory; SystemName homeServerSystem = serverConnectionManager.LastHomeServerSystem; bool localHomeServer = homeServerSystem != null && homeServerSystem.IsLocalSystem(); bool homeServerConncted = contentDirectory != null; ILocalSharesManagement localSharesManagement = ServiceRegistration.Get <ILocalSharesManagement>(); if (localHomeServer) { if (homeServerConncted && contentDirectory.GetShares(null, SharesFilter.All).Count == 0) { IMediaAccessor mediaAccessor = ServiceRegistration.Get <IMediaAccessor>(); foreach (Share share in mediaAccessor.CreateDefaultShares()) { ServerShares serverShareProxy = new ServerShares(share); serverShareProxy.AddShare(); } } } else { if (localSharesManagement.Shares.Count == 0) { localSharesManagement.SetupDefaultShares(); } } // The shares config model listens to share update events from both the local shares management and the home server, // so we don't need to trigger an update of the shares lists here }
public void SetupDefaultShares() { IMediaAccessor mediaAccessor = ServiceRegistration.Get <IMediaAccessor>(); foreach (Share share in mediaAccessor.CreateDefaultShares()) { RegisterShare(share.BaseResourcePath, share.Name, share.UseShareWatcher, share.MediaCategories); } }