/// <summary>
        ///   Inietta le dipendenze richieste dal controller.
        /// </summary>
        /// <param name="dataSourceManager">Il gestore della sorgente dati di Caravan.</param>
        /// <param name="clock">L'orologio di sistema.</param>
        /// <param name="oneTimeTokenEncoder">
        ///   Il componente che codifica e decodifica i token "one time".
        /// </param>
        protected AbstractHelpController(ICaravanDataSourceManager dataSourceManager, IClock clock, ICookieEncoder<OneTimeToken> oneTimeTokenEncoder)
        {
            // Preconditions
            Raise.ArgumentNullException.IfIsNull(dataSourceManager, nameof(dataSourceManager));
            Raise.ArgumentNullException.IfIsNull(clock, nameof(clock));
            Raise.ArgumentNullException.IfIsNull(oneTimeTokenEncoder, nameof(oneTimeTokenEncoder));

            DataSourceManager = dataSourceManager;
            Clock = clock;
            _oneTimeTokenEncoder = oneTimeTokenEncoder;
        }
        /// <summary>
        ///   Inietta le dipendenze.
        /// </summary>
        /// <param name="log">Il log.</param>
        /// <param name="securityRepository">Gestione della sicurezza.</param>
        /// <param name="clock">L'orologio di sistema.</param>
        /// <param name="dataSourceManager">Il gestore della sorgente dati di Caravan.</param>
        public CaravanMenuController(ILog log, ICaravanSecurityRepository securityRepository, IClock clock, ICaravanDataSourceManager dataSourceManager)
        {
            // Preconditions
            Raise.ArgumentNullException.IfIsNull(log, nameof(log));
            Raise.ArgumentNullException.IfIsNull(securityRepository, nameof(securityRepository));
            Raise.ArgumentNullException.IfIsNull(clock, nameof(clock));
            Raise.ArgumentNullException.IfIsNull(dataSourceManager, nameof(dataSourceManager));

            _log = log;
            _securityRepository = securityRepository;
            _clock = clock;
            _dataSourceManager = dataSourceManager;
        }
Beispiel #3
0
 /// <summary>
 ///   Inietta le dipendenze richieste dal controller.
 /// </summary>
 /// <param name="dataSourceManager">Il gestore della sorgente dati di Caravan.</param>
 /// <param name="clock">L'orologio di sistema.</param>
 /// <param name="oneTimeTokenEncoder">
 ///   Il componente che codifica e decodifica i token "one time".
 /// </param>
 public HelpController(ICaravanDataSourceManager dataSourceManager, IClock clock, ICookieEncoder<OneTimeToken> oneTimeTokenEncoder)
     : base(dataSourceManager, clock, oneTimeTokenEncoder)
 {
 }
        /// <summary>
        ///   Restituisce informazioni sul servizio, come la sorgente dati e la versione.
        /// </summary>
        /// <param name="assembly">L'assembly di cui si vuole mostrare la versione.</param>
        /// <param name="dataSourceManager">Il gestore della sorgente dati di Caravan.</param>
        /// <param name="clock">L'orologio di sistema.</param>
        protected internal static ServiceInfoDTO GetServiceInfo(Assembly assembly, ICaravanDataSourceManager dataSourceManager, IClock clock)
        {
            // Lettura della versione dell'assembly del servizio.
            var version = FileVersionInfo.GetVersionInfo(assembly.Location).FileVersion;

            // Lettura delle informazioni sul processo.
            var bitness = (IntPtr.Size == 4) ? "x86" : "x64";
            var memoryUsageMB = Process.GetCurrentProcess().WorkingSet64 / (1024L * 1024L);

            // Lettura delle informazioni sulla macchina server.
            var hostName = Environment.MachineName.ToUpperInvariant();

            // Lettura delle informazioni sulla sorgente dati.
            var dsName = dataSourceManager.DataSourceName.ToUpperInvariant();
            var dsKind = dataSourceManager.DataSourceKind.ToString();

            return new ServiceInfoDTO
            {
                Version = version,
                ProcessBitness = bitness,
                ProcessMemoryUsageMB = memoryUsageMB,
                HostName = hostName,
                HostDateTime = clock.UtcNow,
                DataSourceName = dsName,
                DataSourceKind = dsKind,
                DataSourceDateTime = dataSourceManager.DataSourceDateTime
            };
        }