From ef100652b20a722370905f9230523703275e7b54 Mon Sep 17 00:00:00 2001 From: Ruslan Iarmukhamedov Date: Fri, 25 Oct 2019 11:18:20 +0600 Subject: [PATCH] Make MtProtoPlainSender and TelegramClient fields readonly and rename based on common naming the style --- TLSharp.Core/Network/MtProtoPlainSender.cs | 20 ++++----- TLSharp.Core/TelegramClient.cs | 50 ++++++++++------------ 2 files changed, 33 insertions(+), 37 deletions(-) diff --git a/TLSharp.Core/Network/MtProtoPlainSender.cs b/TLSharp.Core/Network/MtProtoPlainSender.cs index 40bf66a..e468084 100644 --- a/TLSharp.Core/Network/MtProtoPlainSender.cs +++ b/TLSharp.Core/Network/MtProtoPlainSender.cs @@ -7,15 +7,15 @@ namespace TLSharp.Core.Network { public class MtProtoPlainSender { - private int timeOffset; - private long lastMessageId; - private Random random; - private TcpTransport _transport; + private int _timeOffset; + private long _lastMessageId; + private readonly Random _random; + private readonly TcpTransport _transport; public MtProtoPlainSender(TcpTransport transport) { _transport = transport; - random = new Random(); + _random = new Random(); } public async Task Send(byte[] data, CancellationToken token) @@ -62,17 +62,17 @@ namespace TLSharp.Core.Network private long GetNewMessageId() { long time = Convert.ToInt64((DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds); - long newMessageId = ((time / 1000 + timeOffset) << 32) | + long newMessageId = ((time / 1000 + _timeOffset) << 32) | ((time % 1000) << 22) | - (random.Next(524288) << 2); // 2^19 + (_random.Next(524288) << 2); // 2^19 // [ unix timestamp : 32 bit] [ milliseconds : 10 bit ] [ buffer space : 1 bit ] [ random : 19 bit ] [ msg_id type : 2 bit ] = [ msg_id : 64 bit ] - if (lastMessageId >= newMessageId) + if (_lastMessageId >= newMessageId) { - newMessageId = lastMessageId + 4; + newMessageId = _lastMessageId + 4; } - lastMessageId = newMessageId; + _lastMessageId = newMessageId; return newMessageId; } diff --git a/TLSharp.Core/TelegramClient.cs b/TLSharp.Core/TelegramClient.cs index cd8a898..700546c 100644 --- a/TLSharp.Core/TelegramClient.cs +++ b/TLSharp.Core/TelegramClient.cs @@ -23,16 +23,12 @@ namespace TLSharp.Core { private MtProtoSender _sender; private TcpTransport _transport; - private string _apiHash = ""; - private int _apiId = 0; - private Session _session; - private List dcOptions; - private TcpClientConnectionHandler _handler; + private readonly string _apiHash = ""; + private readonly int _apiId; + private List _dcOptions; + private readonly TcpClientConnectionHandler _handler; - public Session Session - { - get { return _session; } - } + public Session Session { get; } public TelegramClient(int apiId, string apiHash, ISessionStore store = null, string sessionUserId = "session", TcpClientConnectionHandler handler = null) @@ -49,8 +45,8 @@ namespace TLSharp.Core _apiId = apiId; _handler = handler; - _session = Session.TryLoadOrCreateNew(store, sessionUserId); - _transport = new TcpTransport(_session.DataCenter.Address, _session.DataCenter.Port, _handler); + Session = Session.TryLoadOrCreateNew(store, sessionUserId); + _transport = new TcpTransport(Session.DataCenter.Address, Session.DataCenter.Port, _handler); } @@ -58,14 +54,14 @@ namespace TLSharp.Core { token.ThrowIfCancellationRequested(); - if (_session.AuthKey == null || reconnect) + if (Session.AuthKey == null || reconnect) { var result = await Authenticator.DoAuthentication(_transport, token).ConfigureAwait(false); - _session.AuthKey = result.AuthKey; - _session.TimeOffset = result.TimeOffset; + Session.AuthKey = result.AuthKey; + Session.TimeOffset = result.TimeOffset; } - _sender = new MtProtoSender(_transport, _session); + _sender = new MtProtoSender(_transport, Session); //set-up layer var config = new TLRequestGetConfig(); @@ -82,32 +78,32 @@ namespace TLSharp.Core await _sender.Send(invokewithLayer, token).ConfigureAwait(false); await _sender.Receive(invokewithLayer, token).ConfigureAwait(false); - dcOptions = ((TLConfig)invokewithLayer.Response).DcOptions.ToList(); + _dcOptions = ((TLConfig)invokewithLayer.Response).DcOptions.ToList(); } private async Task ReconnectToDcAsync(int dcId, CancellationToken token) { token.ThrowIfCancellationRequested(); - if (dcOptions == null || !dcOptions.Any()) + if (_dcOptions == null || !_dcOptions.Any()) throw new InvalidOperationException($"Can't reconnect. Establish initial connection first."); TLExportedAuthorization exported = null; - if (_session.TLUser != null) + if (Session.TLUser != null) { TLRequestExportAuthorization exportAuthorization = new TLRequestExportAuthorization() { DcId = dcId }; exported = await SendRequestAsync(exportAuthorization, token).ConfigureAwait(false); } - var dc = dcOptions.First(d => d.Id == dcId); + var dc = _dcOptions.First(d => d.Id == dcId); var dataCenter = new DataCenter (dcId, dc.IpAddress, dc.Port); _transport = new TcpTransport(dc.IpAddress, dc.Port, _handler); - _session.DataCenter = dataCenter; + Session.DataCenter = dataCenter; await ConnectAsync(true, token).ConfigureAwait(false); - if (_session.TLUser != null) + if (Session.TLUser != null) { TLRequestImportAuthorization importAuthorization = new TLRequestImportAuthorization() { Id = exported.Id, Bytes = exported.Bytes }; var imported = await SendRequestAsync(importAuthorization, token).ConfigureAwait(false); @@ -131,8 +127,8 @@ namespace TLSharp.Core } catch(DataCenterMigrationException e) { - if (_session.DataCenter.DataCenterId.HasValue && - _session.DataCenter.DataCenterId.Value == e.DC) + if (Session.DataCenter.DataCenterId.HasValue && + Session.DataCenter.DataCenterId.Value == e.DC) { throw new Exception($"Telegram server replied requesting a migration to DataCenter {e.DC} when this connection was already using this DataCenter", e); } @@ -146,7 +142,7 @@ namespace TLSharp.Core public bool IsUserAuthorized() { - return _session.TLUser != null; + return Session.TLUser != null; } public async Task IsPhoneRegisteredAsync(string phoneNumber, CancellationToken token = default(CancellationToken)) @@ -380,10 +376,10 @@ namespace TLSharp.Core private void OnUserAuthenticated(TLUser TLUser) { - _session.TLUser = TLUser; - _session.SessionExpires = int.MaxValue; + Session.TLUser = TLUser; + Session.SessionExpires = int.MaxValue; - _session.Save(); + Session.Save(); } public bool IsConnected