/// <summary>
 /// Gets the system status.
 /// </summary>
 /// <returns>SystemInfo.</returns>
 public virtual SystemInfo GetSystemInfo()
 {
     return(new SystemInfo
     {
         HasPendingRestart = HasPendingRestart,
         Version = ApplicationVersion.ToString(),
         IsNetworkDeployed = CanSelfUpdate,
         WebSocketPortNumber = HttpServerPort,
         SupportsNativeWebSocket = true,
         FailedPluginAssemblies = FailedAssemblies.ToList(),
         InProgressInstallations = InstallationManager.CurrentInstallations.Select(i => i.Item1).ToList(),
         CompletedInstallations = InstallationManager.CompletedInstallations.ToList(),
         Id = SystemId,
         ProgramDataPath = ApplicationPaths.ProgramDataPath,
         LogPath = ApplicationPaths.LogDirectoryPath,
         ItemsByNamePath = ApplicationPaths.ItemsByNamePath,
         InternalMetadataPath = ApplicationPaths.InternalMetadataPath,
         CachePath = ApplicationPaths.CachePath,
         MacAddress = GetMacAddress(),
         HttpServerPortNumber = HttpServerPort,
         OperatingSystem = Environment.OSVersion.ToString(),
         CanSelfRestart = CanSelfRestart,
         CanSelfUpdate = CanSelfUpdate,
         WanAddress = ConnectManager.WanApiAddress,
         HasUpdateAvailable = HasUpdateAvailable,
         SupportsAutoRunAtStartup = SupportsAutoRunAtStartup,
         TranscodingTempPath = ApplicationPaths.TranscodingTempPath,
         IsRunningAsService = IsRunningAsService,
         SupportsRunningAsService = SupportsRunningAsService,
         ServerName = FriendlyName,
         LocalAddress = GetLocalIpAddress()
     });
 }
Esempio n. 2
0
        /// <summary>
        /// Discovers the types.
        /// </summary>
        protected void DiscoverTypes()
        {
            FailedAssemblies.Clear();

            var assemblies = GetComposablePartAssemblies().ToList();

            foreach (var assembly in assemblies)
            {
                Logger.Info("Loading {0}", assembly.FullName);
            }

            AllConcreteTypes = assemblies
                               .SelectMany(GetTypes)
                               .Where(t =>
            {
#if NET46
                return(t.IsClass && !t.IsAbstract && !t.IsInterface && !t.IsGenericType);
#endif
#if NETSTANDARD1_6
                var typeInfo = t.GetTypeInfo();
                return(typeInfo.IsClass && !typeInfo.IsAbstract && !typeInfo.IsInterface && !typeInfo.IsGenericType);
#endif
                return(false);
            })
                               .ToArray();
        }
Esempio n. 3
0
 /// <summary>
 /// Gets the system status.
 /// </summary>
 /// <returns>SystemInfo.</returns>
 public virtual SystemInfo GetSystemInfo()
 {
     return(new SystemInfo
     {
         HasPendingRestart = HasPendingRestart,
         Version = ApplicationVersion.ToString(),
         IsNetworkDeployed = CanSelfUpdate,
         WebSocketPortNumber = ServerManager.WebSocketPortNumber,
         SupportsNativeWebSocket = ServerManager.SupportsNativeWebSocket,
         FailedPluginAssemblies = FailedAssemblies.ToList(),
         InProgressInstallations = InstallationManager.CurrentInstallations.Select(i => i.Item1).ToList(),
         CompletedInstallations = InstallationManager.CompletedInstallations.ToList(),
         Id = _systemId,
         ProgramDataPath = ApplicationPaths.ProgramDataPath,
         LogPath = ApplicationPaths.LogDirectoryPath,
         ItemsByNamePath = ApplicationPaths.ItemsByNamePath,
         CachePath = ApplicationPaths.CachePath,
         MacAddress = GetMacAddress(),
         HttpServerPortNumber = ServerConfigurationManager.Configuration.HttpServerPortNumber,
         OperatingSystem = Environment.OSVersion.ToString(),
         CanSelfRestart = CanSelfRestart,
         CanSelfUpdate = CanSelfUpdate,
         WanAddress = GetWanAddress(),
         HasUpdateAvailable = _hasUpdateAvailable,
         SupportsAutoRunAtStartup = SupportsAutoRunAtStartup,
         TranscodingTempPath = ApplicationPaths.TranscodingTempPath,
         IsRunningAsService = IsRunningAsService,
         ServerName = string.IsNullOrWhiteSpace(ServerConfigurationManager.Configuration.ServerName) ? Environment.MachineName : ServerConfigurationManager.Configuration.ServerName
     });
 }
Esempio n. 4
0
 /// <summary>
 /// Loads the assembly.
 /// </summary>
 /// <param name="file">The file.</param>
 /// <returns>Assembly.</returns>
 protected Assembly LoadAssembly(string file)
 {
     try
     {
         return(Assembly.Load(File.ReadAllBytes((file))));
     }
     catch (Exception ex)
     {
         FailedAssemblies.Add(file);
         Logger.ErrorException("Error loading assembly {0}", ex, file);
         return(null);
     }
 }
Esempio n. 5
0
        /// <summary>
        /// Discovers the types.
        /// </summary>
        protected void DiscoverTypes()
        {
            FailedAssemblies.Clear();

            var assemblies = GetComposablePartAssemblies().ToList();

            foreach (var assembly in assemblies)
            {
                Logger.Info("Loading {0}", assembly.FullName);
            }

            AllTypes = assemblies.SelectMany(GetTypes).ToArray();

            AllConcreteTypes = AllTypes.Where(t => t.IsClass && !t.IsAbstract && !t.IsInterface && !t.IsGenericType).ToArray();
        }
Esempio n. 6
0
 /// <summary>
 /// Gets the system status.
 /// </summary>
 /// <returns>SystemInfo.</returns>
 public virtual SystemInfo GetSystemInfo()
 {
     return(new SystemInfo
     {
         HasPendingRestart = HasPendingRestart,
         Version = ApplicationVersion.ToString(),
         IsNetworkDeployed = CanSelfUpdate,
         WebSocketPortNumber = ServerManager.WebSocketPortNumber,
         SupportsNativeWebSocket = ServerManager.SupportsNativeWebSocket,
         FailedPluginAssemblies = FailedAssemblies.ToArray(),
         InProgressInstallations = InstallationManager.CurrentInstallations.Select(i => i.Item1).ToArray(),
         CompletedInstallations = InstallationManager.CompletedInstallations.ToArray(),
         Id = _systemId
     });
 }
Esempio n. 7
0
        /// <summary>
        /// Loads the assembly.
        /// </summary>
        /// <param name="file">The file.</param>
        /// <returns>Assembly.</returns>
        protected Assembly LoadAssembly(string file)
        {
            try
            {
#if NET46
                return(Assembly.Load(File.ReadAllBytes(file)));
#elif NETSTANDARD1_6
                return(AssemblyLoadContext.Default.LoadFromStream(new MemoryStream(File.ReadAllBytes(file))));
#endif
                return(null);
            }
            catch (Exception ex)
            {
                FailedAssemblies.Add(file);
                Logger.ErrorException("Error loading assembly {0}", ex, file);
                return(null);
            }
        }
Esempio n. 8
0
 /// <summary>
 /// Gets the system status.
 /// </summary>
 /// <returns>SystemInfo.</returns>
 public virtual SystemInfo GetSystemInfo()
 {
     return(new SystemInfo
     {
         HasPendingRestart = HasPendingRestart,
         Version = ApplicationVersion.ToString(),
         IsNetworkDeployed = CanSelfUpdate,
         WebSocketPortNumber = ServerManager.WebSocketPortNumber,
         SupportsNativeWebSocket = ServerManager.SupportsNativeWebSocket,
         FailedPluginAssemblies = FailedAssemblies.ToList(),
         InProgressInstallations = InstallationManager.CurrentInstallations.Select(i => i.Item1).ToList(),
         CompletedInstallations = InstallationManager.CompletedInstallations.ToList(),
         Id = _systemId,
         ProgramDataPath = ApplicationPaths.ProgramDataPath,
         MacAddress = GetMacAddress(),
         HttpServerPortNumber = ServerConfigurationManager.Configuration.HttpServerPortNumber,
         OperatingSystem = Environment.OSVersion.ToString(),
         CanSelfRestart = CanSelfRestart,
         CanSelfUpdate = CanSelfUpdate
     });
 }