Example #1
0
        public int GetOrAdd(IDbConnection connection, string authId, IUserLocalStorageCache cache)
        {
            _checkAndInit(connection, cache);
            int val;

            _storage.TryGetValue(authId, out val);
            if (val != 0)
            {
                return(val);
            }
            var cacheUser = cache.LocalOperation(connection, col => col.FirstOrDefault(i => i.AuthId == authId));

            if (cacheUser != null && cacheUser.Id != 0)
            {
                return(_storage.AddOrUpdateSimple(cacheUser.AuthId, cacheUser.Id));
            }
            var repo      = cache.GetRepository();
            var tableName = repo.SchemeTableName;
            var sql       = $"SELECT TOP(1) * FROM {tableName} WHERE authId=@authId";
            var user      = repo.Provider.Text <user>(connection, sql, new { authId }).ToList();

            if (user.Any())
            {
                var u = user.First();
                cache.UpdateLocalItem(connection, repo.ConvertToWorkModel(u));
                return(_storage.AddOrUpdateSimple(u.authId, u.Id));
            }
            return(0);
        }
        public MainInitializer(IAllianceInitializer allianceInitializer,
                               IMapGInitializer mapGInitializer,
                               IAuthUsersInitializer authUsersInitializer,
                               IGameUserService gameUserService,
                               INpcInitializer npcInitializer,
                               IUserInitializer userInitializer,
                               IUserNameSercherPkCache userNameSercherPkCache,
                               IUserLocalStorageCache userCache,
                               IUserRepository userRepo,
                               IAllianceService allianceService,
                               IChannelService channelService, IDbProvider provider)
        {
            _allianceInitializer  = allianceInitializer;
            _mapGInitializer      = mapGInitializer;
            _authUsersInitializer = authUsersInitializer;
            _gameUserService      = gameUserService;
            _npcInitializer       = npcInitializer;
            _userInitializer      = userInitializer;

            _userNameSercherPkCache = userNameSercherPkCache;
            _userCache       = userCache;
            _userRepo        = userRepo;
            _allianceService = allianceService;
            _provider        = provider;

            _channelService = (ChannelService)channelService;

            _admUser  = MainUserRepository.GetAdminUser();
            _textUser = MainUserRepository.GetTextureUser();
            _demoUser = MainUserRepository.GetUser(MainUserRepository.DemoUserName);
        }
 public HomeController(IServiceProvider serviceProvider) : base(serviceProvider)
 {
     _fs                  = _svp.GetService <IFileStorage>();
     _storeService        = _svp.GetService <IStoreService>();
     _userAuthToGameCache = _svp.GetService <IUserAuthToGameCache>();
     _userChache          = _svp.GetService <IUserLocalStorageCache>();
 }
Example #4
0
        public int TryGetValue(IDbConnection connection, string authId, IUserLocalStorageCache cache)
        {
            _checkAndInit(connection, cache);
            int id;

            _storage.TryGetValue(authId, out id);
            return(id);
        }
Example #5
0
        public GameUserService(IUserRepository userRepo, IAllianceService allianceService, IUserLocalStorageCache userCache,
                               IUserAuthToGameCache userAuthToGameIdCache, IUserNameSercherPkCache userNameSercherPkCache,
                               IGDetailPlanetService planetService, IServiceProvider svp)
        {
            _userRepo        = userRepo;
            _allianceService = allianceService;

            _userCache              = userCache;
            _userAuthToGameIdCache  = userAuthToGameIdCache;
            _userNameSercherPkCache = userNameSercherPkCache;
            _planetService          = planetService;
            _svp = svp;
        }
Example #6
0
 private void _checkAndInit(IDbConnection connection, IUserLocalStorageCache cache)
 {
     if (!Equals(_cache, cache))
     {
         _cache = cache;
     }
     if (_storage == null)
     {
         var users = cache.LocalGetAll(connection);
         if (users != null && users.Any())
         {
             _storage = new ConcurrentDictionary <string, int>(users.ToDictionary(i => i.Nickname, i => i.Id));
         }
         else
         {
             _storage = new ConcurrentDictionary <string, int>();
         }
     }
 }
Example #7
0
        public bool TryUpdateKey(IDbConnection connection, int userId, string oldUserName, string newUserName,
                                 IUserLocalStorageCache cache, bool updateParentCahce = true)
        {
            _checkAndInit(connection, cache);
            int id;

            if (!_storage.TryUpdateKey(oldUserName, newUserName, out id))
            {
                return(false);
            }
            if (!updateParentCahce)
            {
                return(true);
            }
            var user = cache.GetById(connection, id, true);

            user.Nickname = newUserName;
            var result = cache.UpdateLocalItem(connection, user);

            return(result.Nickname == newUserName);
        }
Example #8
0
        public int GetOrAdd(IDbConnection connection, string userName, IUserLocalStorageCache cache)
        {
            _checkAndInit(connection, cache);
            int val;

            _storage.TryGetValue(userName, out val);
            if (val != 0)
            {
                return(val);
            }
            var cacheUser = cache.LocalOperation(connection, col => col.FirstOrDefault(i => i.Nickname == userName));

            if (cacheUser != null && cacheUser.Id != 0)
            {
                return(_storage.AddOrUpdateSimple(cacheUser.Nickname, cacheUser.Id));
            }
            var repo      = cache.GetRepository();
            var tableName = repo.SchemeTableName;
            var sql       = $"SELECT TOP(1) * FROM {tableName} WHERE nickname=@userName";
            var user      = repo.Provider.Text <user>(connection, sql, new { userName }).Single();

            cache.UpdateLocalItem(connection, repo.ConvertToWorkModel(user));
            return(_storage.AddOrUpdateSimple(user.authId, user.Id));
        }
Example #9
0
 public bool TryUpdateKey(IDbConnection connection, int pkId, string oldKeyName, string newKeyName,
                          IUserLocalStorageCache cache, bool updateParentCahce = true) => throw new NotImplementedException();
Example #10
0
 public List <string> GetAllKeys(IDbConnection connection, IUserLocalStorageCache cache)
 {
     _checkAndInit(connection, cache);
     return(_storage.GetKeys());
 }
Example #11
0
 TryFind(IDbConnection connection, string partName, IUserLocalStorageCache cache) =>
 throw new NotImplementedException();
Example #12
0
 public int AddOrUpdate(IDbConnection connection, string authId, int userId, IUserLocalStorageCache cache)
 {
     _checkAndInit(connection, cache);
     return(_storage.AddOrUpdateSimple(authId, userId));
 }
Example #13
0
        public Dictionary <string, int> TryFind(IDbConnection connection, string partName, IUserLocalStorageCache cache)
        {
            if (string.IsNullOrWhiteSpace(partName))
            {
                throw new NullReferenceException(nameof(partName));
            }
            var keys    = GetAllKeys(connection, cache);
            var contain = keys.Where(i => i.IndexOf(partName, StringComparison.OrdinalIgnoreCase) != -1).ToList();
            var result  = new Dictionary <string, int>();

            foreach (var i in contain)
            {
                int id;
                _storage.TryGetValue(i, out id);
                result.Add(i, id);
            }
            return(result);
        }
Example #14
0
 public List <string> GetAllKeys(IDbConnection connection, IUserLocalStorageCache cache)
 {
     _checkAndInit(connection, cache);
     return(_storage.Select(i => i.Key).ToList());
 }