diff --git a/src/Managing.Application/Shared/MessengerService.cs b/src/Managing.Application/Shared/MessengerService.cs index 72f45351..9726ebfe 100644 --- a/src/Managing.Application/Shared/MessengerService.cs +++ b/src/Managing.Application/Shared/MessengerService.cs @@ -84,17 +84,48 @@ public class MessengerService : IMessengerService public async Task SendClosedPosition(Position position, User user) { var message = BuildClosePositionMessage(position); - await _discordService.SendMessage(message); - await _webhookService.SendMessage(message, user.TelegramChannel); + try + { + await _discordService.SendMessage(message); + } + catch (Exception e) + { + SentrySdk.CaptureException(e); + } + + try + { + await _webhookService.SendMessage(message, user.TelegramChannel); + } + catch (Exception e) + { + SentrySdk.CaptureException(e); + } } private string BuildClosePositionMessage(Position position) { - return $"Closing : {position.OriginDirection} {position.Open.Ticker} \n" + - $"Open Price : {position.Open.Price} \n" + - $"Closing Price : {position.Open.Price} \n" + - $"Quantity :{position.Open.Quantity} \n" + - $"PNL : {position.ProfitAndLoss.Realized} $"; + var message = $"Closing : {position.OriginDirection} {position.Open.Ticker} \n" + + $"Open Price : {position.Open.Price} \n"; + + if (position.StopLoss.Status.Equals(Enums.TradeStatus.Filled)) + { + message += $"SL Hit: {position.StopLoss.Price} \n"; + } + + if (position.TakeProfit1.Status.Equals(Enums.TradeStatus.Filled)) + { + message += $"TP1 Hit: {position.TakeProfit1.Price} \n"; + } + + if (position.TakeProfit2.Status.Equals(Enums.TradeStatus.Filled)) + { + message += $"TP2 Hit: {position.TakeProfit2.Price} \n"; + } + + message += $"PNL : {position.ProfitAndLoss.Net} $"; + + return message; } public async Task SendMessage(string message, string telegramChannel)