From d016095460deed4391d37324a02efdbae9812e7a Mon Sep 17 00:00:00 2001 From: cryptooda Date: Tue, 10 Jun 2025 00:25:32 +0700 Subject: [PATCH] Add try catch --- src/Managing.Application/Bots/TradingBot.cs | 23 ++++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/Managing.Application/Bots/TradingBot.cs b/src/Managing.Application/Bots/TradingBot.cs index fb24034..df59277 100644 --- a/src/Managing.Application/Bots/TradingBot.cs +++ b/src/Managing.Application/Bots/TradingBot.cs @@ -1077,16 +1077,23 @@ public class TradingBot : Bot, ITradingBot private async Task SetPositionStatus(string signalIdentifier, PositionStatus positionStatus) { - var position = Positions.First(p => p.SignalIdentifier == signalIdentifier); - if (!position.Status.Equals(positionStatus)) + try { - Positions.First(p => p.SignalIdentifier == signalIdentifier).Status = positionStatus; - await LogInformation( - $"📊 **Position Status Change**\nPosition: `{signalIdentifier}`\nStatus: `{position.Status}` → `{positionStatus}`"); - } + var position = Positions.First(p => p.SignalIdentifier == signalIdentifier); + if (!position.Status.Equals(positionStatus)) + { + Positions.First(p => p.SignalIdentifier == signalIdentifier).Status = positionStatus; + await LogInformation( + $"📊 **Position Status Change**\nPosition: `{signalIdentifier}`\nStatus: `{position.Status}` → `{positionStatus}`"); + } - SetSignalStatus(signalIdentifier, - positionStatus == PositionStatus.Filled ? SignalStatus.PositionOpen : SignalStatus.Expired); + SetSignalStatus(signalIdentifier, + positionStatus == PositionStatus.Filled ? SignalStatus.PositionOpen : SignalStatus.Expired); + } + catch (Exception ex) + { + await LogWarning($"Failed to update position status for signal {signalIdentifier}: {ex.Message}"); + } } private void UpdatePositionPnl(string identifier, decimal realized)