diff --git a/TLSharp.Core/Requests/ImportByUserName.cs b/TLSharp.Core/Requests/ImportByUserName.cs index 89030c5..d681c5a 100644 --- a/TLSharp.Core/Requests/ImportByUserName.cs +++ b/TLSharp.Core/Requests/ImportByUserName.cs @@ -7,6 +7,7 @@ namespace TLSharp.Core.Requests public class ImportByUserName : MTProtoRequest { private readonly string _userName; + public int id { get; private set; } public ImportByUserName(string userName) { _userName = userName; @@ -14,14 +15,14 @@ namespace TLSharp.Core.Requests public override void OnSend(BinaryWriter writer) { - writer.Write(0xf93ccba3); + writer.Write(0xBF0131C); Serializers.String.write(writer, _userName); } public override void OnResponse(BinaryReader reader) { var code = reader.ReadUInt32(); - var peer = TL.Parse(reader); + id = reader.ReadInt32(); } public override void OnException(Exception exception) @@ -29,7 +30,7 @@ namespace TLSharp.Core.Requests throw new NotImplementedException(); } - public override bool Confirmed { get; } + public override bool Confirmed => true; public override bool Responded { get; } } } \ No newline at end of file diff --git a/TLSharp.Core/TelegramClient.cs b/TLSharp.Core/TelegramClient.cs index 8d4685d..3b32fb0 100644 --- a/TLSharp.Core/TelegramClient.cs +++ b/TLSharp.Core/TelegramClient.cs @@ -216,7 +216,7 @@ namespace TLSharp.Core await _sender.Send(request); await _sender.Recieve(request); - return null; + return request.id; } public async Task SendMessage(int id, string message) diff --git a/TLSharp.Tests/NotificatioClientTests.cs b/TLSharp.Tests/NotificatioClientTests.cs index 19e8c7c..40692f2 100644 --- a/TLSharp.Tests/NotificatioClientTests.cs +++ b/TLSharp.Tests/NotificatioClientTests.cs @@ -15,6 +15,8 @@ namespace TLSharp.Tests private string NumberToAuthenticate { get; set; } + private string UserNameToSendMessage { get; set; } + [TestInitialize] public void Init() { @@ -26,6 +28,11 @@ namespace TLSharp.Tests NumberToSendMessage = ConfigurationManager.AppSettings["numberToSendMessage"]; if (string.IsNullOrEmpty(NumberToSendMessage)) throw new InvalidOperationException("NumberToSendMessage is null. Specify number in app.config"); + + UserNameToSendMessage = ConfigurationManager.AppSettings["userNameToSendMessage"]; + if (string.IsNullOrEmpty(UserNameToSendMessage)) + throw new InvalidOperationException("UserNameToSendMessage is null. Specify userName in app.config"); + } [TestMethod] @@ -82,11 +89,28 @@ namespace TLSharp.Tests Assert.IsTrue(client.IsUserAuthorized()); - var res = await client.ImportByUserName(NumberToSendMessage); + var res = await client.ImportByUserName(UserNameToSendMessage); Assert.IsNotNull(res); } + [TestMethod] + public async Task ImportByUserNameAndSendMessage() + { + var store = new FileSessionStore(); + var client = new TelegramClient(store, "session"); + + await client.Connect(); + + Assert.IsTrue(client.IsUserAuthorized()); + + var res = await client.ImportByUserName(UserNameToSendMessage); + + Assert.IsNotNull(res); + + await client.SendMessage(res.Value, "Test message from TelegramClient"); + } + [TestMethod] public async Task SendMessage() { diff --git a/TLSharp.Tests/app.config b/TLSharp.Tests/app.config index 2ef5789..6768147 100644 --- a/TLSharp.Tests/app.config +++ b/TLSharp.Tests/app.config @@ -3,5 +3,6 @@ +