public async Task Init(LangKeys langKey) { try { await _dbProvider.ContextActionAsync(async c => { var cid = Context.ConnectionId; var data = await _initUserAsync(c, cid, langKey); var cu = (ConnectionUser)data[ConnectionUser.ViewKey]; _gameRunner.OnConnected(cid, cu.UserId); data.Add("serverTime", UnixTime.UtcNowMs()); await Clients.Caller.InvokeAsync("onUserInitialized", _gameRunner.OnlineUserCount, cu.UserId, cu.AllianceId, data); await Clients.Others.InvokeAsync("onUserInitialized", _gameRunner.OnlineUserCount, cu.UserId, cu.AllianceId); return(true); }); } catch (Exception e) { await Clients.Caller.InvokeAsync("disconnect", true); throw new HubException(e.Message, e); } }
public static int GetKeyIndex(string key) { if (!string.IsNullOrEmpty(key)) { return(LangKeys.IndexOf(key)); } return(-1); }
public static void SetCulture(LangKeys langKey) { LocalizerService.SetCulture(langKey); }
public static void SetCulture(LangKeys langKey) { SetCulture(langKey.ToString()); }
private async Task <Dictionary <string, object> > _initUserAsync(IDbConnection connection, string curInitConnectionUserId, LangKeys langKey) { try { var user = _getPrincipalUser(); //todo поставил заглушку, сейчас можно извлеч имя или обращатсья в базу var authId = user.GetAuthUserId(); var oldUserConnections = _getLocalUserListByAuthId(connection, authId); if (oldUserConnections != null && oldUserConnections.Any()) { foreach (var conItem in oldUserConnections) { var cId = conItem.ConnectionId; var uId = conItem.UserId; _removeUserFromStorage(cId); await conItem.RemoveUserFromAllHubGroups(Groups); _gameRunner.OnDisonnected(cId, uId); await Clients.Client(conItem.ConnectionId).InvokeAsync("disconnect", true); } } var data = _estateOwnService.InitUser(connection, user, _svp); var cr = (ConnectionUser)data[ConnectionUser.ViewKey]; if (cr == null) { throw new NotImplementedException("MainGameHub.UnitUser"); } cr.Lang = langKey; cr.ConnectionId = curInitConnectionUserId; var addGroupsTasks = new List <Task> { cr.AddOrReplaceAllianceGroupAsync(Groups) }; var userAllianceRole = AllianceRoleHelper.GetByRoleId(cr.AllianceRoleId); if (cr.AllianceId != (byte)NpcAllianceId.Confederation) { if (userAllianceRole.AcceptNewMembers) { addGroupsTasks.Add(cr.AddOrReplaceAllianceRecrutManagerGroupAsync(Groups)); } } var messages = _channelService.InitialPlanshetChannels(connection, cr.UserId, cr.AllianceId, userAllianceRole); var privateChannesData = messages.Bodys[0].TemplateData as ChannelTab; if (privateChannesData != null && privateChannesData.Collection.Any()) { addGroupsTasks.AddRange(privateChannesData.Collection.Select(privateChannesl => cr.AddOrReplacePrivateChannelGroupNameAsync(Groups, privateChannesl.Key))); } var groupChannesData = messages.Bodys[1].TemplateData as ChannelTab; if (groupChannesData != null && groupChannesData.Collection.Any()) { addGroupsTasks.AddRange(groupChannesData.Collection.Select(groupChannel => cr.AddOrReplaceGroupChannelGroupNameAsync(Groups, groupChannel.Key, groupChannel.Value.ChannelName))); } await Task.WhenAll(addGroupsTasks); data[messages.UniqueId] = messages; data[ConnectionUser.ViewKey] = _hubCache.AddOrUpdateLocal(cr, true); var confederationPlanshet = _confederationService.InitialPlanshetConfederation(connection, _gameUserService); data[confederationPlanshet.UniqueId] = confederationPlanshet; var estates = (IList <EstateItemOut>)data[EstateItemOut.ViewKey]; var planetIds = estates.Where(i => i.OwnId != 0).Select(i => i.OwnId).ToList(); var journalPlanshet = _journalOutService.InitialPlanshet(connection, cr.UserId, planetIds); data[journalPlanshet.UniqueId] = journalPlanshet; return(data); } catch (Exception e) { throw new HubException(e.Message, e); } }
public string this[LangKeys langKey] => Phrases.ContainsKey(langKey) ? Phrases[langKey] : null;
public static void SetLangKey(DependencyObject elem, LangKeys value) { elem.SetValue(LangKeyProperty, value); }
public static string ToInvariant(this LangKeys key) { return(key.ToString().ToLower()); }