diff --git a/src/Managing.Api.Workers/Managing.Api.Workers.csproj b/src/Managing.Api.Workers/Managing.Api.Workers.csproj index c046e54..2e99aee 100644 --- a/src/Managing.Api.Workers/Managing.Api.Workers.csproj +++ b/src/Managing.Api.Workers/Managing.Api.Workers.csproj @@ -32,13 +32,13 @@ - + Always Always - + Always diff --git a/src/Managing.Api.Workers/Program.cs b/src/Managing.Api.Workers/Program.cs index a951a82..80d871e 100644 --- a/src/Managing.Api.Workers/Program.cs +++ b/src/Managing.Api.Workers/Program.cs @@ -14,8 +14,9 @@ using Serilog.Sinks.Elasticsearch; // Builder var builder = WebApplication.CreateBuilder(args); -builder.Configuration - .AddEnvironmentVariables(); +builder.Configuration.SetBasePath(System.AppContext.BaseDirectory); +builder.Configuration.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) + .AddJsonFile($"appsettings.{builder.Environment.EnvironmentName}.json"); builder.Host.UseSerilog((hostBuilder, loggerConfiguration) => { diff --git a/src/Managing.Api.Workers/appsettings.Oda-docker.json b/src/Managing.Api.Workers/appsettings.Oda-docker.json index e81d760..efe660f 100644 --- a/src/Managing.Api.Workers/appsettings.Oda-docker.json +++ b/src/Managing.Api.Workers/appsettings.Oda-docker.json @@ -5,8 +5,8 @@ }, "InfluxDb": { "Url": "http://influxdb:8086/", - "Organization": "", - "Token": "" + "Organization": "managing-org", + "Token": "Fw2FPL2OwTzDHzSbR2Sd5xs0EKQYy00Q-hYKYAhr9cC1_q5YySONpxuf_Ck0PTjyUiF13xXmi__bu_pXH-H9zA==" }, "Serilog": { "MinimumLevel": { diff --git a/src/Managing.Api.Workers/appsettings.Oda.json b/src/Managing.Api.Workers/appsettings.Oda.json index d9754cb..643d440 100644 --- a/src/Managing.Api.Workers/appsettings.Oda.json +++ b/src/Managing.Api.Workers/appsettings.Oda.json @@ -1,7 +1,7 @@ { "ManagingDatabase": { "ConnectionString": "mongodb://localhost:27017", - "DatabaseName": "ManagingDb", + "DatabaseName": "ManagingDb" }, "InfluxDb": { "Url": "http://localhost:8086/", diff --git a/src/Managing.Api/appsettings.Oda-docker.json b/src/Managing.Api/appsettings.Oda-docker.json index e59c1c4..9a8a6a3 100644 --- a/src/Managing.Api/appsettings.Oda-docker.json +++ b/src/Managing.Api/appsettings.Oda-docker.json @@ -8,7 +8,7 @@ "InfluxDb": { "Url": "http://influxdb:8086/", "Organization": "managing-org", - "Token": "" + "Token": "Fw2FPL2OwTzDHzSbR2Sd5xs0EKQYy00Q-hYKYAhr9cC1_q5YySONpxuf_Ck0PTjyUiF13xXmi__bu_pXH-H9zA==" }, "Serilog": { "MinimumLevel": { diff --git a/src/Managing.Application/Bots/TradingBot.cs b/src/Managing.Application/Bots/TradingBot.cs index 82fb14b..3923fc8 100644 --- a/src/Managing.Application/Bots/TradingBot.cs +++ b/src/Managing.Application/Bots/TradingBot.cs @@ -99,7 +99,15 @@ public class TradingBot : Bot, ITradingBot LoadScenario(); await PreloadCandles(); await CancelAllOrders(); - await MessengerService.SendMessage($"Hi everyone, I'm going to run {Name}. \nI will send a message here everytime a signal is triggered by the {string.Join(",", Strategies.Select(s => s.Name))} strategies."); + + try + { + await MessengerService.SendMessage($"Hi everyone, I'm going to run {Name}. \nI will send a message here everytime a signal is triggered by the {string.Join(",", Strategies.Select(s => s.Name))} strategies."); + } + catch (Exception ex) + { + Logger.LogError(ex, ex.Message); + } await InitWorker(Run); } @@ -553,7 +561,7 @@ public class TradingBot : Bot, ITradingBot private async Task CancelAllOrders() { - if (!IsForBacktest) + if (!IsForBacktest && !IsForWatchingOnly) { try { diff --git a/src/Managing.Application/ManageBot/BackupBotCommandHandler.cs b/src/Managing.Application/ManageBot/BackupBotCommandHandler.cs index 4b5d127..98c4690 100644 --- a/src/Managing.Application/ManageBot/BackupBotCommandHandler.cs +++ b/src/Managing.Application/ManageBot/BackupBotCommandHandler.cs @@ -2,21 +2,16 @@ using MediatR; using static Managing.Common.Enums; using Managing.Application.Abstractions; -using Managing.Application.ManageBot.Commands; -using Managing.Domain.MoneyManagements; namespace Managing.Application.ManageBot { public class BackupBotCommandHandler : IRequestHandler { - private readonly IBotFactory _botFactory; private readonly ITaskCache _taskCache; - private readonly IMoneyManagementService _moneyManagementService; private readonly IBotService _botService; - public BackupBotCommandHandler(IBotFactory botFactory, ITaskCache taskCache, IBotService botService) + public BackupBotCommandHandler(ITaskCache taskCache, IBotService botService) { - _botFactory = botFactory; _taskCache = taskCache; _botService = botService; } diff --git a/src/Managing.Application/ManageBot/BotService.cs b/src/Managing.Application/ManageBot/BotService.cs index 7319cc8..e5a0b6c 100644 --- a/src/Managing.Application/ManageBot/BotService.cs +++ b/src/Managing.Application/ManageBot/BotService.cs @@ -1,6 +1,4 @@ using Managing.Application.Abstractions; -using Newtonsoft.Json; -using System.IO; namespace Managing.Application.ManageBot { diff --git a/src/Managing.Application/Trading/TradingService.cs b/src/Managing.Application/Trading/TradingService.cs index 47871b5..d752d91 100644 --- a/src/Managing.Application/Trading/TradingService.cs +++ b/src/Managing.Application/Trading/TradingService.cs @@ -206,7 +206,7 @@ public class TradingService : ITradingService return _cacheService.GetOrSave($"Fee-{account.Exchange}", () => { - return _tradingRepository.GetFee(TradingExchanges.Evm).Cost; + return _tradingRepository.GetFee(TradingExchanges.Evm)?.Cost ?? 0m; }, TimeSpan.FromHours(2)); } diff --git a/src/Managing.Docker/docker-compose.sandbox.yml b/src/Managing.Docker/docker-compose.local.yml similarity index 52% rename from src/Managing.Docker/docker-compose.sandbox.yml rename to src/Managing.Docker/docker-compose.local.yml index d4c7d4e..5b4f8b7 100644 --- a/src/Managing.Docker/docker-compose.sandbox.yml +++ b/src/Managing.Docker/docker-compose.local.yml @@ -4,9 +4,9 @@ version: '3.4' services: managing.api: environment: - - ASPNETCORE_ENVIRONMENT=oda-docker + - ASPNETCORE_ENVIRONMENT=Oda-docker - ASPNETCORE_URLS=https://+:443;http://+:80 - - ASPNETCORE_Kestrel__Certificates__Default__Password=!MotdepasseFort11 + - ASPNETCORE_Kestrel__Certificates__Default__Password=!Managing94 - ASPNETCORE_Kestrel__Certificates__Default__Path=/app/managing_cert.pfx ports: - "80:80" @@ -14,20 +14,23 @@ services: volumes: - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro + - /Users/oda/ASP.NET/Https:/root/.aspnet/https:ro + - /Users/oda/Microsoft/UserSecrets:/root/.microsoft/usersecrets/$USER_SECRETS_ID depends_on: - managingdb managing.api.workers: environment: - - ASPNETCORE_ENVIRONMENT=oda-docker + - ASPNETCORE_ENVIRONMENT=Oda-docker - ASPNETCORE_URLS=https://+:443;http://+:80 - - ASPNETCORE_Kestrel__Certificates__Default__Password=!MotdepasseFort11 + - ASPNETCORE_Kestrel__Certificates__Default__Password=!Managing94 - ASPNETCORE_Kestrel__Certificates__Default__Path=/app/managing_cert.pfx ports: - "81:80" - "444:443" volumes: - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro + - /Users/oda/ASP.NET/Https:/root/.aspnet/https:ro depends_on: - managingdb @@ -38,24 +41,24 @@ services: ports: - "27017:27017" - elasticsearch: - ports: - - 9200:9200 - volumes: - - elasticsearch-data:/usr/share/elasticsearch/data - environment: - - discovery.type=single-node - - xpack.monitoring.templates.enabled=true - - ES_JAVA_OPTS=-Xms1g -Xmx1g - - xpack.security.enabled=false + # elasticsearch: + # ports: + # - 9200:9200 + # volumes: + # - elasticsearch-data:/usr/share/elasticsearch/data + # environment: + # - discovery.type=single-node + # - xpack.monitoring.templates.enabled=true + # - ES_JAVA_OPTS=-Xms1g -Xmx1g + # - xpack.security.enabled=false - kibana: - ports: - - 5601:5601 - depends_on: - - elasticsearch - environment: - - ELASTICSEARCH_URL=http://elasticsearch:9200 + # kibana: + # ports: + # - 5601:5601 + # depends_on: + # - elasticsearch + # environment: + # - ELASTICSEARCH_URL=http://elasticsearch:9200 influxdb: image: influxdb:latest diff --git a/src/Managing.Docker/docker-compose.yml b/src/Managing.Docker/docker-compose.yml index f86658c..e8e3f83 100644 --- a/src/Managing.Docker/docker-compose.yml +++ b/src/Managing.Docker/docker-compose.yml @@ -22,13 +22,13 @@ services: networks: - managing-network - elasticsearch: - image: elasticsearch:8.4.1 - networks: - - managing-network + # elasticsearch: + # image: elasticsearch:8.4.1 + # networks: + # - managing-network - kibana: - image: kibana:8.4.1 + # kibana: + # image: kibana:8.4.1 influxdb: image: influxdb:latest diff --git a/src/Managing.Infrastructure.Database/BotRepository.cs b/src/Managing.Infrastructure.Database/BotRepository.cs index 4147431..2fa3ec7 100644 --- a/src/Managing.Infrastructure.Database/BotRepository.cs +++ b/src/Managing.Infrastructure.Database/BotRepository.cs @@ -1,5 +1,4 @@ -using Managing.Domain.Bots; -using Managing.Infrastructure.Databases.MongoDb; +using Managing.Infrastructure.Databases.MongoDb; using Managing.Infrastructure.Databases.MongoDb.Abstractions; using Managing.Infrastructure.Databases.MongoDb.Collections; @@ -27,7 +26,7 @@ public class BotRepository : IBotRepository public async Task UpdateBackupBot(BotBackup bot) { - var b = _botRepository.FindOne(b => b.Name == bot.Name); + var b = await _botRepository.FindOneAsync(b => b.Name == bot.Name); var dto = MongoMappers.Map(bot); dto.Id = b.Id; _botRepository.Update(dto); diff --git a/src/Managing.WebApp/.env b/src/Managing.WebApp/.env index 0b33460..1f85358 100644 --- a/src/Managing.WebApp/.env +++ b/src/Managing.WebApp/.env @@ -1,4 +1,4 @@ -VITE_API_URL_LOCAL=https://localhost:5001 +VITE_API_URL_LOCAL=https://localhost:443 VITE_API_URL_SERVER=https://dev-managing-api.apps.managing.live VITE_WORKER_URL_LOCAL=https://localhost:5002 VITE_WORKER_URL_SERVER=https://dev-managing-worker.apps.managing.live