Added File-Migrate feature

This commit is contained in:
Ilya P 2016-10-29 11:47:18 +03:00
parent df66bfb6e3
commit b06f8a8e11
3 changed files with 110 additions and 13 deletions

View file

@ -281,6 +281,18 @@ namespace TLSharp.Core.Network
var dcIdx = int.Parse(resultString);
throw new MigrationNeededException(dcIdx);
}
else if (errorMessage.StartsWith("FILE_MIGRATE_"))
{
var resultString = Regex.Match(errorMessage, @"\d+").Value;
var dcIdx = int.Parse(resultString);
throw new FileMigrationException(dcIdx);
}
else if (errorMessage.StartsWith("USER_MIGRATE_"))
{
var resultString = Regex.Match(errorMessage, @"\d+").Value;
var dcIdx = int.Parse(resultString);
throw new UserMigrationException(dcIdx);
}
else
{
throw new InvalidOperationException(errorMessage);
@ -493,4 +505,26 @@ namespace TLSharp.Core.Network
DC = dc;
}
}
internal class FileMigrationException : Exception
{
internal int DC { get; private set; }
internal FileMigrationException(int dc)
: base ($"File is located on a different DC: {dc}. Please migrate.")
{
DC = dc;
}
}
internal class UserMigrationException : Exception
{
internal int DC { get; private set; }
internal UserMigrationException(int dc)
: base($"User is located on a different DC: {dc}. Please migrate.")
{
DC = dc;
}
}
}