Exemplo n.º 1
0
        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
            }
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        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);
        }