public MachinesModule(IMachineManager machineManager) : base("machines") { this.RequiresAuthentication(); Get("/", p => { return(machineManager.GetMachines()); }); Get("/{id:int}", p => { return(machineManager.GetMachine((int)p.id)); }); Put("/", async p => { this.RequiresAdmin(); return(await machineManager.CreateMachine(this.Bind <Machine>())); }); Post("/", async p => { this.RequiresAdmin(); return(await machineManager.UpdateMachine(this.Bind <Machine>())); }); Delete("/{id:int}", p => { this.RequiresAdmin(); return(machineManager.DeleteMachine((int)p.id)); }); Post("/sort", p => { this.RequiresAdmin(); machineManager.SortMachines(this.Bind <List <int> >()); return(HttpStatusCode.OK); }); }
protected override async Task HandleBody(MachineCommandIntegrationEvent integrationEvent) { var machine = _machineManager.GetMachine(integrationEvent.MachineName); if (machine == null) { _logger.Warn($"Can't find machine {integrationEvent.MachineName}"); return; } if (integrationEvent.OrderNumber != 0) { await machine.StartNewOrder(integrationEvent.OrderNumber, integrationEvent.Id).ConfigureAwait(false); } else { switch (integrationEvent.MachineStatus) { case MachineStatus.Running: machine.StartMachine(false); _eventBus.Publish(new MachineStatusIntegrationEvent(integrationEvent.Id) { MachineName = machine.MachineName, MachineStatus = machine.MachineStatus, Description = $"Machine {integrationEvent.MachineName} status changed to Running" }); break; case MachineStatus.Stopped: machine.StopMachine(false); _eventBus.Publish(new MachineStatusIntegrationEvent(integrationEvent.Id) { MachineName = machine.MachineName, MachineStatus = machine.MachineStatus, Description = $"Machine {integrationEvent.MachineName} status changed to Stopped" }); break; } } }
public Task Pause(int machineId) { return(_machineProviderManager.GetProvider(_machineManager.GetMachine(machineId)).PauseJob()); }
public IActionResult GetMachine(string machineName) { return(Ok(_machineManager.GetMachine(machineName))); }