private void RefreshMods(object param = null)
 {
     try
     {
         // Refresh only if last updated more than 30 seconds ago
         if (lastUpdated < DateTime.Now.AddSeconds(-30))
         {
             IsLoading = true;
             log.Info("Loading mods from Trovesaurus API");
             TrovesaurusApi.RefreshModList();
             TrovesaurusMods.Clear();
             foreach (TroveMod mod in TrovesaurusApi.ModList)
             {
                 TrovesaurusMods.Add(new TroveModViewModel(mod));
             }
             lastUpdated = DateTime.Now;
             log.Info("Loading mod list complete");
         }
         else
         {
             log.InfoFormat("Please wait {0} to refresh the mod list again", lastUpdated.AddSeconds(30).Subtract(DateTime.Now).Humanize());
         }
     }
     catch (Exception ex)
     {
         log.Error("Error refreshing mods", ex);
     }
     finally
     {
         IsLoading = false;
     }
 }
 public DesignTimeGetMoreModsViewModel() : base()
 {
     foreach (TroveMod mod in JsonConvert.DeserializeObject <List <TroveMod> >(Resources.DesignTimeTroveMods))
     {
         TrovesaurusMods.Add(new TroveModViewModel(mod));
     }
     BuildTypesCollections();
 }