diff --git a/src/Managing.Api.Workers/Controllers/WorkerController.cs b/src/Managing.Api.Workers/Controllers/WorkerController.cs index ca2574e..1ca4948 100644 --- a/src/Managing.Api.Workers/Controllers/WorkerController.cs +++ b/src/Managing.Api.Workers/Controllers/WorkerController.cs @@ -1,4 +1,4 @@ -using Managing.Application.Workers.Abstractions; +using Managing.Application.Abstractions.Services; using Managing.Domain.Workers; using Microsoft.AspNetCore.Mvc; using static Managing.Common.Enums; @@ -29,4 +29,4 @@ public class WorkerController : ControllerBase { return Ok(await _workerService.ToggleWorker(workerType)); } -} +} \ No newline at end of file diff --git a/src/Managing.Application.Abstractions/Grains/ILiveTradingBotGrain.cs b/src/Managing.Application.Abstractions/Grains/ILiveTradingBotGrain.cs index 2599042..79b1a5d 100644 --- a/src/Managing.Application.Abstractions/Grains/ILiveTradingBotGrain.cs +++ b/src/Managing.Application.Abstractions/Grains/ILiveTradingBotGrain.cs @@ -1,4 +1,3 @@ -using Managing.Application.Abstractions.Models; using Managing.Domain.Accounts; using Managing.Domain.Bots; using Managing.Domain.Trades; @@ -24,7 +23,7 @@ public interface ILiveTradingBotGrain : IGrainWithGuidKey /// /// Gets comprehensive bot data including positions, signals, and performance metrics /// - Task GetBotDataAsync(); + Task GetBotDataAsync(); Task CreateAsync(TradingBotConfig config, User user); Task StartAsync(); @@ -35,7 +34,7 @@ public interface ILiveTradingBotGrain : IGrainWithGuidKey Task GetConfiguration(); Task ClosePositionAsync(Guid positionId); Task RestartAsync(); - + /// /// Deletes the bot and cleans up all associated resources /// diff --git a/src/Managing.Application.Abstractions/IScenarioService.cs b/src/Managing.Application.Abstractions/IScenarioService.cs deleted file mode 100644 index 0519ecb..0000000 --- a/src/Managing.Application.Abstractions/IScenarioService.cs +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/Managing.Application.Abstractions/Managing.Application.Abstractions.csproj b/src/Managing.Application.Abstractions/Managing.Application.Abstractions.csproj index 8d999ea..fbf3aa2 100644 --- a/src/Managing.Application.Abstractions/Managing.Application.Abstractions.csproj +++ b/src/Managing.Application.Abstractions/Managing.Application.Abstractions.csproj @@ -1,18 +1,18 @@  - - net8.0 - enable - enable - + + net8.0 + enable + enable + - - - - + + + + - - - + + + diff --git a/src/Managing.Application.Abstractions/Services/IAgentService.cs b/src/Managing.Application.Abstractions/Services/IAgentService.cs new file mode 100644 index 0000000..5537662 --- /dev/null +++ b/src/Managing.Application.Abstractions/Services/IAgentService.cs @@ -0,0 +1,5 @@ +namespace Managing.Application.Abstractions.Services; + +public interface IAgentService +{ +} \ No newline at end of file diff --git a/src/Managing.Application.Abstractions/IMoneyManagementService.cs b/src/Managing.Application.Abstractions/Services/IMoneyManagementService.cs similarity index 91% rename from src/Managing.Application.Abstractions/IMoneyManagementService.cs rename to src/Managing.Application.Abstractions/Services/IMoneyManagementService.cs index 5184fe5..9b9f40e 100644 --- a/src/Managing.Application.Abstractions/IMoneyManagementService.cs +++ b/src/Managing.Application.Abstractions/Services/IMoneyManagementService.cs @@ -1,7 +1,7 @@ using Managing.Domain.MoneyManagements; using Managing.Domain.Users; -namespace Managing.Application.Abstractions +namespace Managing.Application.Abstractions.Services { public interface IMoneyManagementService { @@ -12,4 +12,4 @@ namespace Managing.Application.Abstractions Task DeleteMoneyManagement(User user, string name); Task DeleteMoneyManagements(User user); } -} \ No newline at end of file +} \ No newline at end of file diff --git a/src/Managing.Application.Workers/Abstractions/IPricesService.cs b/src/Managing.Application.Abstractions/Services/IPricesService.cs similarity index 74% rename from src/Managing.Application.Workers/Abstractions/IPricesService.cs rename to src/Managing.Application.Abstractions/Services/IPricesService.cs index 5b6cae9..561ea3b 100644 --- a/src/Managing.Application.Workers/Abstractions/IPricesService.cs +++ b/src/Managing.Application.Abstractions/Services/IPricesService.cs @@ -1,8 +1,8 @@ using static Managing.Common.Enums; -namespace Managing.Application.Workers.Abstractions; +namespace Managing.Application.Abstractions.Services; public interface IPricesService { Task UpdatePrice(TradingExchanges exchange, Ticker ticker, Timeframe timeframe); -} +} \ No newline at end of file diff --git a/src/Managing.Application.Workers/Abstractions/IWorkerService.cs b/src/Managing.Application.Abstractions/Services/IWorkerService.cs similarity index 89% rename from src/Managing.Application.Workers/Abstractions/IWorkerService.cs rename to src/Managing.Application.Abstractions/Services/IWorkerService.cs index 886a021..926335f 100644 --- a/src/Managing.Application.Workers/Abstractions/IWorkerService.cs +++ b/src/Managing.Application.Abstractions/Services/IWorkerService.cs @@ -1,7 +1,7 @@ using Managing.Domain.Workers; using static Managing.Common.Enums; -namespace Managing.Application.Workers.Abstractions; +namespace Managing.Application.Abstractions.Services; public interface IWorkerService { @@ -12,4 +12,4 @@ public interface IWorkerService Task InsertWorker(WorkerType workerType, TimeSpan delay); Task ToggleWorker(WorkerType workerType); Task UpdateWorker(WorkerType workerType, int executionCount); -} +} \ No newline at end of file diff --git a/src/Managing.Application.Tests/PositionTests.cs b/src/Managing.Application.Tests/PositionTests.cs index bec878d..bc1a7c8 100644 --- a/src/Managing.Application.Tests/PositionTests.cs +++ b/src/Managing.Application.Tests/PositionTests.cs @@ -1,5 +1,5 @@ -using Managing.Application.Trading; -using Managing.Application.Trading.Commands; +using Managing.Application.Trading.Commands; +using Managing.Application.Trading.Handlers; using Managing.Domain.Trades; using Managing.Domain.Users; using Moq; @@ -45,7 +45,8 @@ public class PositionTests : BaseTests // _ = new GetAccountPositioqwnInfoListOutputDTO().DecodeOutput(hexPositions).d // var openTrade = await _exchangeService.GetTrade(_account, "", Ticker.GMX); - var position = new Position(Guid.NewGuid(), "", TradeDirection.Long, Ticker.GMX, MoneyManagement, PositionInitiator.User, + var position = new Position(Guid.NewGuid(), "", TradeDirection.Long, Ticker.GMX, MoneyManagement, + PositionInitiator.User, DateTime.UtcNow, new User()) { Open = openTrade diff --git a/src/Managing.Application.Workers/BaseWorker.cs b/src/Managing.Application.Workers/BaseWorker.cs index 2d7cd3f..3279900 100644 --- a/src/Managing.Application.Workers/BaseWorker.cs +++ b/src/Managing.Application.Workers/BaseWorker.cs @@ -1,4 +1,4 @@ -using Managing.Application.Workers.Abstractions; +using Managing.Application.Abstractions.Services; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; @@ -43,7 +43,8 @@ public abstract class BaseWorker : BackgroundService where T : class } else { - _logger.LogInformation($"[{_workerType}] Last run : {worker.LastRunTime} - Execution Count : {worker.ExecutionCount}"); + _logger.LogInformation( + $"[{_workerType}] Last run : {worker.LastRunTime} - Execution Count : {worker.ExecutionCount}"); _executionCount = worker.ExecutionCount; } } @@ -61,6 +62,7 @@ public abstract class BaseWorker : BackgroundService where T : class _executionCount++; await workerService.UpdateWorker(_workerType, _executionCount); } + _logger.LogInformation($"[{_workerType}] Run ok. Next run at : {DateTime.UtcNow.Add(_delay)}"); await Task.Delay(_delay); } diff --git a/src/Managing.Application.Workers/PricesBaseWorker.cs b/src/Managing.Application.Workers/PricesBaseWorker.cs index c6032b1..b48ff33 100644 --- a/src/Managing.Application.Workers/PricesBaseWorker.cs +++ b/src/Managing.Application.Workers/PricesBaseWorker.cs @@ -1,5 +1,4 @@ using Managing.Application.Abstractions.Services; -using Managing.Application.Workers.Abstractions; using Microsoft.Extensions.Logging; using static Managing.Common.Enums; @@ -64,4 +63,4 @@ public abstract class PricesBaseWorker : BaseWorker where T : class await _pricesService.UpdatePrice(TradingExchanges.Evm, ticker, _timeframe); } } -} \ No newline at end of file +} \ No newline at end of file diff --git a/src/Managing.Application.Workers/PricesFifteenMinutesWorker.cs b/src/Managing.Application.Workers/PricesFifteenMinutesWorker.cs index 8942f6e..3d645f3 100644 --- a/src/Managing.Application.Workers/PricesFifteenMinutesWorker.cs +++ b/src/Managing.Application.Workers/PricesFifteenMinutesWorker.cs @@ -1,5 +1,4 @@ using Managing.Application.Abstractions.Services; -using Managing.Application.Workers.Abstractions; using Microsoft.Extensions.Logging; using static Managing.Common.Enums; @@ -22,4 +21,4 @@ public class PricesFifteenMinutesWorker : PricesBaseWorker ) { } -} \ No newline at end of file +} \ No newline at end of file diff --git a/src/Managing.Application.Workers/PricesFourHoursWorker.cs b/src/Managing.Application.Workers/PricesFourHoursWorker.cs index bd4acc3..22f219f 100644 --- a/src/Managing.Application.Workers/PricesFourHoursWorker.cs +++ b/src/Managing.Application.Workers/PricesFourHoursWorker.cs @@ -1,5 +1,4 @@ using Managing.Application.Abstractions.Services; -using Managing.Application.Workers.Abstractions; using Microsoft.Extensions.Logging; using static Managing.Common.Enums; @@ -22,4 +21,4 @@ public class PricesFourHoursWorker : PricesBaseWorker ) { } -} \ No newline at end of file +} \ No newline at end of file diff --git a/src/Managing.Application.Workers/PricesOneDayWorker.cs b/src/Managing.Application.Workers/PricesOneDayWorker.cs index 60d2954..4e9b432 100644 --- a/src/Managing.Application.Workers/PricesOneDayWorker.cs +++ b/src/Managing.Application.Workers/PricesOneDayWorker.cs @@ -1,5 +1,4 @@ using Managing.Application.Abstractions.Services; -using Managing.Application.Workers.Abstractions; using Microsoft.Extensions.Logging; using static Managing.Common.Enums; @@ -22,4 +21,4 @@ public class PricesOneDayWorker : PricesBaseWorker ) { } -} \ No newline at end of file +} \ No newline at end of file diff --git a/src/Managing.Application.Workers/PricesOneHourWorker.cs b/src/Managing.Application.Workers/PricesOneHourWorker.cs index 24b99e8..3e235b7 100644 --- a/src/Managing.Application.Workers/PricesOneHourWorker.cs +++ b/src/Managing.Application.Workers/PricesOneHourWorker.cs @@ -1,5 +1,4 @@ using Managing.Application.Abstractions.Services; -using Managing.Application.Workers.Abstractions; using Microsoft.Extensions.Logging; using static Managing.Common.Enums; @@ -21,4 +20,4 @@ public class PricesOneHourWorker : PricesBaseWorker Timeframe.OneHour) { } -} \ No newline at end of file +} \ No newline at end of file diff --git a/src/Managing.Application.Workers/PricesService.cs b/src/Managing.Application.Workers/PricesService.cs index 13b1bbc..0959ec6 100644 --- a/src/Managing.Application.Workers/PricesService.cs +++ b/src/Managing.Application.Workers/PricesService.cs @@ -1,6 +1,5 @@ using Managing.Application.Abstractions.Repositories; using Managing.Application.Abstractions.Services; -using Managing.Application.Workers.Abstractions; using Managing.Domain.Accounts; using Managing.Domain.Candles; using Microsoft.Extensions.Logging; @@ -35,7 +34,7 @@ public class PricesService : IPricesService { Exchange = exchange, }; - + if (account == null) throw new Exception($"Enable to found account for exchange {exchange}"); diff --git a/src/Managing.Application.Workers/WorkerService.cs b/src/Managing.Application.Workers/WorkerService.cs index 0d9ea54..702e277 100644 --- a/src/Managing.Application.Workers/WorkerService.cs +++ b/src/Managing.Application.Workers/WorkerService.cs @@ -1,5 +1,5 @@ using Managing.Application.Abstractions.Repositories; -using Managing.Application.Workers.Abstractions; +using Managing.Application.Abstractions.Services; using Managing.Common; using Managing.Domain.Workers; diff --git a/src/Managing.Application/Agents/AgentService.cs b/src/Managing.Application/Agents/AgentService.cs new file mode 100644 index 0000000..9833471 --- /dev/null +++ b/src/Managing.Application/Agents/AgentService.cs @@ -0,0 +1,7 @@ +using Managing.Application.Abstractions.Services; + +namespace Managing.Application.Agents; + +public class AgentService : IAgentService +{ +} \ No newline at end of file diff --git a/src/Managing.Application/Bots/Grains/LiveTradingBotGrain.cs b/src/Managing.Application/Bots/Grains/LiveTradingBotGrain.cs index edd11bb..f8c2ad2 100644 --- a/src/Managing.Application/Bots/Grains/LiveTradingBotGrain.cs +++ b/src/Managing.Application/Bots/Grains/LiveTradingBotGrain.cs @@ -1,6 +1,5 @@ using Managing.Application.Abstractions; using Managing.Application.Abstractions.Grains; -using Managing.Application.Abstractions.Models; using Managing.Core; using Managing.Domain.Accounts; using Managing.Domain.Bots; @@ -323,7 +322,7 @@ public class LiveTradingBotGrain : Grain, ILiveTradingBotGrain, IRemindable } - public Task GetBotDataAsync() + public Task GetBotDataAsync() { try { @@ -332,7 +331,7 @@ public class LiveTradingBotGrain : Grain, ILiveTradingBotGrain, IRemindable throw new InvalidOperationException("Bot is not running"); } - return Task.FromResult(new TradingBotResponse + return Task.FromResult(new LiveTradingBotModel { Identifier = _state.State.Identifier, Name = _state.State.Name, diff --git a/src/Managing.Application/Bots/TradingBotBase.cs b/src/Managing.Application/Bots/TradingBotBase.cs index a2a75c7..536d3af 100644 --- a/src/Managing.Application/Bots/TradingBotBase.cs +++ b/src/Managing.Application/Bots/TradingBotBase.cs @@ -1,8 +1,8 @@ using Managing.Application.Abstractions; using Managing.Application.Abstractions.Grains; using Managing.Application.Abstractions.Services; -using Managing.Application.Trading; using Managing.Application.Trading.Commands; +using Managing.Application.Trading.Handlers; using Managing.Common; using Managing.Core; using Managing.Domain.Accounts; diff --git a/src/Managing.Application/MoneyManagements/MoneyManagementService.cs b/src/Managing.Application/MoneyManagements/MoneyManagementService.cs index ed551b6..8fb98fe 100644 --- a/src/Managing.Application/MoneyManagements/MoneyManagementService.cs +++ b/src/Managing.Application/MoneyManagements/MoneyManagementService.cs @@ -1,5 +1,5 @@ -using Managing.Application.Abstractions; -using Managing.Application.Abstractions.Repositories; +using Managing.Application.Abstractions.Repositories; +using Managing.Application.Abstractions.Services; using Managing.Domain.MoneyManagements; using Managing.Domain.Users; using Microsoft.Extensions.Logging; @@ -47,9 +47,9 @@ public class MoneyManagementService : IMoneyManagementService TakeProfit = request.TakeProfit, Leverage = request.Leverage }; - + await _settingsRepository.InsertMoneyManagement(lightRequest, user); - + // Return the created money management with user return new MoneyManagement { @@ -81,7 +81,7 @@ public class MoneyManagementService : IMoneyManagementService }; await _settingsRepository.UpdateMoneyManagementAsync(lightRequest, user); - + // Return updated money management return new MoneyManagement { diff --git a/src/Managing.Application/Trading/ClosePositionCommandHandler.cs b/src/Managing.Application/Trading/Handlers/ClosePositionCommandHandler.cs similarity index 98% rename from src/Managing.Application/Trading/ClosePositionCommandHandler.cs rename to src/Managing.Application/Trading/Handlers/ClosePositionCommandHandler.cs index 4d5c1c0..39f9fa4 100644 --- a/src/Managing.Application/Trading/ClosePositionCommandHandler.cs +++ b/src/Managing.Application/Trading/Handlers/ClosePositionCommandHandler.cs @@ -6,7 +6,7 @@ using Managing.Domain.Trades; using Microsoft.Extensions.Logging; using static Managing.Common.Enums; -namespace Managing.Application.Trading; +namespace Managing.Application.Trading.Handlers; public class ClosePositionCommandHandler( IExchangeService exchangeService, diff --git a/src/Managing.Application/Trading/GetTradeCommandHandler.cs b/src/Managing.Application/Trading/Handlers/GetTradeCommandHandler.cs similarity index 94% rename from src/Managing.Application/Trading/GetTradeCommandHandler.cs rename to src/Managing.Application/Trading/Handlers/GetTradeCommandHandler.cs index 88740fe..cf53f61 100644 --- a/src/Managing.Application/Trading/GetTradeCommandHandler.cs +++ b/src/Managing.Application/Trading/Handlers/GetTradeCommandHandler.cs @@ -3,7 +3,7 @@ using Managing.Application.Trading.Commands; using Managing.Domain.Trades; using MediatR; -namespace Managing.Application.Trading; +namespace Managing.Application.Trading.Handlers; public class GetTradeCommandHandler : IRequestHandler { diff --git a/src/Managing.Application/Trading/GetTradesCommandHandler.cs b/src/Managing.Application/Trading/Handlers/GetTradesCommandHandler.cs similarity index 94% rename from src/Managing.Application/Trading/GetTradesCommandHandler.cs rename to src/Managing.Application/Trading/Handlers/GetTradesCommandHandler.cs index aade314..627db13 100644 --- a/src/Managing.Application/Trading/GetTradesCommandHandler.cs +++ b/src/Managing.Application/Trading/Handlers/GetTradesCommandHandler.cs @@ -3,7 +3,7 @@ using Managing.Application.Trading.Commands; using Managing.Domain.Trades; using MediatR; -namespace Managing.Application.Trading +namespace Managing.Application.Trading.Handlers { public class GetTradesCommandHandler : IRequestHandler> { diff --git a/src/Managing.Application/Trading/OpenPositionCommandHandler.cs b/src/Managing.Application/Trading/Handlers/OpenPositionCommandHandler.cs similarity index 99% rename from src/Managing.Application/Trading/OpenPositionCommandHandler.cs rename to src/Managing.Application/Trading/Handlers/OpenPositionCommandHandler.cs index 77cf795..a8cda12 100644 --- a/src/Managing.Application/Trading/OpenPositionCommandHandler.cs +++ b/src/Managing.Application/Trading/Handlers/OpenPositionCommandHandler.cs @@ -6,7 +6,7 @@ using Managing.Domain.Shared.Helpers; using Managing.Domain.Trades; using static Managing.Common.Enums; -namespace Managing.Application.Trading +namespace Managing.Application.Trading.Handlers { public class OpenPositionCommandHandler( IExchangeService exchangeService, diff --git a/src/Managing.Bootstrap/ApiBootstrap.cs b/src/Managing.Bootstrap/ApiBootstrap.cs index 55c5d44..15efd65 100644 --- a/src/Managing.Bootstrap/ApiBootstrap.cs +++ b/src/Managing.Bootstrap/ApiBootstrap.cs @@ -17,9 +17,9 @@ using Managing.Application.Shared.Behaviours; using Managing.Application.Synth; using Managing.Application.Trading; using Managing.Application.Trading.Commands; +using Managing.Application.Trading.Handlers; using Managing.Application.Users; using Managing.Application.Workers; -using Managing.Application.Workers.Abstractions; using Managing.Domain.Trades; using Managing.Infrastructure.Database.PostgreSql; using Managing.Infrastructure.Databases; diff --git a/src/Managing.Bootstrap/WorkersBootstrap.cs b/src/Managing.Bootstrap/WorkersBootstrap.cs index 806602a..64f0782 100644 --- a/src/Managing.Bootstrap/WorkersBootstrap.cs +++ b/src/Managing.Bootstrap/WorkersBootstrap.cs @@ -11,9 +11,9 @@ using Managing.Application.Shared; using Managing.Application.Synth; using Managing.Application.Trading; using Managing.Application.Trading.Commands; +using Managing.Application.Trading.Handlers; using Managing.Application.Users; using Managing.Application.Workers; -using Managing.Application.Workers.Abstractions; using Managing.Domain.Trades; using Managing.Infrastructure.Databases; using Managing.Infrastructure.Databases.InfluxDb; diff --git a/src/Managing.Application.Abstractions/Models/TradingBotResponse.cs b/src/Managing.Domain/Bots/LiveTradingBotModel.cs similarity index 95% rename from src/Managing.Application.Abstractions/Models/TradingBotResponse.cs rename to src/Managing.Domain/Bots/LiveTradingBotModel.cs index 4b9307a..31f6d35 100644 --- a/src/Managing.Application.Abstractions/Models/TradingBotResponse.cs +++ b/src/Managing.Domain/Bots/LiveTradingBotModel.cs @@ -1,17 +1,16 @@ -using Managing.Domain.Bots; using Managing.Domain.Indicators; using Managing.Domain.Trades; using Orleans; using static Managing.Common.Enums; -namespace Managing.Application.Abstractions.Models; +namespace Managing.Domain.Bots; /// /// Response model for trading bot data. /// Used to return comprehensive bot information via Orleans grains. /// [GenerateSerializer] -public class TradingBotResponse +public class LiveTradingBotModel { /// /// Bot identifier diff --git a/src/Managing.Infrastructure.Messengers/Discord/DiscordService.cs b/src/Managing.Infrastructure.Messengers/Discord/DiscordService.cs index 3c6667f..ed95ce7 100644 --- a/src/Managing.Infrastructure.Messengers/Discord/DiscordService.cs +++ b/src/Managing.Infrastructure.Messengers/Discord/DiscordService.cs @@ -2,10 +2,9 @@ using Discord.Commands; using Discord.Net; using Discord.WebSocket; -using Managing.Application.Abstractions; using Managing.Application.Abstractions.Services; -using Managing.Application.Trading; using Managing.Application.Trading.Commands; +using Managing.Application.Trading.Handlers; using Managing.Common; using Managing.Core; using Managing.Domain.MoneyManagements;