* Start building with orlean * Add missing file * Serialize grain state * Remove grain and proxies * update and add plan * Update a bit * Fix backtest grain * Fix backtest grain * Clean a bit
58 lines
1.8 KiB
C#
58 lines
1.8 KiB
C#
using Managing.Application.Abstractions;
|
|
using Managing.Application.ManageBot;
|
|
using Managing.Domain.Bots;
|
|
using Managing.Domain.Workflows;
|
|
using Microsoft.Extensions.Logging;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Managing.Application.Bots
|
|
{
|
|
public class SimpleBot : Bot
|
|
{
|
|
public readonly ILogger<TradingBotBase> Logger;
|
|
private readonly IBotService _botService;
|
|
private readonly IBackupBotService _backupBotService;
|
|
private Workflow _workflow;
|
|
|
|
public SimpleBot(string name, ILogger<TradingBotBase> logger, Workflow workflow, IBotService botService,
|
|
IBackupBotService backupBotService) :
|
|
base(name)
|
|
{
|
|
Logger = logger;
|
|
_botService = botService;
|
|
_backupBotService = backupBotService;
|
|
_workflow = workflow;
|
|
Interval = 100;
|
|
}
|
|
|
|
public override void Start()
|
|
{
|
|
Task.Run(() => InitWorker(Run));
|
|
base.Start();
|
|
}
|
|
|
|
public async Task Run()
|
|
{
|
|
await Task.Run(
|
|
async () =>
|
|
{
|
|
Logger.LogInformation(Identifier);
|
|
Logger.LogInformation(DateTime.Now.ToString());
|
|
await _workflow.Execute();
|
|
await SaveBackup();
|
|
Logger.LogInformation("__________________________________________________");
|
|
});
|
|
}
|
|
|
|
public override async Task SaveBackup()
|
|
{
|
|
var data = JsonConvert.SerializeObject(_workflow);
|
|
await _backupBotService.SaveOrUpdateBotBackup(User, Identifier, Status, new TradingBotBackup());
|
|
}
|
|
|
|
public override void LoadBackup(BotBackup backup)
|
|
{
|
|
_workflow = new Workflow();
|
|
}
|
|
}
|
|
} |