示例#1
0
        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));
            }
        }
示例#2
0
        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);
        }