private Result <Exception, int> ProcessWristAction(WristCommand command, RobotAgreggate robot) { Result <Exception, int> actionCallback; switch (command.WristSide.ToLower()) { case "left": actionCallback = ExecuteActionInLeftWrist(robot, command.WristRotate); break; case "right": actionCallback = ExecuteActionInRightWrist(robot, command.WristRotate); break; default: return(new BussinessException(ErrorCodes.BadRequest, "WristSide possui comando inválido.")); } if (actionCallback.IsSuccess) { return(PersistRobotState(robot, actionCallback.Success)); } return(actionCallback.Failure); }
public async Task <IActionResult> PutRightElbow(string id, [FromBody] WristCommand command) { command.RobotId = id; var result = await _mediator.Send(command); return(HandleCommand(result)); }
public Task <Result <Exception, int> > Handle(WristCommand command, CancellationToken cancellationToken) { var findRobotCallback = _repository.Get(command.RobotId); if (!findRobotCallback.IsSuccess) { return(Task.FromResult(findRobotCallback.Failure.Run <int>())); } return(Task.FromResult(ProcessWristAction(command, findRobotCallback.Success))); }