public TelegramBotClass() { _updateHandler = new UpdatesHandler(); var parameters = _updateHandler.GetAvailableParameters(); _updateReciever = new UpdatesReciever(parameters); _updateReciever.OnUpdatesRecieved += _updateHandler.UpdatesHandle; }
private Authorizer(string token, UpdatesHandler updatesHandler, Secrets clientSecret) { updatesHandler.NullInspect(nameof(updatesHandler)); clientSecret.NullInspect(nameof(clientSecret)); ClientSecret = clientSecret; _botActions = new BotActions(token); AuthorizeRequestEvent += Authorizer_AuthorizeRequestEvent; }
public static Authorizer GetInstance(string token, UpdatesHandler updatesHandler, Secrets clientSecret) { if (Instance == null) { lock (_locker) { Instance = new Authorizer(token, updatesHandler, clientSecret); } } return(Instance); }
public void InitializeUpdatesHandler() { if (Updates == null) { throw new InvalidOperationException($"{nameof(Updates)} property must be specified"); } UpdatesHandler = new UpdatesHandler { Updates = Updates }; UpdatesHandler.StartHandleUpdates(); }
public MTProtoClientConnection( [NotNull] IClientTransportConfig clientTransportConfig, [NotNull] IClientTransportFactory clientTransportFactory, [NotNull] TLRig tlRig, [NotNull] IMessageIdGenerator messageIdGenerator, [NotNull] IMessageCodec messageCodec) { _tlRig = tlRig; _messageIdGenerator = messageIdGenerator; _messageCodec = messageCodec; DefaultRpcTimeout = Defaults.RpcTimeout; DefaultConnectTimeout = Defaults.ConnectTimeout; _methods = new MTProtoAsyncMethods(this); _updatesHandler = new UpdatesHandler(_tlRig); InitResponseDispatcher(_responseDispatcher); // Init transport. _clientTransport = clientTransportFactory.CreateTransport(clientTransportConfig); // Connector in/out. _clientTransport.ObserveOn(DefaultScheduler.Instance).Do(bytes => LogMessageInOut(bytes, "IN")).Subscribe(ProcessIncomingMessageBytes); _clientTransport.RegisterOnDisconnectInternally(() => { Console.WriteLine("Client has been closed internally."); if (_onClosedInternally != null) { _onClosedInternally(this, null); } if (_state == MTProtoConnectionState.Disconnected) { return; } _state = MTProtoConnectionState.Disconnected; if (_connectionCts != null) { _connectionCts.Cancel(); _connectionCts.Dispose(); _connectionCts = null; } }); }