public void StopRecord(NatsService natsService) { natsService.Connected -= OnConnected; natsService.Disconnected -= OnDisconnected; natsService.MessageSent -= OnMessageSent; natsService.Subscribed -= OnSubscribed; natsService.Unsubscribed -= OnUnsubscribed; }
public void StartRecord(NatsService natsService, ScriptService scriptService) { Script = scriptService.Current; natsService.Connected += OnConnected; natsService.Disconnected += OnDisconnected; natsService.MessageSent += OnMessageSent; natsService.Subscribed += OnSubscribed; natsService.Unsubscribed += OnUnsubscribed; }
public void Execute(Job job) { var natsService = new NatsService(); job.StartTime = DateTime.Now; job.Status = ExecutionStatus.Running; Stopwatch sw = new Stopwatch(); var scriptCommands = job.Commands.ToArray(); Logger.Info($"Execute: Begin, Nb Commands: {scriptCommands}"); for (var i = 0; i < scriptCommands.Length; i++) { var scriptCommand = scriptCommands[i]; Logger.Info($"Execute[{i+1}/{scriptCommands.Length}]: {scriptCommand}"); try { scriptCommand.TimeStamp = DateTime.Now; sw.Restart(); scriptCommand.Status = ExecutionStatus.Running; CommandUpdated?.Invoke(scriptCommand); var result = scriptCommand.Execute(natsService, this); sw.Stop(); scriptCommand.Status = ExecutionStatus.Executed; scriptCommand.Result = result; JobUpdated?.Invoke(job); Logger.Info($"Executed: {result}"); } catch (Exception e) { sw.Stop(); Logger.Error($"Command failed ! {scriptCommand}"); scriptCommand.Status = ExecutionStatus.Failed; scriptCommand.Result = e.Message; } scriptCommand.Duration = sw.Elapsed; CommandUpdated?.Invoke(scriptCommand); } job.EndTime = DateTime.Now; job.Status = ExecutionStatus.Executed; Logger.Info($"Execute: End, TotalTime: {job.Duration}"); JobUpdated?.Invoke(job); natsService.Dispose(); var nextJob = Jobs.FirstOrDefault(aJob => aJob.Status == ExecutionStatus.Waiting); if (nextJob != null) { Execute(nextJob); } }