/// <summary> /// Serializing cleaning robot state /// </summary> public void Serialize(CleaningRobotState cleaningRobotState, string outputFileName) { CleaningRobotForJson robotJson = new CleaningRobotForJson(); // Sorting lists by attributes robotJson.visited = ((List <RoomMapPoint>)cleaningRobotState.MapPointsVisited) .OrderBy(l => l.X).ThenBy(l => l.Y).ToList(); robotJson.cleaned = ((List <RoomMapPoint>)cleaningRobotState.MapPointsCleaned) .OrderBy(l => l.X).ThenBy(l => l.Y).ToList(); robotJson.final.X = cleaningRobotState.Location.X; robotJson.final.Y = cleaningRobotState.Location.Y; robotJson.battery = cleaningRobotState.Battery; // Facing string facing = ""; switch (cleaningRobotState.Facing) { case CleaningRobotFacing.North: facing = "N"; break; case CleaningRobotFacing.East: facing = "E"; break; case CleaningRobotFacing.South: facing = "S"; break; case CleaningRobotFacing.West: facing = "W"; break; } robotJson.final.facing = facing; // Write file string output = JsonConvert.SerializeObject(robotJson, Formatting.Indented); File.WriteAllText(outputFileName, output); }
/// <summary> /// Loading robot state from file /// </summary> public void Load(string inputFileName) { _state = _serializer.Deserialize(inputFileName); }