Example #1
0
        public TelegramClient(ITransportConfig transportConfig,
                              ConnectionConfig connectionConfig,
                              TelegramAppInfo appInfo,
                              IMTProtoBuilder builder = null)
        {
            if (builder == null)
            {
                builder = MTProtoBuilder.Default;
            }

            _transportConfig = transportConfig;
            _appInfo         = appInfo;
            _connection      = builder.BuildConnection(_transportConfig);
            _connection.Configure(connectionConfig);
            _methods = new TelegramAsyncMethods(_connection);
        }
        public TelegramClient(ITransportConfig transportConfig,
            ConnectionConfig connectionConfig,
            TelegramAppInfo appInfo,
            IMTProtoBuilder builder = null)
        {
            if (builder == null)
            {
                builder = MTProtoBuilder.Default;
            }

            _transportConfig = transportConfig;
            _appInfo = appInfo;
            _connection = builder.BuildConnection(_transportConfig);
            _connection.Configure(connectionConfig);
            _methods = new TelegramAsyncMethods(_connection);
        }
        /// <summary>
        /// Write a successful server startup to the session file.
        /// </summary>
        /// <param name="languageServiceTransport">The LSP service transport configuration.</param>
        /// <param name="debugAdapterTransport">The debug adapter transport configuration.</param>
        public void WriteSessionStarted(ITransportConfig languageServiceTransport, ITransportConfig debugAdapterTransport)
        {
            _logger.Log(PsesLogLevel.Diagnostic, "Writing session started");

            var sessionObject = new Dictionary <string, object>
            {
                { "status", "started" },
            };

            if (languageServiceTransport != null)
            {
                sessionObject["languageServiceTransport"] = languageServiceTransport.SessionFileTransportName;

                if (languageServiceTransport.SessionFileEntries != null)
                {
                    foreach (KeyValuePair <string, object> sessionEntry in languageServiceTransport.SessionFileEntries)
                    {
                        sessionObject[$"languageService{sessionEntry.Key}"] = sessionEntry.Value;
                    }
                }
            }

            if (debugAdapterTransport != null)
            {
                sessionObject["debugServiceTransport"] = debugAdapterTransport.SessionFileTransportName;

                if (debugAdapterTransport.SessionFileEntries != null)
                {
                    foreach (KeyValuePair <string, object> sessionEntry in debugAdapterTransport.SessionFileEntries)
                    {
                        sessionObject[$"debugService{sessionEntry.Key}"] = sessionEntry.Value;
                    }
                }
            }

            WriteSessionObject(sessionObject);
        }