private void GetNotifications(DataAccess.FileSystem.ConfigData dataAccessor, DirectoryInfo charDirectory) { try { IEnumerable <FileInfo> files = charDirectory.EnumerateFiles("*.PlayerMessage", SearchOption.TopDirectoryOnly); List <IPlayerMessage> dataList = new List <IPlayerMessage>(); foreach (FileInfo file in files) { if (file == null) { continue; } IPlayerMessage newMessage = (IPlayerMessage)dataAccessor.ReadEntity(file, typeof(IPlayerMessage)); if (newMessage != null) { ConfigDataCache.Add(newMessage); dataList.Add(newMessage); } } Notifications = dataList; } catch (Exception ex) { LoggingUtility.LogError(ex); //Let it keep going } }
/// <summary> /// Dumps everything of a single type into the cache from the filesystem for BackingData /// </summary> /// <typeparam name="T">the type to get and store</typeparam> /// <returns>full or partial success</returns> public static bool LoadAllToCache(Type objectType) { if (!objectType.GetInterfaces().Contains(typeof(IConfigData))) { return(false); } DataAccess.FileSystem.ConfigData fileAccessor = new DataAccess.FileSystem.ConfigData(); string typeDirectory = fileAccessor.GetCurrentDirectoryForType(objectType); if (!fileAccessor.VerifyDirectory(typeDirectory, false)) { return(false); } DirectoryInfo filesDirectory = new DirectoryInfo(typeDirectory); foreach (FileInfo file in filesDirectory.EnumerateFiles("*." + objectType.Name)) { try { ConfigDataCache.Add(fileAccessor.ReadEntity(file, objectType)); } catch (Exception ex) { LoggingUtility.LogError(ex); //Let it keep going } } return(true); }
/// <summary> /// Put it in the cache /// </summary> /// <returns>success status</returns> public virtual bool PersistToCache() { try { ConfigDataCache.Add(this); } catch (Exception ex) { LoggingUtility.LogError(ex, LogChannels.SystemWarnings); return(false); } return(true); }
public bool RestoreConfig(IAccount account) { if (account == null) { return(false); } if (_account == null) { _account = account; } DataAccess.FileSystem.ConfigData configData = new DataAccess.FileSystem.ConfigData(); string directory = configData.GetCurrentDirectoryForEntity(this); DirectoryInfo charDirectory = new DirectoryInfo(directory); IAccountConfig newConfig = null; try { FileInfo file = charDirectory.EnumerateFiles("*.AccountConfig", SearchOption.TopDirectoryOnly).FirstOrDefault(); if (file == null) { return(false); } newConfig = (IAccountConfig)configData.ReadEntity(file, GetType()); } catch (Exception ex) { LoggingUtility.LogError(ex); //Let it keep going } if (newConfig != null) { UITutorialMode = newConfig.UITutorialMode; GossipSubscriber = newConfig.GossipSubscriber; SoundMuted = newConfig.SoundMuted; MusicMuted = newConfig.MusicMuted; UILanguage = newConfig.UILanguage; GetNotifications(configData, charDirectory); if (newConfig.Playlists == null) { Playlists = new HashSet <IPlaylist>(); } else { Playlists = newConfig.Playlists; } if (newConfig.Acquaintences == null) { Acquaintences = Enumerable.Empty <IAcquaintence>(); } else { Acquaintences = newConfig.Acquaintences; } if (newConfig.Combos == null) { Combos = Enumerable.Empty <IFightingArtCombination>(); } else { Combos = newConfig.Combos; } if (newConfig.UIModules == null) { UIModules = Enumerable.Empty <Tuple <IUIModule, int> >(); } else { UIModules = newConfig.UIModules; } ConfigDataCache.Add(this); return(true); } return(false); }