/// <summary> /// Initializes a new instance of the <see cref="T:Chat.Common.Presenter.BasePresenter"/> class. /// </summary> public BasePresenter() { _webApiAccess = new WebApiAccess(); _signalREvents = new Dictionary<string, Action<string>>() { {"clients", (data) => { var list = JsonConvert.DeserializeObject<IEnumerable<string>>(data); if (ConnectedClientsUpdated != null) { ConnectedClientsUpdated(this, new ConnectedClientsUpdatedEventArgs(list.Select(x => new Client { Username = x, }))); } } }, {"chat", (data) => { if (ChatReceived != null) { ChatReceived(this, new ChatEventArgs(data)); } } }, }; }
public void Setup() { PacketFactory.Initialize <NoS0575Packet>(); var builder = new ConfigurationBuilder(); var databaseConfiguration = new SqlConnectionConfiguration(); builder.SetBasePath(Directory.GetCurrentDirectory() + ConfigurationPath); builder.AddJsonFile("database.json", false); builder.Build().Bind(databaseConfiguration); databaseConfiguration.Database = "postgresunittest"; var sqlconnect = databaseConfiguration; DataAccessHelper.Instance.EnsureDeleted(sqlconnect); var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly()); XmlConfigurator.Configure(logRepository, new FileInfo(ConfigurationPath + "/log4net.config")); Logger.InitializeLogger(LogManager.GetLogger(typeof(LoginPacketController))); DataAccessHelper.Instance.Initialize(sqlconnect); DAOFactory.RegisterMapping(typeof(GameObject.Character).Assembly); var map = new MapDTO { MapId = 1 }; DAOFactory.MapDAO.InsertOrUpdate(ref map); _acc = new AccountDTO { Name = Name, Password = EncryptionHelper.Sha512("test") }; DAOFactory.AccountDAO.InsertOrUpdate(ref _acc); _session.InitializeAccount(_acc); _handler = new LoginPacketController(new LoginConfiguration()); _handler.RegisterSession(_session); WebApiAccess.RegisterBaseAdress(); WebApiAccess.Instance.MockValues = new Dictionary <string, object>(); }
public void GetRatings() { foreach (var bar in this) { bar.Ratings = WebApiAccess.GetBarRatings(bar); } }
public void Setup() { PacketFactory.Initialize <NoS0575Packet>(); var builder = new ConfigurationBuilder(); var contextBuilder = new DbContextOptionsBuilder <NosCoreContext>().UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()); DataAccessHelper.Instance.InitializeForTest(contextBuilder.Options); var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly()); XmlConfigurator.Configure(logRepository, new FileInfo(ConfigurationPath + "/log4net.config")); Logger.InitializeLogger(LogManager.GetLogger(typeof(LoginPacketController))); var map = new MapDTO { MapId = 1 }; DAOFactory.MapDAO.InsertOrUpdate(ref map); _acc = new AccountDTO { Name = Name, Password = EncryptionHelper.Sha512("test") }; DAOFactory.AccountDAO.InsertOrUpdate(ref _acc); _session.InitializeAccount(_acc); _handler = new LoginPacketController(new LoginConfiguration()); _handler.RegisterSession(_session); WebApiAccess.RegisterBaseAdress(); WebApiAccess.Instance.MockValues = new Dictionary <string, object>(); }
private void ConnectMaster() { async Task RunMasterClient(string targetHost, int port, string password, MasterClient clientType, int connectedAccountLimit = 0, int clientPort = 0, byte serverGroup = 0, string serverHost = "") { var group = new MultithreadEventLoopGroup(); var bootstrap = new Bootstrap(); bootstrap .Group(group) .Channel <TcpSocketChannel>() .Option(ChannelOption.TcpNodelay, true) .Handler(new ActionChannelInitializer <ISocketChannel>(channel => { var pipeline = channel.Pipeline; pipeline.AddLast(new LengthFieldPrepender(2)); pipeline.AddLast(new LengthFieldBasedFrameDecoder(ushort.MaxValue, 0, 2, 0, 2)); pipeline.AddLast(new StringEncoder(), new StringDecoder()); pipeline.AddLast(new MasterClientSession(password)); })); var connection = await bootstrap.ConnectAsync(new IPEndPoint(IPAddress.Parse(targetHost), port)) .ConfigureAwait(false); await connection.WriteAndFlushAsync(new Channel { Password = password, ClientName = clientType.Name, ClientType = (byte)clientType.Type, ConnectedAccountsLimit = connectedAccountLimit, Port = clientPort, ServerGroup = serverGroup, Host = serverHost }).ConfigureAwait(false); } while (true) { try { WebApiAccess.RegisterBaseAdress(_loginConfiguration.MasterCommunication.WebApi.ToString(), _loginConfiguration.MasterCommunication.Password); RunMasterClient(_loginConfiguration.MasterCommunication.Host, Convert.ToInt32(_loginConfiguration.MasterCommunication.Port), _loginConfiguration.MasterCommunication.Password, new MasterClient { Name = "LoginServer", Type = ServerType.LoginServer }).Wait(); break; } catch { Logger.Log.Error(LogLanguage.Instance.GetMessageFromKey(LanguageKey.MASTER_SERVER_RETRY)); Thread.Sleep(5000); } } }
private void ConnectMaster() { async Task RunMasterClient(string targetHost, int port, string password, MasterClient clientType, ServerConfiguration webApi, int connectedAccountLimit = 0, int clientPort = 0, byte serverGroup = 0, string serverHost = "") { var group = new MultithreadEventLoopGroup(); var bootstrap = new Bootstrap(); bootstrap .Group(group) .Channel <TcpSocketChannel>() .Option(ChannelOption.TcpNodelay, true) .Handler(new ActionChannelInitializer <ISocketChannel>(channel => { var pipeline = channel.Pipeline; pipeline.AddLast(new LengthFieldPrepender(2)); pipeline.AddLast(new LengthFieldBasedFrameDecoder(ushort.MaxValue, 0, 2, 0, 2)); pipeline.AddLast(new StringEncoder(), new StringDecoder()); pipeline.AddLast(new MasterClientSession(password, ConnectMaster)); })); var connection = await bootstrap.ConnectAsync(new IPEndPoint(IPAddress.Parse(targetHost), port)); await connection.WriteAndFlushAsync(new Channel { Password = password, ClientName = clientType.Name, ClientType = (byte)clientType.Type, connectedAccountLimit = connectedAccountLimit, Port = clientPort, ServerGroup = serverGroup, Host = serverHost, WebApi = webApi }); } WebApiAccess.RegisterBaseAdress(_worldConfiguration.MasterCommunication.WebApi.ToString(), _worldConfiguration.MasterCommunication.Password); Policy .Handle <Exception>() .WaitAndRetryForeverAsync(retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), (_, __, timeSpan) => Logger.Log.Error(string.Format(LogLanguage.Instance.GetMessageFromKey(LanguageKey.MASTER_SERVER_RETRY), timeSpan.TotalSeconds)) ).ExecuteAsync(() => RunMasterClient(_worldConfiguration.MasterCommunication.Host, Convert.ToInt32(_worldConfiguration.MasterCommunication.Port), _worldConfiguration.MasterCommunication.Password, new MasterClient { Name = _worldConfiguration.ServerName, Type = ServerType.WorldServer, WebApi = _worldConfiguration.WebApi }, _worldConfiguration.WebApi, _worldConfiguration.ConnectedAccountLimit, _worldConfiguration.Port, _worldConfiguration.ServerGroup, _worldConfiguration.Host) ).Wait(); }
private void ConnectMaster() { WebApiAccess.RegisterBaseAdress(new Channel { MasterCommunication = _friendServerConfiguration.MasterCommunication, ClientType = ServerType.FriendServer, ServerGroup = 0, WebApi = _friendServerConfiguration.WebApi }); }
private void ConnectMaster() { WebApiAccess.RegisterBaseAdress(new Channel { MasterCommunication = _loginConfiguration.MasterCommunication, ClientType = ServerType.LoginServer, ClientName = $"{ServerType.LoginServer}({_loginConfiguration.UserLanguage})", Port = _loginConfiguration.Port, Host = _loginConfiguration.Host }); }
private void ConnectMaster() { WebApiAccess.RegisterBaseAdress(new Channel { MasterCommunication = _worldConfiguration.MasterCommunication, ClientName = _worldConfiguration.ServerName, ClientType = ServerType.WorldServer, ConnectedAccountLimit = _worldConfiguration.ConnectedAccountLimit, Port = _worldConfiguration.Port, ServerGroup = _worldConfiguration.ServerGroup, Host = _worldConfiguration.Host, WebApi = _worldConfiguration.WebApi }); }
private static void connectMaster() { while (true) { try { WebApiAccess.RegisterBaseAdress(_loginConfiguration.MasterCommunication.WebApi.ToString()); RunMasterClient(_loginConfiguration.MasterCommunication.Host, Convert.ToInt32(_loginConfiguration.MasterCommunication.Port), _loginConfiguration.MasterCommunication.Password, new MasterClient() { Name = "LoginServer", Type = ServerType.LoginServer }).Wait(); break; } catch { Logger.Log.Error(LogLanguage.Instance.GetMessageFromKey("MASTER_SERVER_RETRY")); Thread.Sleep(5000); } } }
public void Setup() { PacketFactory.Initialize <NoS0575Packet>(); var contextBuilder = new DbContextOptionsBuilder <NosCoreContext>().UseInMemoryDatabase( databaseName: Guid.NewGuid().ToString()); DataAccessHelper.Instance.InitializeForTest(contextBuilder.Options); var map = new MapDto { MapId = 1 }; DaoFactory.MapDao.InsertOrUpdate(ref map); _acc = new AccountDto { Name = Name, Password = EncryptionHelper.Sha512("test") }; DaoFactory.AccountDao.InsertOrUpdate(ref _acc); _session.InitializeAccount(_acc); _handler = new LoginPacketController(new LoginConfiguration()); _handler.RegisterSession(_session); WebApiAccess.RegisterBaseAdress(); WebApiAccess.Instance.MockValues = new Dictionary <string, object>(); }
public void Setup() { PacketFactory.Initialize <NoS0575Packet>(); Broadcaster.Instance.Reset(); var contextBuilder = new DbContextOptionsBuilder <NosCoreContext>().UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()); DataAccessHelper.Instance.InitializeForTest(contextBuilder.Options); var map = new MapDto { MapId = 1 }; DaoFactory.MapDao.InsertOrUpdate(ref map); var account = new AccountDto { Name = "AccountTest", Password = EncryptionHelper.Sha512("test") }; var targetAccount = new AccountDto { Name = "test2", Password = EncryptionHelper.Sha512("test") }; DaoFactory.AccountDao.InsertOrUpdate(ref account); DaoFactory.AccountDao.InsertOrUpdate(ref targetAccount); WebApiAccess.RegisterBaseAdress(); WebApiAccess.Instance.MockValues = new Dictionary <string, object> { { "api/channels", new List <WorldServerInfo> { new WorldServerInfo() } }, { "api/connectedAccount", new List <ConnectedAccount>() } }; _chara = new CharacterDto { CharacterId = 0, Name = "TestExistingCharacter", Slot = 1, AccountId = account.AccountId, MapId = 1, State = CharacterState.Active }; _targetChar = new CharacterDto { CharacterId = 1, Name = "TestChar2", Slot = 1, AccountId = targetAccount.AccountId, MapId = 1, State = CharacterState.Active }; DaoFactory.CharacterDao.InsertOrUpdate(ref _chara); _session.InitializeAccount(account); _session.SessionId = 1; _handler = new DefaultPacketController(null, null); _handler.RegisterSession(_session); _targetSession.InitializeAccount(targetAccount); _targetSession.SessionId = 2; _handler2 = new DefaultPacketController(null, null); _handler2.RegisterSession(_targetSession); DaoFactory.CharacterDao.InsertOrUpdate(ref _targetChar); _targetSession.InitializeAccount(targetAccount); _session.SetCharacter(_chara.Adapt <Character>()); _session.Character.MapInstance = new MapInstance(new Map(), Guid.NewGuid(), true, MapInstanceType.BaseMapInstance, null); _targetSession.SetCharacter(_targetChar.Adapt <Character>()); _targetSession.Character.MapInstance = new MapInstance(new Map(), Guid.NewGuid(), true, MapInstanceType.BaseMapInstance, null); Broadcaster.Instance.RegisterSession(_session); Broadcaster.Instance.RegisterSession(_targetSession); }
public void Setup() { TypeAdapterConfig.GlobalSettings.ForDestinationType <IInitializable>().AfterMapping(dest => Task.Run(() => dest.Initialize())); PacketFactory.Initialize <NoS0575Packet>(); Broadcaster.Reset(); var contextBuilder = new DbContextOptionsBuilder <NosCoreContext>().UseInMemoryDatabase( databaseName: Guid.NewGuid().ToString()); DataAccessHelper.Instance.InitializeForTest(contextBuilder.Options); var map = new MapDto { MapId = 1 }; _mapDao.InsertOrUpdate(ref map); var account = new AccountDto { Name = "AccountTest", Password = "******".ToSha512() }; _accountDao.InsertOrUpdate(ref account); WebApiAccess.RegisterBaseAdress(); WebApiAccess.Instance.MockValues = new Dictionary <WebApiRoute, object> { { WebApiRoute.Channel, new List <ChannelInfo> { new ChannelInfo() } }, { WebApiRoute.ConnectedAccount, new List <ConnectedAccount>() } }; var conf = new WorldConfiguration { BackpackSize = 3, MaxItemAmount = 999, MaxGoldAmount = 999_999_999 }; var _chara = new Character(new InventoryService(new List <ItemDto>(), conf, _logger), null, null, _characterRelationDao, _characterDao, _itemInstanceDao, _accountDao, _logger) { CharacterId = 1, Name = "TestExistingCharacter", Slot = 1, AccountId = account.AccountId, MapId = 1, State = CharacterState.Active }; ItemProvider itemProvider = new ItemProvider(new List <ItemDto>(), new List <IHandler <Item, Tuple <IItemInstance, UseItemPacket> > >()); _instanceProvider = new MapInstanceProvider(new List <MapDto> { _map, _mapShop }, new MapItemProvider(new List <IHandler <MapItem, Tuple <MapItem, GetPacket> > >()), _mapNpcDao, _mapMonsterDao, _portalDao, new Adapter(), _logger); _instanceProvider.Initialize(); var channelMock = new Mock <IChannel>(); _session = new ClientSession(null, new List <PacketController> { new DefaultPacketController(null, _instanceProvider, null, _logger) }, _instanceProvider, null, _logger); _session.RegisterChannel(channelMock.Object); _session.InitializeAccount(account); _session.SessionId = 1; _handler = new NpcPacketController(conf, new NrunProvider( new List <IHandler <Tuple <IAliveEntity, NrunPacket>, Tuple <IAliveEntity, NrunPacket> > >()), _logger); _handler.RegisterSession(_session); _session.SetCharacter(_chara); var mapinstance = _instanceProvider.GetBaseMapById(0); _session.Character.Account = account; _session.Character.MapInstance = mapinstance; _session.Character.MapInstance.Portals = new List <Portal> { new Portal { DestinationMapId = _map.MapId, Type = PortalType.Open, SourceMapInstanceId = mapinstance.MapInstanceId, DestinationMapInstanceId = mapinstance.MapInstanceId, DestinationX = 5, DestinationY = 5, PortalId = 1, SourceMapId = _map.MapId, SourceX = 0, SourceY = 0, } }; Broadcaster.Instance.RegisterSession(_session); }
public void Setup() { PacketFactory.Initialize <NoS0575Packet>(); var contextBuilder = new DbContextOptionsBuilder <NosCoreContext>().UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()); DataAccessHelper.Instance.InitializeForTest(contextBuilder.Options); var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly()); XmlConfigurator.Configure(logRepository, new FileInfo(ConfigurationPath + "/log4net.config")); Logger.InitializeLogger(LogManager.GetLogger(typeof(DefaultPacketControllerTests))); var map = new MapDto { MapId = 1 }; DaoFactory.MapDao.InsertOrUpdate(ref map); var account = new AccountDto { Name = "AccountTest", Password = EncryptionHelper.Sha512("test") }; var targetAccount = new AccountDto { Name = "test2", Password = EncryptionHelper.Sha512("test") }; DaoFactory.AccountDao.InsertOrUpdate(ref account); DaoFactory.AccountDao.InsertOrUpdate(ref targetAccount); _chara = new CharacterDto { Name = "TestExistingCharacter", Slot = 1, AccountId = account.AccountId, MapId = 1, State = CharacterState.Active }; _targetChar = new CharacterDto { Name = "TestChar2", Slot = 1, AccountId = targetAccount.AccountId, MapId = 1, State = CharacterState.Active }; DaoFactory.CharacterDao.InsertOrUpdate(ref _chara); _session.InitializeAccount(account); _handler = new DefaultPacketController(null, null); _handler.RegisterSession(_session); DaoFactory.CharacterDao.InsertOrUpdate(ref _targetChar); _targetSession.InitializeAccount(targetAccount); WebApiAccess.RegisterBaseAdress(); WebApiAccess.Instance.MockValues = new Dictionary <string, object> { { "api/channels", new List <WorldServerInfo> { new WorldServerInfo() } }, { "api/connectedAccount", new List <ConnectedAccount>() } }; _session.SetCharacter(_chara.Adapt <Character>()); _session.Character.MapInstance = new MapInstance(new Map(), Guid.NewGuid(), true, MapInstanceType.BaseMapInstance, null); _targetSession.SetCharacter(_targetChar.Adapt <Character>()); _targetSession.Character.MapInstance = new MapInstance(new Map(), Guid.NewGuid(), true, MapInstanceType.BaseMapInstance, null); ServerManager.Instance.Sessions = new ConcurrentDictionary <long, ClientSession>(); ServerManager.Instance.Sessions.TryAdd(_chara.CharacterId, _session); ServerManager.Instance.Sessions.TryAdd(_targetChar.CharacterId, _targetSession); }
/// <summary> /// Initializes a new instance of the <see cref="T:Chat.Common.Presenter.LoginPresenter"/> class. /// </summary> /// <param name="state">State.</param> /// <param name="navigationService">Navigation service.</param> public LoginPresenter(ApplicationState state, INavigationService navigationService) { _navigationService = navigationService; _state = state; _webApiAccess = new WebApiAccess(); }
public void Setup() { PacketFactory.Initialize <NoS0575Packet>(); Broadcaster.Reset(); var contextBuilder = new DbContextOptionsBuilder <NosCoreContext>().UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()); DataAccessHelper.Instance.InitializeForTest(contextBuilder.Options); var map = new MapDto { MapId = 1 }; DaoFactory.MapDao.InsertOrUpdate(ref map); var account = new AccountDto { Name = "AccountTest", Password = "******".ToSha512() }; DaoFactory.AccountDao.InsertOrUpdate(ref account); WebApiAccess.RegisterBaseAdress(); WebApiAccess.Instance.MockValues = new Dictionary <WebApiRoute, object> { { WebApiRoute.Channel, new List <ChannelInfo> { new ChannelInfo() } }, { WebApiRoute.ConnectedAccount, new List <ConnectedAccount>() } }; var _chara = new Character(null, null, null) { CharacterId = 1, Name = "TestExistingCharacter", Slot = 1, AccountId = account.AccountId, MapId = 1, State = CharacterState.Active }; _itemProvider = new ItemProvider(new List <Item>(), new List <IHandler <Item, Tuple <IItemInstance, UseItemPacket> > >()); var instanceAccessService = new MapInstanceProvider(new List <NpcMonsterDto>(), new List <Map> { _map, _map2 }, new MapItemProvider(new List <IHandler <MapItem, Tuple <MapItem, GetPacket> > >()), new MapNpcProvider(_itemProvider, new List <ShopDto>(), new List <ShopItemDto>(), new List <NpcMonsterDto>(), new List <MapNpcDto>()), new MapMonsterProvider(new List <Item>(), new List <ShopDto>(), new List <ShopItemDto>(), new List <NpcMonsterDto>(), new List <MapMonsterDto>())); var channelMock = new Mock <IChannel>(); _session = new ClientSession(null, new List <PacketController> { new DefaultPacketController(null, instanceAccessService, null) }, instanceAccessService, null); _session.RegisterChannel(channelMock.Object); _session.InitializeAccount(account); _session.SessionId = 1; _handler = new DefaultPacketController(new WorldConfiguration(), instanceAccessService, null); _handler.RegisterSession(_session); _session.SetCharacter(_chara); var mapinstance = instanceAccessService.GetBaseMapById(0); _session.Character.MapInstance = instanceAccessService.GetBaseMapById(0); _session.Character.MapInstance = mapinstance; _session.Character.MapInstance.Portals = new List <Portal> { new Portal { DestinationMapId = _map2.MapId, Type = PortalType.Open, SourceMapInstanceId = mapinstance.MapInstanceId, DestinationMapInstanceId = instanceAccessService.GetBaseMapById(1).MapInstanceId, DestinationX = 5, DestinationY = 5, PortalId = 1, SourceMapId = _map.MapId, SourceX = 0, SourceY = 0, } }; Broadcaster.Instance.RegisterSession(_session); }
public void Setup() { PacketFactory.Initialize <NoS0575Packet>(); Broadcaster.Reset(); var contextBuilder = new DbContextOptionsBuilder <NosCoreContext>().UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()); DataAccessHelper.Instance.InitializeForTest(contextBuilder.Options); var map = new MapDto { MapId = 1 }; DaoFactory.MapDao.InsertOrUpdate(ref map); var account = new AccountDto { Name = "AccountTest", Password = EncryptionHelper.Sha512("test") }; DaoFactory.AccountDao.InsertOrUpdate(ref account); WebApiAccess.RegisterBaseAdress(); WebApiAccess.Instance.MockValues = new Dictionary <string, object> { { "api/channels", new List <WorldServerInfo> { new WorldServerInfo() } }, { "api/connectedAccount", new List <ConnectedAccount>() } }; var _chara = new CharacterDto { CharacterId = 1, Name = "TestExistingCharacter", Slot = 1, AccountId = account.AccountId, MapId = 1, State = CharacterState.Active }; DaoFactory.CharacterDao.InsertOrUpdate(ref _chara); var instanceAccessService = new MapInstanceAccessService(new List <NpcMonsterDto>(), new List <Map> { _map, _map2 }); var channelMock = new Mock <IChannel>(); _session = new ClientSession(null, new List <PacketController> { new DefaultPacketController(null, instanceAccessService) }, instanceAccessService); _session.RegisterChannel(channelMock.Object); _session.InitializeAccount(account); _session.SessionId = 1; _handler = new DefaultPacketController(null, instanceAccessService); _handler.RegisterSession(_session); _session.SetCharacter(_chara.Adapt <Character>()); var mapinstance = instanceAccessService.GetBaseMapById(0); _session.Character.MapInstance = instanceAccessService.GetBaseMapById(0); _session.Character.MapInstance = mapinstance; _session.Character.MapInstance.Portals = new List <Portal> { new Portal { DestinationMapId = _map2.MapId, Type = PortalType.Open, SourceMapInstanceId = mapinstance.MapInstanceId, DestinationMapInstanceId = instanceAccessService.GetBaseMapById(1).MapInstanceId, DestinationX = 5, DestinationY = 5, PortalId = 1, SourceMapId = _map.MapId, SourceX = 0, SourceY = 0, } }; Broadcaster.Instance.RegisterSession(_session); }