public virtual bool SaveData <T>(string username, UserSettingsDataType dataType, T data)
        {
            bool success = ObjectCacheDao.CacheObject(data, GetDataStorageName(username, dataType), DateTime.Now + CacheDuration);

            DebugUtils.AssertDebuggerBreak(success);
            return(success);
        }
        protected virtual string GetDataStorageName(string username, UserSettingsDataType dataType)
        {
            string usernameHash = StringUtils.HashCode64(username).ToString("D19");

            usernameHash = usernameHash.Replace('-', '1');
            return("Settings_" + usernameHash + "_" + dataType.ToString());
        }
        public virtual T LoadData <T>(string username, UserSettingsDataType dataType)
        {
            T data;

            if (LoadData <T>(username, dataType, out data))
            {
                return(data);
            }
            return(default(T));
        }
        public virtual bool LoadData <T>(string username, UserSettingsDataType dataType, out T data)
        {
            if (string.IsNullOrEmpty(username))
            {
                data = default(T);
                return(false);
            }
            bool success = ObjectCacheDao.GetObject <T>(GetDataStorageName(username, dataType), out data);

            //DebugUtils.AssertDebuggerBreak(success);
            return(success);
        }