/// <summary>
    /// Initializes a new instance of the <see cref="AdminDashboardViewModel"/> class.
    /// </summary>
    /// <param name="settings">The settings.</param>
    /// <param name="cache">The cache.</param>
    /// <param name="securityRepos">The security repos.</param>
    public AdminDashboardViewModel(ISettings settings, ICache cache, ISecurityRepository securityRepos)
      : this()
    {
      var modules = DependencyResolver.Current.GetServices<IViewModule>()
                  .Union<IModule>(DependencyResolver.Current.GetServices<IServiceModule>())
                  .Union<IModule>(DependencyResolver.Current.GetServices<IToolboxModule>());
      foreach (var module in modules)
      {
        string moduleType = string.Empty;
        if (module is IViewModule)
          moduleType = " (View)";
        else if (module is IServiceModule)
          moduleType = " (Service)";
        else if (module is IToolboxModule)
          moduleType = " (Toolbox)";

        LoadedModules.Add(module.GetType().FullName + moduleType);
      }

      UserStats = securityRepos.GetUserStats();
      CurrentOnlineUserCount = settings.Sessions.Count;

      CacheCount = cache.ItemCount;
      CacheLongTimeout = settings.CacheLongTimeoutSecs;
      CacheMediumTimeout = settings.CacheMediumTimeoutSecs;
      CacheShortTimeout = settings.CacheShortTimeoutSecs;
      CacheConfiguration = settings.CacheOptions;
      CacheProvider = settings.CacheProvider;

      LoggingProvider = settings.LoggingProvider;
      LoggingConfiguration = settings.LogConfiguration;

      DataProvider = settings.DataProvider;
      Database = settings.DBConnectionString;
    }