public SessionClientWrapper(Chanel2Server serverData, SessionClient sessionClient) { Chanel2Server = serverData; _sessionClient = sessionClient; updateClientData(); }
public string Execute(SocketCommandContext context, string ip, string token) { try { IPEndPoint serverAdr; var message = CanExecute(context, ip, token, out serverAdr); if (!string.IsNullOrEmpty(message)) { return(message); } try { new TcpClient(serverAdr.Address.ToString(), serverAdr.Port); } catch (Exception ex) { return(Languages.Translator.ErrServerNotAvailable + "\n" + ex.Message); } var client = new SessionClient(); if (!client.Connect(serverAdr.Address.ToString(), serverAdr.Port)) { return(Languages.Translator.ErrServerNotAvailable); } var pass = new CryptoProvider().GetHash(token); if (!client.Login(SessionClientWrapper.DiscrodLogin, pass, null)) { return(Languages.Translator.ErrInvalidToken); } var channelToServer = new Chanel2Server() { Id = context.Channel.Id, IP = serverAdr.Address.ToString(), Port = serverAdr.Port, LinkCreator = context.Message.Author.Id, LastOnlineTime = DateTime.UtcNow.AddDays(-1), Token = token, LastRecivedPostIndex = -1, }; // _appContext.RegisterNewServer(channelToServer, new SessionClientWrapper(channelToServer, client)); context.Message.DeleteAsync(); return(string.Format(Languages.Translator.InfServerReg, serverAdr.ToString(), "#" + context.Channel.Name)); } catch (Exception ex) { Loger.Log(ex.ToString()); return("Internal error"); } }
internal bool RegisterNewServer(Chanel2Server server, SessionClientWrapper sessionClient) { var apadr = IPAddress.Parse(server.IP); var endPoint = new IPEndPoint(apadr, server.Port); var result = OCServerToDiscrord.TryAdd(endPoint, server.Id) && UserOnServers.TryAdd(server.Id, new ConcurrentDictionary <ulong, OCUser>()); result &= DiscrordToOCServer.TryAdd(server.Id, sessionClient); // if sessionClient.IsLogined then must be registred in DataBase if (sessionClient.IsLogined) { result &= _repositoryChanel2Server.AddNewItem(server); } else { result &= sessionClient.ConnectAndLogin(); } return(result); }
//public event EventHandler DisconnectedEvent; public SessionClientWrapper(Chanel2Server serverData) { Chanel2Server = serverData; _sessionClient = new SessionClient(); }