private Result <Exception, int> ProcessHeadAlign(HeadAlignCommand command, RobotAgreggate robot) { Result <Exception, Align> moveCallback; switch (command.HeadMove.ToLower()) { case "top": moveCallback = robot.MoveHeadForUp(); break; case "down": moveCallback = robot.MoveHeadToBelow(); break; default: return(new BussinessException(ErrorCodes.BadRequest, "Comando inválido.")); } if (moveCallback.IsSuccess) { return(PersistRobotState(robot, (int)moveCallback.Success)); } return(moveCallback.Failure); }
public async Task <IActionResult> PutHeadAlign(string id, [FromBody] HeadAlignCommand command) { command.RobotId = id; var result = await _mediator.Send(command); return(HandleCommand(result)); }
public Task <Result <Exception, int> > Handle(HeadAlignCommand command, CancellationToken cancellationToken) { var findRobotCallback = _repository.Get(command.RobotId); if (!findRobotCallback.IsSuccess) { Task.FromResult(findRobotCallback.Failure.Run <int>()); } return(Task.FromResult(ProcessHeadAlign(command, findRobotCallback.Success))); }