public OperationResult <NavigationItem> UpdateCoordinates(string token, double latitude, double longitude, string address, double?accuracy) { var validator = new CoordinatesValidator(latitude, longitude); if (validator.Validate()) { return(OperationResult <NavigationItem> .Failure(validator.ToString())); } if (token == null) { return(OperationResult <NavigationItem> .Failure("Token has to be provided")); } var item = _navigationManager.GetItem(token); if (item == null) { return(OperationResult <NavigationItem> .Failure("Token doesn't match.")); } item.Address = address ?? ""; item.Latitude = latitude; item.Longitude = longitude; item.Accuracy = accuracy; return(OperationResult <NavigationItem> .Success(item)); }
public OperationResult <TokensModel> CreateSession(double latitude, double longitude, int duration, string address, double?accuracy) { var coordinatesValidator = new CoordinatesValidator(latitude, longitude); if (coordinatesValidator.Validate()) { return(OperationResult <TokensModel> .Failure(coordinatesValidator.ToString())); } var durationValidator = new DurationValidator(duration); if (durationValidator.Validate()) { return(OperationResult <TokensModel> .Failure(durationValidator.ToString())); } var token = _navigationManager.CreateItem(latitude, longitude, duration, address, accuracy); return(OperationResult <TokensModel> .Success(token)); }
public RobotInitial RobotPositionAndCommands() { CoordinatesValidator coordinatesValidator = new CoordinatesValidator(); MotionValidator motionValidator = new MotionValidator(); Console.CursorVisible = true; Coordinates initialRobotPositionOnScreen = new Coordinates(); Coordinates robotPositionInMarthSurface = new Coordinates(); MotionModel commands = new MotionModel(); RobotInitial robotInitial = new RobotInitial(); Console.WriteLine("Now, initial coordinates of the robot and It´s orientation (N, S, E, W): "); LinesCleaner.BlankLine(); int left = Console.CursorLeft; int top = Console.CursorTop; while (true) { left = Console.CursorLeft; top = Console.CursorTop; try { LinesCleaner.BlankLine(); Console.Write("Enter the X: "); robotInitial.RobotPositionInMarthSurface.XPosition = 9; robotInitial.RobotPositionInMarthSurface.XPosition = Convert.ToInt32(Console.ReadLine()); LinesCleaner.Clean(); Console.Write("Enter the Y: "); robotInitial.RobotPositionInMarthSurface.YPosition = Convert.ToInt32(Console.ReadLine()); LinesCleaner.Clean(); break; } catch (Exception) { Console.WriteLine($"Write numbers! error"); Thread.Sleep(1000); LinesCleaner.Clean(); LinesCleaner.Clean(); Console.SetCursorPosition(left, top); } } while (true) { left = Console.CursorLeft; top = Console.CursorTop; try { Console.Write("Enter the Orientation of Robot(N, S, E, W): "); robotInitial.InitialRobotPositionOnScreen.Orientation = Console.ReadLine().ToUpper(); LinesCleaner.Clean(); Console.SetCursorPosition(left, top); IList <ValidationFailure> orientationErrors = coordinatesValidator.Validate(robotInitial.InitialRobotPositionOnScreen, options => options.IncludeProperties("Orientation")).Errors; if (orientationErrors.Any()) { foreach (var error in orientationErrors) { Console.WriteLine($"Error!: {error}"); Thread.Sleep(2000); LinesCleaner.Clean(); LinesCleaner.Clean(); Console.SetCursorPosition(left, top); } throw new Exception("Please (N, S, E, W):"); } break; } catch (Exception ex) { Console.WriteLine($"{ex.Message}"); Thread.Sleep(1000); LinesCleaner.Clean(); LinesCleaner.Clean(); Console.SetCursorPosition(left, top); } } while (true) { left = Console.CursorLeft; top = Console.CursorTop; try { Console.Write("Give the instructions for the Robot (L/R/F): "); commands.Instructions = Console.ReadLine().ToUpper(); robotInitial.Instructions = commands.Instructions; LinesCleaner.Clean(); Console.SetCursorPosition(left, top); IList <ValidationFailure> motionErrors = motionValidator.Validate(commands).Errors; if (motionErrors.Any()) { foreach (var error in motionErrors) { Console.WriteLine($"Error!: {error} "); Thread.Sleep(2000); LinesCleaner.Clean(); LinesCleaner.Clean(); Console.SetCursorPosition(left, top); } throw new Exception("Please (L/R/F):"); } break; } catch (Exception ex) { Console.WriteLine($"{ex.Message}"); Thread.Sleep(1000); LinesCleaner.Clean(); LinesCleaner.Clean(); Console.SetCursorPosition(left, top); } } Thread.Sleep(10); Console.CursorVisible = false; return(robotInitial); }