Добить структуру Api, Contracts, SharedKernel и сервисов
Deal.Api/Http -> Services/Models/Extensions; Contracts/Integrations и SharedKernel/Tenants -> Abstractions/Models; extension-классы telegram/ml -> Extensions. namespace/using/FQN мигрированы, using дедуплицированы.
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
using System.IO;
|
||||
using System.Net.Http;
|
||||
using Grpc.Core;
|
||||
using Deal.Telegram.Telegram;
|
||||
using Deal.Telegram.Extensions;
|
||||
|
||||
namespace Deal.Telegram.Extensions;
|
||||
|
||||
/// <summary>
|
||||
/// Расширения <see cref="Exception"/> для классификации сбоев telegram-service.
|
||||
/// </summary>
|
||||
internal static class ExceptionExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Истинно транспортные/сетевые причины — только они дают UNAVAILABLE (безопасный повтор).
|
||||
/// </summary>
|
||||
/// <param name="exception">Исключение для классификации.</param>
|
||||
/// <returns>True — исключение транспортного/сетевого характера.</returns>
|
||||
public static bool IsTransportFailure(this Exception exception)
|
||||
{
|
||||
return exception is HttpRequestException or IOException or TimeoutException or RpcException;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user