public async Task <ActionResult <Response> > SetRobotPosition(RobotPositionRequest request) { var robotResponse = new Response(); try { if (!Helpers.IsEnumParsable <GeoDirection>(request.direction)) { robotResponse.errorMessage = Helpers.RobotDirectionError; } else { var robot = await _robotPosition.SetCurrentPosition(request); robotResponse.BuildResponse(robot); } return(Ok(robotResponse)); } catch (Exception ex) { //log erro serilog Ilogger etc robotResponse.errorMessage = ex.Message; return(NotFound(robotResponse)); } }
public async Task <Robot> SetCurrentPosition(RobotPositionRequest request) { var enumDirection = Helpers.ParseEnum <GeoDirection>(request.direction); var storedRobot = await GetCurrentPosition(request.id); if (storedRobot == null) { return(null); } storedRobot.XAxis = request.horizontalAxis; storedRobot.YAxis = request.verticalAxis; storedRobot.FacingDirection = enumDirection; _robotCache.StoreCache(storedRobot); return(storedRobot); }