public Task Handle(EmergencyCall message, IMessageHandlerContext context) { var rover = RoverRepository.GetRover( Guid.Parse(EncryptionUtils.Instance.Decrypt(message.EncryptedRoverId))); rover.Lock(); RoverRepository.UpdateRover(rover); return(Task.CompletedTask); }
public Task Handle(MoveCommand message, IMessageHandlerContext context) { var rover = RoverRepository.GetRover( Guid.Parse(EncryptionUtils.Instance.Decrypt(message.EncryptedRoverId))); rover.ApplyMoveCommand(message.EncryptedMoveCommand); RoverRepository.UpdateRover(rover); return(Task.CompletedTask); }
public RoverBusiness(IUnitOfWork _unitOfWork) { unitOfWork = _unitOfWork; roverRepository = new RoverRepository(_unitOfWork); }
public static async Task InitializeTest() { var contextDbConnectionString = ApplicationConfiguration.Instance.GetValue <string>("MarsRoverContext:DatabaseConnectionString"); var roverDbContextBuilder = new DbContextOptionsBuilder <RoverContext>(); roverDbContextBuilder.UseSqlServer(contextDbConnectionString); var roverRepository = new RoverRepository( new RoverContext(roverDbContextBuilder.Options)); var plateauRepository = new PlateauRepository( new RoverContext(roverDbContextBuilder.Options)); //Test Input: //5 5 //1 2 N //LMLMLMLMM //3 3 E //MMRMMRMRRM //Expected Output: //1 3 N //5 1 E //PS:kudretkurt //Plato yaratılır.Rover yaratılır. Yaratılan rover ilgili platoya gönderilir(SendToPlateau). Daha sonra bu uzay aracının nasıl hareket edeceği bilgisi şifrelenerek (koskoca nasa mesajı şifreler muhtemelen:)) ilgili queue ya consume edilmesi için gönderilir. var plateauId = Guid.NewGuid(); var plateau = new Plateau(new Size(5, 5), "FirstPlateau", plateauId); await plateauRepository.SavePlateau(plateau); var roverId = Guid.NewGuid(); var rover = new RoverX(Direction.North, new Point(1, 2), roverId); rover.SendToPlateau(plateau); await roverRepository.SaveRover(rover); var sendOptions = new SendOptions(); sendOptions.SetDestination(ApplicationConfiguration.Instance.GetValue <string>("MarsRoverContext:EndpointName")); //await _nasaEndpointInstance.Send(new MoveCommand() //{ // EncryptedMoveCommand = EncryptionUtils.Instance.Encrypt("LMLMLMLMM"), // EncryptedRoverId = EncryptionUtils.Instance.Encrypt(roverId.ToString()) //}, sendOptions); roverId = Guid.NewGuid(); rover = new RoverX(Direction.East, new Point(3, 3), roverId); rover.SendToPlateau(plateau); await roverRepository.SaveRover(rover); sendOptions = new SendOptions(); sendOptions.SetDestination(ApplicationConfiguration.Instance.GetValue <string>("MarsRoverContext:EndpointName")); await _nasaEndpointInstance.Send(new MoveCommand() { EncryptedMoveCommand = EncryptionUtils.Instance.Encrypt("MMRMMRMRRM"), EncryptedRoverId = EncryptionUtils.Instance.Encrypt(roverId.ToString()) }, sendOptions); }