Add proper exception messages

This commit is contained in:
Ilya Pirozhneko 2015-10-01 20:55:02 +08:00
parent 27216da193
commit b0a824988d
3 changed files with 33 additions and 5 deletions

View file

@ -267,6 +267,12 @@ namespace TLSharp.Core.Network
Debug.WriteLine($"Should wait {seconds} sec.");
Thread.Sleep(1000*seconds);
}
else if (errorMessage.StartsWith("PHONE_MIGRATE_"))
{
var resultString = Regex.Match(errorMessage, @"\d+").Value;
var dcIdx = int.Parse(resultString);
throw new InvalidOperationException($"Your phone number registered to {dcIdx} dc. Please update settings. See https://github.com/sochix/TLSharp#i-get-an-error-migrate_x for details.");
}
else
{
throw new InvalidOperationException(errorMessage);
@ -332,7 +338,7 @@ namespace TLSharp.Core.Network
throw new InvalidOperationException("invalid container");
}
throw new NotImplementedException();
throw new NotImplementedException("This should never happens");
/*
logger.debug("bad_msg_notification: msgid {0}, seq {1}, errorcode {2}", requestId, requestSequence,
errorCode);
@ -397,7 +403,7 @@ namespace TLSharp.Core.Network
messageReader.BaseStream.Position -= 12;
throw new NotImplementedException();
throw new NotImplementedException("Handle future server salts function isn't implemented.");
/*
if (!runningRequests.ContainsKey(requestId))
{

View file

@ -14,12 +14,18 @@ namespace TLSharp.Core
private MtProtoSender _sender;
private AuthKey _key;
private readonly TcpTransport _transport;
private string _apiHash = "_your_hash";
private int _apiId = 0;
private string _apiHash = "a2514f96431a228e4b9ee473f6c51945";
private int _apiId = 19474;
private Session _session;
public TelegramClient(ISessionStore store, string sessionUserId)
{
if (_apiId == 0)
throw new InvalidOperationException("Your API_ID is invalid. Do a configuration first https://github.com/sochix/TLSharp#quick-configuration");
if (string.IsNullOrEmpty(_apiHash))
throw new InvalidOperationException("Your API_ID is invalid. Do a configuration first https://github.com/sochix/TLSharp#quick-configuration");
_transport = new TcpTransport();
_session = Session.TryLoadOrCreateNew(store, sessionUserId);
}

View file

@ -21,15 +21,30 @@ namespace TLSharp.Tests
{
// Setup your phone numbers in app.config
NumberToAuthenticate = ConfigurationManager.AppSettings["numberToAuthenticate"];
if (string.IsNullOrEmpty(NumberToAuthenticate))
throw new InvalidOperationException("NumberToAuthenticate is null");
RegisteredNumber = ConfigurationManager.AppSettings["registeredNumber"];
if (string.IsNullOrEmpty(RegisteredNumber))
throw new InvalidOperationException("RegisteredNumber is null");
UnregisteredNumber = ConfigurationManager.AppSettings["unregisteredNumber"];
}
if (string.IsNullOrEmpty(UnregisteredNumber))
throw new InvalidOperationException("UnregisteredNumber is null");
if (NumberToAuthenticate == UnregisteredNumber)
throw new InvalidOperationException("NumberToAuthenticate eqauls UnregisteredNumber but shouldn't!");
if (RegisteredNumber == UnregisteredNumber)
throw new InvalidOperationException("RegisteredNumber eqauls UnregisteredNumber but shouldn't!");
}
[TestMethod]
public async Task AuthUser()
{
var store = new FileSessionStore();
var client = new TelegramClient(store, "session");
await client.Connect();
var hash = await client.SendCodeRequest(NumberToAuthenticate);
@ -70,6 +85,7 @@ namespace TLSharp.Tests
var store = new FileSessionStore();
var client = new Core.TelegramClient(store, "session");
await client.Connect();
Assert.IsTrue(client.IsUserAuthorized());