Adding .NET 4.7.2 back into with conditional compilation
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/preprocessor-directives
This commit is contained in:
parent
84d18f6f45
commit
6c2543630d
@ -131,6 +131,7 @@ namespace TelegramBotBase.Form
|
|||||||
{
|
{
|
||||||
var oldMessages = OldMessages.AsEnumerable();
|
var oldMessages = OldMessages.AsEnumerable();
|
||||||
|
|
||||||
|
#if !NET472
|
||||||
while (oldMessages.Any())
|
while (oldMessages.Any())
|
||||||
{
|
{
|
||||||
using var cts = new CancellationTokenSource();
|
using var cts = new CancellationTokenSource();
|
||||||
@ -162,6 +163,43 @@ namespace TelegramBotBase.Form
|
|||||||
if (retryAfterTask != null)
|
if (retryAfterTask != null)
|
||||||
await retryAfterTask;
|
await retryAfterTask;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
while (oldMessages.Any())
|
||||||
|
{
|
||||||
|
using (var cts = new CancellationTokenSource())
|
||||||
|
{
|
||||||
|
var deletedMessages = new ConcurrentBag<int>();
|
||||||
|
var parallelQuery = OldMessages.AsParallel()
|
||||||
|
.WithCancellation(cts.Token);
|
||||||
|
Task retryAfterTask = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
parallelQuery.ForAll(i =>
|
||||||
|
{
|
||||||
|
Device.DeleteMessage(i).GetAwaiter().GetResult();
|
||||||
|
deletedMessages.Add(i);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (AggregateException ex)
|
||||||
|
{
|
||||||
|
cts.Cancel();
|
||||||
|
|
||||||
|
var retryAfterSeconds = ex.InnerExceptions
|
||||||
|
.Where(e => e is ApiRequestException apiEx && apiEx.ErrorCode == 429)
|
||||||
|
.Max(e => (int?)((ApiRequestException)e).Parameters.RetryAfter) ?? 0;
|
||||||
|
retryAfterTask = Task.Delay(retryAfterSeconds * 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
deletedMessages.AsParallel().ForAll(i => Device.OnMessageDeleted(new MessageDeletedEventArgs(i)));
|
||||||
|
|
||||||
|
oldMessages = oldMessages.Where(x => !deletedMessages.Contains(x));
|
||||||
|
if (retryAfterTask != null)
|
||||||
|
await retryAfterTask;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
OldMessages.Clear();
|
OldMessages.Clear();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>netstandard2.1;net5;netcoreapp3.1</TargetFrameworks>
|
<TargetFrameworks>netstandard2.1;net472;net5;netcoreapp3.1</TargetFrameworks>
|
||||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
||||||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
|
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user